From 330c3aeef71a1e89ada7c9b1f7521be3d3e00a94 Mon Sep 17 00:00:00 2001 From: agra Date: Thu, 11 Jun 2026 10:49:39 +0300 Subject: [PATCH] =?UTF-8?q?std:=20full=20namespace=20tail=20=E2=80=94=20fs?= =?UTF-8?q?/process/socket/json/cli/hash/test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With 0115's own-wins globals landed, the remaining tail modules join std.sx: every '#import "modules/std.sx"' now carries mem/xml/log/fs/ process/socket/json/cli/hash/test as namespaces (trace stays a direct import). Enablers in the same change: - emit: dead-global elimination — a plain-data global no instruction references is not emitted, so tail modules' data (hash's 64-entry K table, OS/ARCH/POINTER_SIZE) stays out of binaries that don't use it. Comptime-backed globals keep their #run evaluation. 37 pinned IR snapshots regenerated (dead globals dropped + string renumbering from the larger module). - 1055/1056 stop pinning the global error-tag ordinal (it shifts with program composition); they assert nonzero + tag identity + name. - specs/readme/CLAUDE.md tail docs updated. --- CLAUDE.md | 4 +- ...5-errors-enum-value-failable-error-slot.sx | 2 +- ...-enum-value-failable-tuple-and-comptime.sx | 4 +- .../expected/0031-basic-local-fn-return.ir | 7550 ++++++++++++--- .../expected/0032-basic-ufcs-return-type.ir | 7304 +++++++++++--- .../0044-basic-default-arg-expansion.ir | 6178 +++++++++--- .../0044-basic-default-arg-expansion.stderr | 1 + .../0107-types-int-cmp-in-float-ternary.ir | 6092 ++++++++++-- examples/expected/0200-generics-generic.ir | 6058 ++++++++++-- .../expected/0201-generics-generic-struct.ir | 7147 +++++++++++--- .../expected/0301-closures-fn-pointers.ir | 6148 +++++++++--- .../0400-protocols-impl-for-builtin.ir | 6240 +++++++++--- ...-protocols-parameterized-protocol-value.ir | 6918 +++++++++++--- ...protocols-generic-struct-protocol-erase.ir | 7040 +++++++++++--- .../0416-protocols-auto-type-erasure.ir | 8460 +++++++++++++---- .../expected/0507-packs-pack-mono-dedup.ir | 6452 ++++++++++--- .../0513-packs-pack-mixed-comptime.ir | 6136 ++++++++++-- .../0518-packs-pack-value-dispatch.ir | 6084 ++++++++++-- .../0528-packs-protocol-pack-methods.ir | 6792 ++++++++++--- .../0903-optionals-optional-roundtrip.ir | 6741 ++++++++++--- .../0904-optionals-any-to-string-optional.ir | 6234 +++++++++--- examples/expected/1004-errors-try.ir | 6151 +++++++++--- .../1006-errors-inferred-error-sets.ir | 6169 +++++++++--- examples/expected/1009-errors-catch.ir | 6171 +++++++++--- ...rors-enum-value-failable-error-slot.stdout | 2 +- ...m-value-failable-tuple-and-comptime.stdout | 4 +- .../expected/1202-ffi-cc-c-large-aggregate.ir | 738 ++ .../1309-ffi-objc-class-method-lowering.ir | 833 +- .../1314-ffi-objc-class-dealloc-roundtrip.ir | 897 +- .../1319-ffi-objc-property-sx-defined.ir | 6844 ++++++++++--- .../1329-ffi-objc-call-03-selector-sharing.ir | 817 +- .../1332-ffi-objc-call-06-sret-return.ir | 6372 ++++++++++--- .../1347-ffi-objc-dsl-07-mangling-table.ir | 901 +- .../1402-ffi-jni-call-03-methodid-sharing.ir | 822 +- .../1403-ffi-jni-call-04-jint-return.ir | 816 +- .../1404-ffi-jni-call-05-jlong-return.ir | 816 +- .../1405-ffi-jni-call-06-jdouble-return.ir | 816 +- .../1406-ffi-jni-call-07-jboolean-return.ir | 816 +- .../1407-ffi-jni-call-08-jobject-return.ir | 816 +- .../expected/1408-ffi-jni-call-09-static.ir | 816 +- .../expected/1418-ffi-jni-class-08-call.ir | 816 +- .../1421-ffi-jni-env-02-lexical-direct.ir | 816 +- .../expected/1425-ffi-jni-main-03-ctor.ir | 751 +- library/modules/std.sx | 11 +- readme.md | 3 +- specs.md | 11 +- src/ir/emit_llvm.zig | 20 + 47 files changed, 129030 insertions(+), 28600 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 78125cf..68b5b8e 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -576,8 +576,8 @@ Wiring a new bundling step: | `implementation_plan.md` | Archive of completed work (closures, protocols, etc.). Do not pick up tasks from here. | | `readme.md` | User-facing language overview — **maintained**. Update it whenever a user-facing sx change lands (new/changed syntax, semantics, gating diagnostics, language behavior), per the docs-track-changes rule. | | `CLAUDE.md` | This file. Session instructions. | -| `library/modules/std.sx` | The prelude (print/format/List/string ops/Context/Allocator) + the namespace tail (`mem`/`xml`/`log` carried to flat importers). | -| `library/modules/std/` | Stdlib modules: mem (allocators), fs, process, socket, json, cli, hash, xml, log, trace, test. Import directly until they join the tail. | +| `library/modules/std.sx` | The prelude (print/format/List/string ops/Context/Allocator) + the namespace tail (`mem`/`xml`/`log`/`fs`/`process`/`socket`/`json`/`cli`/`hash`/`test` carried to flat importers). | +| `library/modules/std/` | Stdlib modules: mem (allocators), fs, process, socket, json, cli, hash, xml, log, trace, test — all but trace carried by the std.sx tail; direct file imports give bare access. | | `library/modules/ffi/` | FFI bindings: objc, objc_block, sdl3, opengl, raylib, stb, stb_truetype, wasm. | | `library/modules/math/` | scalar / vector2 / matrix44 — one spelling: `#import "modules/math"` (directory import). | | `library/modules/build.sx` | `BuildOptions` compile-time build DSL. See "Bundling lives in sx" above. | diff --git a/examples/1055-errors-enum-value-failable-error-slot.sx b/examples/1055-errors-enum-value-failable-error-slot.sx index 89fd781..f8536c2 100644 --- a/examples/1055-errors-enum-value-failable-error-slot.sx +++ b/examples/1055-errors-enum-value-failable-error-slot.sx @@ -36,7 +36,7 @@ main :: () -> s32 { // ── error path: the right tag flows through ── c3, e3 := pick("xxx"); - print("error err int = {}\n", cast(s64) e3); // 1 + print("error err nonzero = {}\n", cast(s64) e3 != 0); // true (ordinal is program-global, not pinned) if e3 == error.Nope { print("error: is Nope (ok)\n"); } else { print("error: not Nope (WRONG)\n"); } print("error tag name = {}\n", error_tag_name(e3)); // Nope diff --git a/examples/1056-errors-enum-value-failable-tuple-and-comptime.sx b/examples/1056-errors-enum-value-failable-tuple-and-comptime.sx index f1e150b..9aa5ef2 100644 --- a/examples/1056-errors-enum-value-failable-tuple-and-comptime.sx +++ b/examples/1056-errors-enum-value-failable-tuple-and-comptime.sx @@ -43,7 +43,7 @@ main :: () -> s32 { // ── F1 error (explicit tuple): right tag flows, no panic ── c2, e2 := classify("bad"); - print("F1 bad: err int = {}\n", cast(s64) e2); // 1 + print("F1 bad: err nonzero = {}\n", cast(s64) e2 != 0); // true (ordinal is program-global, not pinned) if e2 == error.Nope { print("F1 bad: is Nope (ok)\n"); } else { print("F1 bad: not Nope (WRONG)\n"); } print("F1 bad: tag name = {}\n", error_tag_name(e2)); // Nope @@ -59,7 +59,7 @@ main :: () -> s32 { // ── F2 error (comptime-param, inline error path): right tag ── c5, e5 := ct_pick(7, "x"); - print("F2 err: err int = {}\n", cast(s64) e5); // 1 + print("F2 err: err nonzero = {}\n", cast(s64) e5 != 0); // true (ordinal is program-global, not pinned) if e5 == error.Nope { print("F2 err: is Nope (ok)\n"); } else { print("F2 err: not Nope (WRONG)\n"); } return 0; diff --git a/examples/expected/0031-basic-local-fn-return.ir b/examples/expected/0031-basic-local-fn-return.ir index 666a373..728167f 100644 --- a/examples/expected/0031-basic-local-fn-return.ir +++ b/examples/expected/0031-basic-local-fn-return.ir @@ -1,362 +1,680 @@ -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.77 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.78 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.79 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.80 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.81 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.82 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [95 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] +@str.465 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.466 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.467 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.468 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.469 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.470 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [176 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.471 = private constant [9 x i8] c"Overflow\00" +@tag.str.472 = private constant [3 x i8] c"Io\00" +@tag.str.473 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.474 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.475 = private constant [10 x i8] c"BadEscape\00" +@tag.str.476 = private constant [10 x i8] c"BadNumber\00" +@tag.str.477 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.478 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.479 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.480 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.481 = private constant [13 x i8] c"MissingValue\00" +@tag.str.482 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.483 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.471, i64 8 }, { ptr, i64 } { ptr @tag.str.472, i64 2 }, { ptr, i64 } { ptr @tag.str.473, i64 15 }, { ptr, i64 } { ptr @tag.str.474, i64 13 }, { ptr, i64 } { ptr @tag.str.475, i64 9 }, { ptr, i64 } { ptr @tag.str.476, i64 9 }, { ptr, i64 } { ptr @tag.str.477, i64 15 }, { ptr, i64 } { ptr @tag.str.478, i64 14 }, { ptr, i64 } { ptr @tag.str.479, i64 14 }, { ptr, i64 } { ptr @tag.str.480, i64 11 }, { ptr, i64 } { ptr @tag.str.481, i64 12 }, { ptr, i64 } { ptr @tag.str.482, i64 15 }, { ptr, i64 } { ptr @tag.str.483, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.83 = private constant [5 x i8] c"bool\00" -@tn.str.84 = private constant [3 x i8] c"s8\00" -@tn.str.85 = private constant [4 x i8] c"s16\00" -@tn.str.86 = private constant [4 x i8] c"s32\00" -@tn.str.87 = private constant [4 x i8] c"s64\00" -@tn.str.88 = private constant [3 x i8] c"u8\00" -@tn.str.89 = private constant [4 x i8] c"u16\00" -@tn.str.90 = private constant [4 x i8] c"u32\00" -@tn.str.91 = private constant [4 x i8] c"u64\00" -@tn.str.92 = private constant [4 x i8] c"f32\00" -@tn.str.93 = private constant [4 x i8] c"f64\00" -@tn.str.94 = private constant [7 x i8] c"string\00" -@tn.str.95 = private constant [4 x i8] c"Any\00" -@tn.str.96 = private constant [9 x i8] c"noreturn\00" -@tn.str.97 = private constant [6 x i8] c"isize\00" -@tn.str.98 = private constant [6 x i8] c"usize\00" -@tn.str.99 = private constant [5 x i8] c"void\00" -@tn.str.100 = private constant [6 x i8] c"*void\00" -@tn.str.101 = private constant [16 x i8] c"Source_Location\00" -@tn.str.102 = private constant [11 x i8] c"CAllocator\00" -@tn.str.103 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.104 = private constant [4 x i8] c"GPA\00" -@tn.str.105 = private constant [5 x i8] c"*GPA\00" -@tn.str.106 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.107 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.108 = private constant [10 x i8] c"Allocator\00" -@tn.str.109 = private constant [6 x i8] c"Arena\00" -@tn.str.110 = private constant [7 x i8] c"*Arena\00" -@tn.str.111 = private constant [6 x i8] c"[*]u8\00" -@tn.str.112 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.113 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.114 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.115 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.116 = private constant [8 x i8] c"Context\00" -@tn.str.117 = private constant [7 x i8] c"[4]s64\00" -@tn.str.118 = private constant [9 x i8] c"[]string\00" -@tn.str.119 = private constant [8 x i8] c"[16]f32\00" -@tn.str.120 = private constant [5 x i8] c"Mat4\00" -@tn.str.121 = private constant [5 x i8] c"Vec2\00" -@tn.str.122 = private constant [16 x i8] c"OperatingSystem\00" -@tn.str.123 = private constant [13 x i8] c"Architecture\00" -@tn.str.124 = private constant [13 x i8] c"BuildOptions\00" -@tn.str.125 = private constant [11 x i8] c"() -> bool\00" -@tn.str.126 = private constant [6 x i8] c"Point\00" -@tn.str.127 = private constant [11 x i8] c"Shape.rect\00" -@tn.str.128 = private constant [6 x i8] c"Shape\00" -@tn.str.129 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.130 = private constant [5 x i8] c"*s64\00" -@tn.str.131 = private constant [7 x i8] c"**void\00" -@tn.str.132 = private constant [8 x i8] c"*string\00" -@tn.str.133 = private constant [6 x i8] c"[]Any\00" -@tn.str.134 = private constant [5 x i8] c"*Any\00" -@tn.str.135 = private constant [7 x i8] c"*[]Any\00" -@tn.str.136 = private constant [4 x i8] c"*u8\00" -@tn.str.137 = private constant [6 x i8] c"*bool\00" -@tn.str.138 = private constant [7 x i8] c"*Point\00" -@tn.str.139 = private constant [5 x i8] c"*s32\00" -@tn.str.140 = private constant [7 x i8] c"[2]Any\00" -@tn.str.141 = private constant [8 x i8] c"*[2]Any\00" -@tn.str.142 = private constant [7 x i8] c"*Shape\00" -@tn.str.143 = private constant [7 x i8] c"[1]Any\00" -@tn.str.144 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.145 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.146 = private constant [5 x i8] c"*f64\00" -@tn.str.147 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.148 = private constant [11 x i8] c"*Allocator\00" -@tn.str.149 = private constant [9 x i8] c"*Context\00" -@tn.str.150 = private constant [6 x i8] c"*Mat4\00" -@tn.str.151 = private constant [6 x i8] c"*Vec2\00" -@tn.str.152 = private constant [14 x i8] c"*BuildOptions\00" -@tn.str.153 = private constant [12 x i8] c"*Shape.rect\00" -@tn.str.154 = private constant [17 x i8] c"*OperatingSystem\00" -@tn.str.155 = private constant [14 x i8] c"*Architecture\00" -@tn.str.156 = private constant [9 x i8] c"*[16]f32\00" -@tn.str.157 = private constant [10 x i8] c"*[]string\00" -@tn.str.158 = private constant [6 x i8] c"**GPA\00" -@tn.str.159 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.160 = private constant [8 x i8] c"**Arena\00" -@tn.str.161 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.162 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.163 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.164 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.165 = private constant [6 x i8] c"**s64\00" -@tn.str.166 = private constant [8 x i8] c"***void\00" -@tn.str.167 = private constant [9 x i8] c"**string\00" -@tn.str.168 = private constant [6 x i8] c"**Any\00" -@tn.str.169 = private constant [8 x i8] c"**[]Any\00" -@tn.str.170 = private constant [5 x i8] c"**u8\00" -@tn.str.171 = private constant [7 x i8] c"**bool\00" -@tn.str.172 = private constant [8 x i8] c"**Point\00" -@tn.str.173 = private constant [6 x i8] c"**s32\00" -@tn.str.174 = private constant [9 x i8] c"**[2]Any\00" -@tn.str.175 = private constant [8 x i8] c"**Shape\00" -@tn.str.176 = private constant [9 x i8] c"**[1]Any\00" -@__sx_type_names = private constant [95 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.83, i64 4 }, { ptr, i64 } { ptr @tn.str.84, i64 2 }, { ptr, i64 } { ptr @tn.str.85, i64 3 }, { ptr, i64 } { ptr @tn.str.86, i64 3 }, { ptr, i64 } { ptr @tn.str.87, i64 3 }, { ptr, i64 } { ptr @tn.str.88, i64 2 }, { ptr, i64 } { ptr @tn.str.89, i64 3 }, { ptr, i64 } { ptr @tn.str.90, i64 3 }, { ptr, i64 } { ptr @tn.str.91, i64 3 }, { ptr, i64 } { ptr @tn.str.92, i64 3 }, { ptr, i64 } { ptr @tn.str.93, i64 3 }, { ptr, i64 } { ptr @tn.str.94, i64 6 }, { ptr, i64 } { ptr @tn.str.95, i64 3 }, { ptr, i64 } { ptr @tn.str.96, i64 8 }, { ptr, i64 } { ptr @tn.str.97, i64 5 }, { ptr, i64 } { ptr @tn.str.98, i64 5 }, { ptr, i64 } { ptr @tn.str.99, i64 4 }, { ptr, i64 } { ptr @tn.str.100, i64 5 }, { ptr, i64 } { ptr @tn.str.101, i64 15 }, { ptr, i64 } { ptr @tn.str.102, i64 10 }, { ptr, i64 } { ptr @tn.str.103, i64 11 }, { ptr, i64 } { ptr @tn.str.104, i64 3 }, { ptr, i64 } { ptr @tn.str.105, i64 4 }, { ptr, i64 } { ptr @tn.str.106, i64 10 }, { ptr, i64 } { ptr @tn.str.107, i64 11 }, { ptr, i64 } { ptr @tn.str.108, i64 9 }, { ptr, i64 } { ptr @tn.str.109, i64 5 }, { ptr, i64 } { ptr @tn.str.110, i64 6 }, { ptr, i64 } { ptr @tn.str.111, i64 5 }, { ptr, i64 } { ptr @tn.str.112, i64 8 }, { ptr, i64 } { ptr @tn.str.113, i64 9 }, { ptr, i64 } { ptr @tn.str.114, i64 17 }, { ptr, i64 } { ptr @tn.str.115, i64 18 }, { ptr, i64 } { ptr @tn.str.116, i64 7 }, { ptr, i64 } { ptr @tn.str.117, i64 6 }, { ptr, i64 } { ptr @tn.str.118, i64 8 }, { ptr, i64 } { ptr @tn.str.119, i64 7 }, { ptr, i64 } { ptr @tn.str.120, i64 4 }, { ptr, i64 } { ptr @tn.str.121, i64 4 }, { ptr, i64 } { ptr @tn.str.122, i64 15 }, { ptr, i64 } { ptr @tn.str.123, i64 12 }, { ptr, i64 } { ptr @tn.str.124, i64 12 }, { ptr, i64 } { ptr @tn.str.125, i64 10 }, { ptr, i64 } { ptr @tn.str.126, i64 5 }, { ptr, i64 } { ptr @tn.str.127, i64 10 }, { ptr, i64 } { ptr @tn.str.128, i64 5 }, { ptr, i64 } { ptr @tn.str.129, i64 12 }, { ptr, i64 } { ptr @tn.str.130, i64 4 }, { ptr, i64 } { ptr @tn.str.131, i64 6 }, { ptr, i64 } { ptr @tn.str.132, i64 7 }, { ptr, i64 } { ptr @tn.str.133, i64 5 }, { ptr, i64 } { ptr @tn.str.134, i64 4 }, { ptr, i64 } { ptr @tn.str.135, i64 6 }, { ptr, i64 } { ptr @tn.str.136, i64 3 }, { ptr, i64 } { ptr @tn.str.137, i64 5 }, { ptr, i64 } { ptr @tn.str.138, i64 6 }, { ptr, i64 } { ptr @tn.str.139, i64 4 }, { ptr, i64 } { ptr @tn.str.140, i64 6 }, { ptr, i64 } { ptr @tn.str.141, i64 7 }, { ptr, i64 } { ptr @tn.str.142, i64 6 }, { ptr, i64 } { ptr @tn.str.143, i64 6 }, { ptr, i64 } { ptr @tn.str.144, i64 7 }, { ptr, i64 } { ptr @tn.str.145, i64 7 }, { ptr, i64 } { ptr @tn.str.146, i64 4 }, { ptr, i64 } { ptr @tn.str.147, i64 16 }, { ptr, i64 } { ptr @tn.str.148, i64 10 }, { ptr, i64 } { ptr @tn.str.149, i64 8 }, { ptr, i64 } { ptr @tn.str.150, i64 5 }, { ptr, i64 } { ptr @tn.str.151, i64 5 }, { ptr, i64 } { ptr @tn.str.152, i64 13 }, { ptr, i64 } { ptr @tn.str.153, i64 11 }, { ptr, i64 } { ptr @tn.str.154, i64 16 }, { ptr, i64 } { ptr @tn.str.155, i64 13 }, { ptr, i64 } { ptr @tn.str.156, i64 8 }, { ptr, i64 } { ptr @tn.str.157, i64 9 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 12 }, { ptr, i64 } { ptr @tn.str.160, i64 7 }, { ptr, i64 } { ptr @tn.str.161, i64 6 }, { ptr, i64 } { ptr @tn.str.162, i64 10 }, { ptr, i64 } { ptr @tn.str.163, i64 19 }, { ptr, i64 } { ptr @tn.str.164, i64 13 }, { ptr, i64 } { ptr @tn.str.165, i64 5 }, { ptr, i64 } { ptr @tn.str.166, i64 7 }, { ptr, i64 } { ptr @tn.str.167, i64 8 }, { ptr, i64 } { ptr @tn.str.168, i64 5 }, { ptr, i64 } { ptr @tn.str.169, i64 7 }, { ptr, i64 } { ptr @tn.str.170, i64 4 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 7 }, { ptr, i64 } { ptr @tn.str.173, i64 5 }, { ptr, i64 } { ptr @tn.str.174, i64 8 }, { ptr, i64 } { ptr @tn.str.175, i64 7 }, { ptr, i64 } { ptr @tn.str.176, i64 8 }] -@str.177 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.178 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.179 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.180 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.181 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.182 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.183 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.184 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.185 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.186 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.187 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.188 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.189 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.190 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.191 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.192 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.193 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.194 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.195 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.196 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.197 = private unnamed_addr constant [29 x i8] c"=== 19. Local Fn Return ===\0A\00", align 1 -@str.198 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.199 = private unnamed_addr constant [29 x i8] c"=== 19. Local Fn Return ===\0A\00", align 1 -@str.200 = private unnamed_addr constant [21 x i8] c"local-struct: {} {}\0A\00", align 1 -@str.201 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.202 = private unnamed_addr constant [21 x i8] c"local-struct: {} {}\0A\00", align 1 -@str.203 = private unnamed_addr constant [16 x i8] c"local-enum: {}\0A\00", align 1 -@str.204 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.205 = private unnamed_addr constant [16 x i8] c"local-enum: {}\0A\00", align 1 -@str.206 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.207 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.209 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.484 = private constant [5 x i8] c"bool\00" +@tn.str.485 = private constant [3 x i8] c"s8\00" +@tn.str.486 = private constant [4 x i8] c"s16\00" +@tn.str.487 = private constant [4 x i8] c"s32\00" +@tn.str.488 = private constant [4 x i8] c"s64\00" +@tn.str.489 = private constant [3 x i8] c"u8\00" +@tn.str.490 = private constant [4 x i8] c"u16\00" +@tn.str.491 = private constant [4 x i8] c"u32\00" +@tn.str.492 = private constant [4 x i8] c"u64\00" +@tn.str.493 = private constant [4 x i8] c"f32\00" +@tn.str.494 = private constant [4 x i8] c"f64\00" +@tn.str.495 = private constant [7 x i8] c"string\00" +@tn.str.496 = private constant [4 x i8] c"Any\00" +@tn.str.497 = private constant [9 x i8] c"noreturn\00" +@tn.str.498 = private constant [6 x i8] c"isize\00" +@tn.str.499 = private constant [6 x i8] c"usize\00" +@tn.str.500 = private constant [5 x i8] c"void\00" +@tn.str.501 = private constant [6 x i8] c"*void\00" +@tn.str.502 = private constant [16 x i8] c"Source_Location\00" +@tn.str.503 = private constant [11 x i8] c"CAllocator\00" +@tn.str.504 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.505 = private constant [4 x i8] c"GPA\00" +@tn.str.506 = private constant [5 x i8] c"*GPA\00" +@tn.str.507 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.508 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.509 = private constant [10 x i8] c"Allocator\00" +@tn.str.510 = private constant [6 x i8] c"Arena\00" +@tn.str.511 = private constant [7 x i8] c"*Arena\00" +@tn.str.512 = private constant [6 x i8] c"[*]u8\00" +@tn.str.513 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.514 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.515 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.516 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.517 = private constant [8 x i8] c"Context\00" +@tn.str.518 = private constant [7 x i8] c"[4]s64\00" +@tn.str.519 = private constant [9 x i8] c"[]string\00" +@tn.str.520 = private constant [9 x i8] c"OpenMode\00" +@tn.str.521 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.522 = private constant [5 x i8] c"File\00" +@tn.str.523 = private constant [6 x i8] c"*File\00" +@tn.str.524 = private constant [6 x i8] c"?File\00" +@tn.str.525 = private constant [8 x i8] c"?string\00" +@tn.str.526 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.527 = private constant [4 x i8] c"*u8\00" +@tn.str.528 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.529 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.530 = private constant [5 x i8] c"*s32\00" +@tn.str.531 = private constant [9 x i8] c"SockAddr\00" +@tn.str.532 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.533 = private constant [5 x i8] c"*u32\00" +@tn.str.534 = private constant [10 x i8] c"JsonError\00" +@tn.str.535 = private constant [6 x i8] c"Array\00" +@tn.str.536 = private constant [7 x i8] c"Object\00" +@tn.str.537 = private constant [6 x i8] c"Value\00" +@tn.str.538 = private constant [7 x i8] c"Member\00" +@tn.str.539 = private constant [9 x i8] c"[*]Value\00" +@tn.str.540 = private constant [7 x i8] c"*Array\00" +@tn.str.541 = private constant [10 x i8] c"[*]Member\00" +@tn.str.542 = private constant [8 x i8] c"*Object\00" +@tn.str.543 = private constant [5 x i8] c"[]u8\00" +@tn.str.544 = private constant [5 x i8] c"Sink\00" +@tn.str.545 = private constant [6 x i8] c"*Sink\00" +@tn.str.546 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.547 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.548 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.549 = private constant [7 x i8] c"Parser\00" +@tn.str.550 = private constant [8 x i8] c"*Parser\00" +@tn.str.551 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.552 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.553 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.554 = private constant [13 x i8] c"Architecture\00" +@tn.str.555 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.556 = private constant [11 x i8] c"() -> bool\00" +@tn.str.557 = private constant [5 x i8] c"*s64\00" +@tn.str.558 = private constant [9 x i8] c"CliError\00" +@tn.str.559 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.560 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.561 = private constant [8 x i8] c"Command\00" +@tn.str.562 = private constant [10 x i8] c"FlagValue\00" +@tn.str.563 = private constant [5 x i8] c"Diag\00" +@tn.str.564 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.565 = private constant [7 x i8] c"Parsed\00" +@tn.str.566 = private constant [8 x i8] c"*Parsed\00" +@tn.str.567 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.568 = private constant [10 x i8] c"[]Command\00" +@tn.str.569 = private constant [6 x i8] c"*Diag\00" +@tn.str.570 = private constant [7 x i8] c"[8]s64\00" +@tn.str.571 = private constant [7 x i8] c"[64]u8\00" +@tn.str.572 = private constant [7 x i8] c"Sha256\00" +@tn.str.573 = private constant [8 x i8] c"*Sha256\00" +@tn.str.574 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.575 = private constant [8 x i8] c"[64]s64\00" +@tn.str.576 = private constant [8 x i8] c"[16]f32\00" +@tn.str.577 = private constant [5 x i8] c"Mat4\00" +@tn.str.578 = private constant [5 x i8] c"Vec2\00" +@tn.str.579 = private constant [6 x i8] c"Point\00" +@tn.str.580 = private constant [11 x i8] c"Shape.rect\00" +@tn.str.581 = private constant [6 x i8] c"Shape\00" +@tn.str.582 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.583 = private constant [7 x i8] c"**void\00" +@tn.str.584 = private constant [8 x i8] c"*string\00" +@tn.str.585 = private constant [6 x i8] c"[]Any\00" +@tn.str.586 = private constant [5 x i8] c"*Any\00" +@tn.str.587 = private constant [7 x i8] c"*[]Any\00" +@tn.str.588 = private constant [6 x i8] c"*bool\00" +@tn.str.589 = private constant [7 x i8] c"*Point\00" +@tn.str.590 = private constant [7 x i8] c"[2]Any\00" +@tn.str.591 = private constant [8 x i8] c"*[2]Any\00" +@tn.str.592 = private constant [7 x i8] c"*Shape\00" +@tn.str.593 = private constant [7 x i8] c"[1]Any\00" +@tn.str.594 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.595 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.596 = private constant [5 x i8] c"*f64\00" +@tn.str.597 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.598 = private constant [11 x i8] c"*Allocator\00" +@tn.str.599 = private constant [9 x i8] c"*Context\00" +@tn.str.600 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.601 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.602 = private constant [8 x i8] c"*Member\00" +@tn.str.603 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.604 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.605 = private constant [9 x i8] c"*Command\00" +@tn.str.606 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.607 = private constant [6 x i8] c"*Mat4\00" +@tn.str.608 = private constant [6 x i8] c"*Vec2\00" +@tn.str.609 = private constant [12 x i8] c"*Shape.rect\00" +@tn.str.610 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.611 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.612 = private constant [7 x i8] c"*Value\00" +@tn.str.613 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.614 = private constant [14 x i8] c"*Architecture\00" +@tn.str.615 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.616 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.617 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.618 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.619 = private constant [9 x i8] c"*[16]f32\00" +@tn.str.620 = private constant [10 x i8] c"*[]string\00" +@tn.str.621 = private constant [6 x i8] c"*[]u8\00" +@tn.str.622 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.623 = private constant [11 x i8] c"*[]Command\00" +@tn.str.624 = private constant [6 x i8] c"**GPA\00" +@tn.str.625 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.626 = private constant [8 x i8] c"**Arena\00" +@tn.str.627 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.628 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.629 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.630 = private constant [7 x i8] c"**File\00" +@tn.str.631 = private constant [5 x i8] c"**u8\00" +@tn.str.632 = private constant [6 x i8] c"**s32\00" +@tn.str.633 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.634 = private constant [6 x i8] c"**u32\00" +@tn.str.635 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.636 = private constant [8 x i8] c"**Array\00" +@tn.str.637 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.638 = private constant [9 x i8] c"**Object\00" +@tn.str.639 = private constant [7 x i8] c"**Sink\00" +@tn.str.640 = private constant [9 x i8] c"**Parser\00" +@tn.str.641 = private constant [6 x i8] c"**s64\00" +@tn.str.642 = private constant [9 x i8] c"**Parsed\00" +@tn.str.643 = private constant [7 x i8] c"**Diag\00" +@tn.str.644 = private constant [9 x i8] c"**Sha256\00" +@tn.str.645 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.646 = private constant [8 x i8] c"***void\00" +@tn.str.647 = private constant [9 x i8] c"**string\00" +@tn.str.648 = private constant [6 x i8] c"**Any\00" +@tn.str.649 = private constant [8 x i8] c"**[]Any\00" +@tn.str.650 = private constant [7 x i8] c"**bool\00" +@tn.str.651 = private constant [8 x i8] c"**Point\00" +@tn.str.652 = private constant [9 x i8] c"**[2]Any\00" +@tn.str.653 = private constant [8 x i8] c"**Shape\00" +@tn.str.654 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.655 = private constant [7 x i8] c"*?File\00" +@tn.str.656 = private constant [9 x i8] c"*?string\00" +@tn.str.657 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.658 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [176 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.484, i64 4 }, { ptr, i64 } { ptr @tn.str.485, i64 2 }, { ptr, i64 } { ptr @tn.str.486, i64 3 }, { ptr, i64 } { ptr @tn.str.487, i64 3 }, { ptr, i64 } { ptr @tn.str.488, i64 3 }, { ptr, i64 } { ptr @tn.str.489, i64 2 }, { ptr, i64 } { ptr @tn.str.490, i64 3 }, { ptr, i64 } { ptr @tn.str.491, i64 3 }, { ptr, i64 } { ptr @tn.str.492, i64 3 }, { ptr, i64 } { ptr @tn.str.493, i64 3 }, { ptr, i64 } { ptr @tn.str.494, i64 3 }, { ptr, i64 } { ptr @tn.str.495, i64 6 }, { ptr, i64 } { ptr @tn.str.496, i64 3 }, { ptr, i64 } { ptr @tn.str.497, i64 8 }, { ptr, i64 } { ptr @tn.str.498, i64 5 }, { ptr, i64 } { ptr @tn.str.499, i64 5 }, { ptr, i64 } { ptr @tn.str.500, i64 4 }, { ptr, i64 } { ptr @tn.str.501, i64 5 }, { ptr, i64 } { ptr @tn.str.502, i64 15 }, { ptr, i64 } { ptr @tn.str.503, i64 10 }, { ptr, i64 } { ptr @tn.str.504, i64 11 }, { ptr, i64 } { ptr @tn.str.505, i64 3 }, { ptr, i64 } { ptr @tn.str.506, i64 4 }, { ptr, i64 } { ptr @tn.str.507, i64 10 }, { ptr, i64 } { ptr @tn.str.508, i64 11 }, { ptr, i64 } { ptr @tn.str.509, i64 9 }, { ptr, i64 } { ptr @tn.str.510, i64 5 }, { ptr, i64 } { ptr @tn.str.511, i64 6 }, { ptr, i64 } { ptr @tn.str.512, i64 5 }, { ptr, i64 } { ptr @tn.str.513, i64 8 }, { ptr, i64 } { ptr @tn.str.514, i64 9 }, { ptr, i64 } { ptr @tn.str.515, i64 17 }, { ptr, i64 } { ptr @tn.str.516, i64 18 }, { ptr, i64 } { ptr @tn.str.517, i64 7 }, { ptr, i64 } { ptr @tn.str.518, i64 6 }, { ptr, i64 } { ptr @tn.str.519, i64 8 }, { ptr, i64 } { ptr @tn.str.520, i64 8 }, { ptr, i64 } { ptr @tn.str.521, i64 8 }, { ptr, i64 } { ptr @tn.str.522, i64 4 }, { ptr, i64 } { ptr @tn.str.523, i64 5 }, { ptr, i64 } { ptr @tn.str.524, i64 5 }, { ptr, i64 } { ptr @tn.str.525, i64 7 }, { ptr, i64 } { ptr @tn.str.526, i64 10 }, { ptr, i64 } { ptr @tn.str.527, i64 3 }, { ptr, i64 } { ptr @tn.str.528, i64 13 }, { ptr, i64 } { ptr @tn.str.529, i64 14 }, { ptr, i64 } { ptr @tn.str.530, i64 4 }, { ptr, i64 } { ptr @tn.str.531, i64 8 }, { ptr, i64 } { ptr @tn.str.532, i64 9 }, { ptr, i64 } { ptr @tn.str.533, i64 4 }, { ptr, i64 } { ptr @tn.str.534, i64 9 }, { ptr, i64 } { ptr @tn.str.535, i64 5 }, { ptr, i64 } { ptr @tn.str.536, i64 6 }, { ptr, i64 } { ptr @tn.str.537, i64 5 }, { ptr, i64 } { ptr @tn.str.538, i64 6 }, { ptr, i64 } { ptr @tn.str.539, i64 8 }, { ptr, i64 } { ptr @tn.str.540, i64 6 }, { ptr, i64 } { ptr @tn.str.541, i64 9 }, { ptr, i64 } { ptr @tn.str.542, i64 7 }, { ptr, i64 } { ptr @tn.str.543, i64 4 }, { ptr, i64 } { ptr @tn.str.544, i64 4 }, { ptr, i64 } { ptr @tn.str.545, i64 5 }, { ptr, i64 } { ptr @tn.str.546, i64 16 }, { ptr, i64 } { ptr @tn.str.547, i64 14 }, { ptr, i64 } { ptr @tn.str.548, i64 21 }, { ptr, i64 } { ptr @tn.str.549, i64 6 }, { ptr, i64 } { ptr @tn.str.550, i64 7 }, { ptr, i64 } { ptr @tn.str.551, i64 24 }, { ptr, i64 } { ptr @tn.str.552, i64 23 }, { ptr, i64 } { ptr @tn.str.553, i64 15 }, { ptr, i64 } { ptr @tn.str.554, i64 12 }, { ptr, i64 } { ptr @tn.str.555, i64 12 }, { ptr, i64 } { ptr @tn.str.556, i64 10 }, { ptr, i64 } { ptr @tn.str.557, i64 4 }, { ptr, i64 } { ptr @tn.str.558, i64 8 }, { ptr, i64 } { ptr @tn.str.559, i64 8 }, { ptr, i64 } { ptr @tn.str.560, i64 10 }, { ptr, i64 } { ptr @tn.str.561, i64 7 }, { ptr, i64 } { ptr @tn.str.562, i64 9 }, { ptr, i64 } { ptr @tn.str.563, i64 4 }, { ptr, i64 } { ptr @tn.str.564, i64 13 }, { ptr, i64 } { ptr @tn.str.565, i64 6 }, { ptr, i64 } { ptr @tn.str.566, i64 7 }, { ptr, i64 } { ptr @tn.str.567, i64 18 }, { ptr, i64 } { ptr @tn.str.568, i64 9 }, { ptr, i64 } { ptr @tn.str.569, i64 5 }, { ptr, i64 } { ptr @tn.str.570, i64 6 }, { ptr, i64 } { ptr @tn.str.571, i64 6 }, { ptr, i64 } { ptr @tn.str.572, i64 6 }, { ptr, i64 } { ptr @tn.str.573, i64 7 }, { ptr, i64 } { ptr @tn.str.574, i64 7 }, { ptr, i64 } { ptr @tn.str.575, i64 7 }, { ptr, i64 } { ptr @tn.str.576, i64 7 }, { ptr, i64 } { ptr @tn.str.577, i64 4 }, { ptr, i64 } { ptr @tn.str.578, i64 4 }, { ptr, i64 } { ptr @tn.str.579, i64 5 }, { ptr, i64 } { ptr @tn.str.580, i64 10 }, { ptr, i64 } { ptr @tn.str.581, i64 5 }, { ptr, i64 } { ptr @tn.str.582, i64 12 }, { ptr, i64 } { ptr @tn.str.583, i64 6 }, { ptr, i64 } { ptr @tn.str.584, i64 7 }, { ptr, i64 } { ptr @tn.str.585, i64 5 }, { ptr, i64 } { ptr @tn.str.586, i64 4 }, { ptr, i64 } { ptr @tn.str.587, i64 6 }, { ptr, i64 } { ptr @tn.str.588, i64 5 }, { ptr, i64 } { ptr @tn.str.589, i64 6 }, { ptr, i64 } { ptr @tn.str.590, i64 6 }, { ptr, i64 } { ptr @tn.str.591, i64 7 }, { ptr, i64 } { ptr @tn.str.592, i64 6 }, { ptr, i64 } { ptr @tn.str.593, i64 6 }, { ptr, i64 } { ptr @tn.str.594, i64 7 }, { ptr, i64 } { ptr @tn.str.595, i64 7 }, { ptr, i64 } { ptr @tn.str.596, i64 4 }, { ptr, i64 } { ptr @tn.str.597, i64 16 }, { ptr, i64 } { ptr @tn.str.598, i64 10 }, { ptr, i64 } { ptr @tn.str.599, i64 8 }, { ptr, i64 } { ptr @tn.str.600, i64 11 }, { ptr, i64 } { ptr @tn.str.601, i64 14 }, { ptr, i64 } { ptr @tn.str.602, i64 7 }, { ptr, i64 } { ptr @tn.str.603, i64 13 }, { ptr, i64 } { ptr @tn.str.604, i64 9 }, { ptr, i64 } { ptr @tn.str.605, i64 8 }, { ptr, i64 } { ptr @tn.str.606, i64 10 }, { ptr, i64 } { ptr @tn.str.607, i64 5 }, { ptr, i64 } { ptr @tn.str.608, i64 5 }, { ptr, i64 } { ptr @tn.str.609, i64 11 }, { ptr, i64 } { ptr @tn.str.610, i64 9 }, { ptr, i64 } { ptr @tn.str.611, i64 9 }, { ptr, i64 } { ptr @tn.str.612, i64 6 }, { ptr, i64 } { ptr @tn.str.613, i64 16 }, { ptr, i64 } { ptr @tn.str.614, i64 13 }, { ptr, i64 } { ptr @tn.str.615, i64 14 }, { ptr, i64 } { ptr @tn.str.616, i64 7 }, { ptr, i64 } { ptr @tn.str.617, i64 7 }, { ptr, i64 } { ptr @tn.str.618, i64 8 }, { ptr, i64 } { ptr @tn.str.619, i64 8 }, { ptr, i64 } { ptr @tn.str.620, i64 9 }, { ptr, i64 } { ptr @tn.str.621, i64 5 }, { ptr, i64 } { ptr @tn.str.622, i64 11 }, { ptr, i64 } { ptr @tn.str.623, i64 10 }, { ptr, i64 } { ptr @tn.str.624, i64 5 }, { ptr, i64 } { ptr @tn.str.625, i64 12 }, { ptr, i64 } { ptr @tn.str.626, i64 7 }, { ptr, i64 } { ptr @tn.str.627, i64 6 }, { ptr, i64 } { ptr @tn.str.628, i64 10 }, { ptr, i64 } { ptr @tn.str.629, i64 19 }, { ptr, i64 } { ptr @tn.str.630, i64 6 }, { ptr, i64 } { ptr @tn.str.631, i64 4 }, { ptr, i64 } { ptr @tn.str.632, i64 5 }, { ptr, i64 } { ptr @tn.str.633, i64 10 }, { ptr, i64 } { ptr @tn.str.634, i64 5 }, { ptr, i64 } { ptr @tn.str.635, i64 9 }, { ptr, i64 } { ptr @tn.str.636, i64 7 }, { ptr, i64 } { ptr @tn.str.637, i64 10 }, { ptr, i64 } { ptr @tn.str.638, i64 8 }, { ptr, i64 } { ptr @tn.str.639, i64 6 }, { ptr, i64 } { ptr @tn.str.640, i64 8 }, { ptr, i64 } { ptr @tn.str.641, i64 5 }, { ptr, i64 } { ptr @tn.str.642, i64 8 }, { ptr, i64 } { ptr @tn.str.643, i64 6 }, { ptr, i64 } { ptr @tn.str.644, i64 8 }, { ptr, i64 } { ptr @tn.str.645, i64 13 }, { ptr, i64 } { ptr @tn.str.646, i64 7 }, { ptr, i64 } { ptr @tn.str.647, i64 8 }, { ptr, i64 } { ptr @tn.str.648, i64 5 }, { ptr, i64 } { ptr @tn.str.649, i64 7 }, { ptr, i64 } { ptr @tn.str.650, i64 6 }, { ptr, i64 } { ptr @tn.str.651, i64 7 }, { ptr, i64 } { ptr @tn.str.652, i64 8 }, { ptr, i64 } { ptr @tn.str.653, i64 7 }, { ptr, i64 } { ptr @tn.str.654, i64 8 }, { ptr, i64 } { ptr @tn.str.655, i64 6 }, { ptr, i64 } { ptr @tn.str.656, i64 8 }, { ptr, i64 } { ptr @tn.str.657, i64 15 }, { ptr, i64 } { ptr @tn.str.658, i64 8 }] +@str.659 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.660 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.661 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.662 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.663 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.664 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.665 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.666 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.667 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.668 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.669 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.670 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.671 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.672 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.673 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.674 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.675 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.677 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.678 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.679 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.680 = private unnamed_addr constant [29 x i8] c"=== 19. Local Fn Return ===\0A\00", align 1 +@str.681 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.682 = private unnamed_addr constant [29 x i8] c"=== 19. Local Fn Return ===\0A\00", align 1 +@str.683 = private unnamed_addr constant [21 x i8] c"local-struct: {} {}\0A\00", align 1 +@str.684 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.685 = private unnamed_addr constant [21 x i8] c"local-struct: {} {}\0A\00", align 1 +@str.686 = private unnamed_addr constant [16 x i8] c"local-enum: {}\0A\00", align 1 +@str.687 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.688 = private unnamed_addr constant [16 x i8] c"local-enum: {}\0A\00", align 1 +@str.689 = private unnamed_addr constant [16 x i8] c"Source_Location\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 = private constant [5 x i8] c"file\00" -@fld.str.210 = private constant [5 x i8] c"line\00" -@fld.str.211 = private constant [4 x i8] c"col\00" -@fld.str.212 = 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.210, i64 4 }, { ptr, i64 } { ptr @fld.str.211, i64 3 }, { ptr, i64 } { ptr @fld.str.212, i64 4 }] -@str.213 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.214 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.215 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.216 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.217 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.218 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.219 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.220 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.221 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.222 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.223 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.224 = private constant [12 x i8] c"alloc_count\00" -@field_names.225 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.224, i64 11 }] -@str.226 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.227 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.228 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.229 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.230 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.231 = private constant [5 x i8] c"next\00" -@fld.str.232 = private constant [4 x i8] c"cap\00" -@field_names.233 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.231, i64 4 }, { ptr, i64 } { ptr @fld.str.232, i64 3 }] -@str.234 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.235 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.236 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.237 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.238 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.239 = private constant [4 x i8] c"ctx\00" -@fld.str.240 = private constant [6 x i8] c"alloc\00" -@fld.str.241 = private constant [8 x i8] c"dealloc\00" -@field_names.242 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.239, i64 3 }, { ptr, i64 } { ptr @fld.str.240, i64 5 }, { ptr, i64 } { ptr @fld.str.241, i64 7 }] -@str.243 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.244 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.245 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.246 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.247 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.248 = private constant [6 x i8] c"first\00" -@fld.str.249 = private constant [10 x i8] c"end_index\00" -@fld.str.250 = private constant [7 x i8] c"parent\00" -@field_names.251 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.248, i64 5 }, { ptr, i64 } { ptr @fld.str.249, i64 9 }, { ptr, i64 } { ptr @fld.str.250, i64 6 }] -@str.252 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.253 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.254 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.255 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.256 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.257 = private constant [4 x i8] c"buf\00" -@fld.str.258 = private constant [4 x i8] c"len\00" -@fld.str.259 = private constant [4 x i8] c"pos\00" -@field_names.260 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.257, i64 3 }, { ptr, i64 } { ptr @fld.str.258, i64 3 }, { ptr, i64 } { ptr @fld.str.259, i64 3 }] -@str.261 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.262 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.263 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.264 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.265 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.266 = private constant [7 x i8] c"parent\00" -@fld.str.267 = private constant [12 x i8] c"alloc_count\00" -@fld.str.268 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.269 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.270 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.266, i64 6 }, { ptr, i64 } { ptr @fld.str.267, i64 11 }, { ptr, i64 } { ptr @fld.str.268, i64 13 }, { ptr, i64 } { ptr @fld.str.269, i64 17 }] -@str.271 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.272 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.273 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.274 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.275 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.276 = private constant [10 x i8] c"allocator\00" -@fld.str.277 = private constant [5 x i8] c"data\00" -@field_names.278 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.276, i64 9 }, { ptr, i64 } { ptr @fld.str.277, i64 4 }] -@str.279 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.280 = private unnamed_addr constant [5 x i8] c"Mat4\00", align 1 -@str.281 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.282 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.283 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.284 = private constant [5 x i8] c"data\00" -@field_names.285 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.284, i64 4 }] -@str.286 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.287 = private unnamed_addr constant [5 x i8] c"Vec2\00", align 1 -@str.288 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.289 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.290 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.291 = private constant [2 x i8] c"x\00" -@fld.str.292 = private constant [2 x i8] c"y\00" -@field_names.293 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.291, i64 1 }, { ptr, i64 } { ptr @fld.str.292, i64 1 }] -@str.294 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.295 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 -@str.296 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.297 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.298 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.299 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.300 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.301 = private unnamed_addr constant [6 x i8] c"Point\00", align 1 -@str.302 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.303 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.304 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.305 = private constant [2 x i8] c"x\00" -@fld.str.306 = private constant [2 x i8] c"y\00" -@field_names.307 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.305, i64 1 }, { ptr, i64 } { ptr @fld.str.306, i64 1 }] -@str.308 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.309 = private unnamed_addr constant [11 x i8] c"Shape.rect\00", align 1 -@str.310 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.311 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.312 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.313 = private constant [2 x i8] c"w\00" -@fld.str.314 = private constant [2 x i8] c"h\00" -@field_names.315 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.313, i64 1 }, { ptr, i64 } { ptr @fld.str.314, i64 1 }] -@str.316 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.317 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.318 = private constant [6 x i8] c"macos\00" -@fld.str.319 = private constant [6 x i8] c"linux\00" -@fld.str.320 = private constant [8 x i8] c"windows\00" -@fld.str.321 = private constant [5 x i8] c"wasm\00" -@fld.str.322 = private constant [4 x i8] c"ios\00" -@fld.str.323 = private constant [8 x i8] c"android\00" -@fld.str.324 = private constant [8 x i8] c"unknown\00" -@field_names.325 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.318, i64 5 }, { ptr, i64 } { ptr @fld.str.319, i64 5 }, { ptr, i64 } { ptr @fld.str.320, i64 7 }, { ptr, i64 } { ptr @fld.str.321, i64 4 }, { ptr, i64 } { ptr @fld.str.322, i64 3 }, { ptr, i64 } { ptr @fld.str.323, i64 7 }, { ptr, i64 } { ptr @fld.str.324, i64 7 }] -@str.326 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.327 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.328 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.329 = private constant [8 x i8] c"aarch64\00" -@fld.str.330 = private constant [7 x i8] c"x86_64\00" -@fld.str.331 = private constant [7 x i8] c"wasm32\00" -@fld.str.332 = private constant [7 x i8] c"wasm64\00" -@fld.str.333 = private constant [8 x i8] c"unknown\00" -@field_names.334 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.329, i64 7 }, { ptr, i64 } { ptr @fld.str.330, i64 6 }, { ptr, i64 } { ptr @fld.str.331, i64 6 }, { ptr, i64 } { ptr @fld.str.332, i64 6 }, { ptr, i64 } { ptr @fld.str.333, i64 7 }] -@str.335 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.336 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.337 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.338 = private constant [7 x i8] c"circle\00" -@fld.str.339 = private constant [5 x i8] c"rect\00" -@fld.str.340 = private constant [5 x i8] c"none\00" -@field_names.341 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.338, i64 6 }, { ptr, i64 } { ptr @fld.str.339, i64 4 }, { ptr, i64 } { ptr @fld.str.340, i64 4 }] -@str.342 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.343 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.344 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.345 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.346 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.347 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.348 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.349 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.350 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.351 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.352 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.353 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.354 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.355 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.356 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.357 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.358 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.359 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.360 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.361 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.362 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.363 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.364 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.365 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.366 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.367 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.368 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.369 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.370 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.371 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.372 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.373 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.374 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.375 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.376 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.377 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.378 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.379 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.380 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.381 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.382 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.383 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.384 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.385 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.386 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.387 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.388 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.389 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.390 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.391 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.392 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.393 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.394 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.395 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.396 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.397 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.398 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.399 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.400 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.401 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.402 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.403 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.404 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.405 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.406 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.407 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.408 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.409 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.410 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.411 = private unnamed_addr constant [7 x i8] c"*Point\00", align 1 -@str.412 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.413 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.414 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.415 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.416 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.417 = private unnamed_addr constant [8 x i8] c"*[2]Any\00", align 1 -@str.418 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.419 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.420 = private unnamed_addr constant [7 x i8] c"*Shape\00", align 1 -@str.421 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.422 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.423 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.424 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.693 = private constant [5 x i8] c"line\00" +@fld.str.694 = private constant [4 x i8] c"col\00" +@fld.str.695 = 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.693, i64 4 }, { ptr, i64 } { ptr @fld.str.694, i64 3 }, { ptr, i64 } { ptr @fld.str.695, i64 4 }] +@str.696 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.697 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.698 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.699 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.700 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.701 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.702 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.703 = private unnamed_addr constant [4 x i8] c"GPA\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 [12 x i8] c"alloc_count\00" +@field_names.708 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.707, i64 11 }] +@str.709 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.710 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.711 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.712 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.713 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.714 = private constant [5 x i8] c"next\00" +@fld.str.715 = private constant [4 x i8] c"cap\00" +@field_names.716 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.714, i64 4 }, { ptr, i64 } { ptr @fld.str.715, i64 3 }] +@str.717 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.718 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.719 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.720 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.721 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.722 = private constant [4 x i8] c"ctx\00" +@fld.str.723 = private constant [6 x i8] c"alloc\00" +@fld.str.724 = private constant [8 x i8] c"dealloc\00" +@field_names.725 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.722, i64 3 }, { ptr, i64 } { ptr @fld.str.723, i64 5 }, { ptr, i64 } { ptr @fld.str.724, i64 7 }] +@str.726 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.727 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.728 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.729 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.730 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.731 = private constant [6 x i8] c"first\00" +@fld.str.732 = private constant [10 x i8] c"end_index\00" +@fld.str.733 = private constant [7 x i8] c"parent\00" +@field_names.734 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.731, i64 5 }, { ptr, i64 } { ptr @fld.str.732, i64 9 }, { ptr, i64 } { ptr @fld.str.733, i64 6 }] +@str.735 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.736 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.737 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.738 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.739 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.740 = private constant [4 x i8] c"buf\00" +@fld.str.741 = private constant [4 x i8] c"len\00" +@fld.str.742 = private constant [4 x i8] c"pos\00" +@field_names.743 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.740, i64 3 }, { ptr, i64 } { ptr @fld.str.741, i64 3 }, { ptr, i64 } { ptr @fld.str.742, i64 3 }] +@str.744 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.745 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\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 [7 x i8] c"parent\00" +@fld.str.750 = private constant [12 x i8] c"alloc_count\00" +@fld.str.751 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.752 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.753 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.749, i64 6 }, { ptr, i64 } { ptr @fld.str.750, i64 11 }, { ptr, i64 } { ptr @fld.str.751, i64 13 }, { ptr, i64 } { ptr @fld.str.752, i64 17 }] +@str.754 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.755 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.756 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.757 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.758 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.759 = private constant [10 x i8] c"allocator\00" +@fld.str.760 = private constant [5 x i8] c"data\00" +@field_names.761 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.759, i64 9 }, { ptr, i64 } { ptr @fld.str.760, i64 4 }] +@str.762 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.763 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.764 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.765 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.766 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.767 = private constant [3 x i8] c"fd\00" +@field_names.768 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.767, i64 2 }] +@str.769 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.770 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.771 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.772 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.773 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.774 = private constant [5 x i8] c"file\00" +@fld.str.775 = private constant [5 x i8] c"line\00" +@fld.str.776 = private constant [4 x i8] c"col\00" +@fld.str.777 = private constant [5 x i8] c"func\00" +@fld.str.778 = private constant [10 x i8] c"line_text\00" +@field_names.779 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.774, i64 4 }, { ptr, i64 } { ptr @fld.str.775, i64 4 }, { ptr, i64 } { ptr @fld.str.776, i64 3 }, { ptr, i64 } { ptr @fld.str.777, i64 4 }, { ptr, i64 } { ptr @fld.str.778, i64 9 }] +@str.780 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.781 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.782 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.783 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.784 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.785 = private constant [10 x i8] c"exit_code\00" +@fld.str.786 = private constant [7 x i8] c"stdout\00" +@field_names.787 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.785, i64 9 }, { ptr, i64 } { ptr @fld.str.786, i64 6 }] +@str.788 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.789 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.790 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.791 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.792 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.793 = private constant [8 x i8] c"sin_len\00" +@fld.str.794 = private constant [11 x i8] c"sin_family\00" +@fld.str.795 = private constant [9 x i8] c"sin_port\00" +@fld.str.796 = private constant [9 x i8] c"sin_addr\00" +@fld.str.797 = private constant [9 x i8] c"sin_zero\00" +@field_names.798 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.793, i64 7 }, { ptr, i64 } { ptr @fld.str.794, i64 10 }, { ptr, i64 } { ptr @fld.str.795, i64 8 }, { ptr, i64 } { ptr @fld.str.796, i64 8 }, { ptr, i64 } { ptr @fld.str.797, i64 8 }] +@str.799 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.800 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.801 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.802 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.803 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.804 = private constant [6 x i8] c"items\00" +@fld.str.805 = private constant [4 x i8] c"len\00" +@fld.str.806 = private constant [4 x i8] c"cap\00" +@field_names.807 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.804, i64 5 }, { ptr, i64 } { ptr @fld.str.805, i64 3 }, { ptr, i64 } { ptr @fld.str.806, i64 3 }] +@str.808 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.809 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.810 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.811 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.812 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.813 = private constant [6 x i8] c"items\00" +@fld.str.814 = private constant [4 x i8] c"len\00" +@fld.str.815 = private constant [4 x i8] c"cap\00" +@field_names.816 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.813, i64 5 }, { ptr, i64 } { ptr @fld.str.814, i64 3 }, { ptr, i64 } { ptr @fld.str.815, i64 3 }] +@str.817 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.818 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.819 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.820 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.821 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.822 = private constant [4 x i8] c"key\00" +@fld.str.823 = private constant [4 x i8] c"val\00" +@field_names.824 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.822, i64 3 }, { ptr, i64 } { ptr @fld.str.823, i64 3 }] +@str.825 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.826 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.827 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.828 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.829 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.830 = private constant [4 x i8] c"dst\00" +@fld.str.831 = private constant [4 x i8] c"pos\00" +@fld.str.832 = private constant [5 x i8] c"file\00" +@field_names.833 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.830, i64 3 }, { ptr, i64 } { ptr @fld.str.831, i64 3 }, { ptr, i64 } { ptr @fld.str.832, i64 4 }] +@str.834 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.835 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.836 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.837 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.838 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.839 = private constant [4 x i8] c"src\00" +@fld.str.840 = private constant [4 x i8] c"pos\00" +@fld.str.841 = private constant [6 x i8] c"alloc\00" +@field_names.842 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.839, i64 3 }, { ptr, i64 } { ptr @fld.str.840, i64 3 }, { ptr, i64 } { ptr @fld.str.841, i64 5 }] +@str.843 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.844 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.845 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.846 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.847 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.848 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.849 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.850 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.851 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.852 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.853 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.854 = private constant [5 x i8] c"name\00" +@fld.str.855 = private constant [12 x i8] c"takes_value\00" +@fld.str.856 = private constant [9 x i8] c"required\00" +@field_names.857 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.854, i64 4 }, { ptr, i64 } { ptr @fld.str.855, i64 11 }, { ptr, i64 } { ptr @fld.str.856, i64 8 }] +@str.858 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.859 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.860 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.861 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.862 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.863 = private constant [6 x i8] c"group\00" +@fld.str.864 = private constant [8 x i8] c"command\00" +@fld.str.865 = private constant [6 x i8] c"flags\00" +@field_names.866 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.863, i64 5 }, { ptr, i64 } { ptr @fld.str.864, i64 7 }, { ptr, i64 } { ptr @fld.str.865, i64 5 }] +@str.867 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.868 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.869 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.870 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.871 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.872 = private constant [4 x i8] c"set\00" +@fld.str.873 = private constant [6 x i8] c"value\00" +@field_names.874 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.872, i64 3 }, { ptr, i64 } { ptr @fld.str.873, i64 5 }] +@str.875 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.876 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.877 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.878 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.879 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.880 = private constant [6 x i8] c"index\00" +@fld.str.881 = private constant [6 x i8] c"token\00" +@field_names.882 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.880, i64 5 }, { ptr, i64 } { ptr @fld.str.881, i64 5 }] +@str.883 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.884 = private unnamed_addr constant [7 x i8] c"Parsed\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 [6 x i8] c"group\00" +@fld.str.889 = private constant [8 x i8] c"command\00" +@fld.str.890 = private constant [10 x i8] c"cmd_index\00" +@fld.str.891 = private constant [5 x i8] c"json\00" +@fld.str.892 = private constant [5 x i8] c"rest\00" +@fld.str.893 = private constant [5 x i8] c"spec\00" +@fld.str.894 = private constant [7 x i8] c"values\00" +@field_names.895 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.888, i64 5 }, { ptr, i64 } { ptr @fld.str.889, i64 7 }, { ptr, i64 } { ptr @fld.str.890, i64 9 }, { ptr, i64 } { ptr @fld.str.891, i64 4 }, { ptr, i64 } { ptr @fld.str.892, i64 4 }, { ptr, i64 } { ptr @fld.str.893, i64 4 }, { ptr, i64 } { ptr @fld.str.894, i64 6 }] +@str.896 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.897 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.898 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.899 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.900 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.901 = private constant [2 x i8] c"h\00" +@fld.str.902 = private constant [4 x i8] c"buf\00" +@fld.str.903 = private constant [8 x i8] c"buf_len\00" +@fld.str.904 = private constant [10 x i8] c"total_len\00" +@field_names.905 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.901, i64 1 }, { ptr, i64 } { ptr @fld.str.902, i64 3 }, { ptr, i64 } { ptr @fld.str.903, i64 7 }, { ptr, i64 } { ptr @fld.str.904, i64 9 }] +@str.906 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.907 = private unnamed_addr constant [5 x i8] c"Mat4\00", align 1 +@str.908 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.909 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.910 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.911 = private constant [5 x i8] c"data\00" +@field_names.912 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.911, i64 4 }] +@str.913 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.914 = private unnamed_addr constant [5 x i8] c"Vec2\00", align 1 +@str.915 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.916 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.917 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.918 = private constant [2 x i8] c"x\00" +@fld.str.919 = private constant [2 x i8] c"y\00" +@field_names.920 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.918, i64 1 }, { ptr, i64 } { ptr @fld.str.919, i64 1 }] +@str.921 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.922 = private unnamed_addr constant [6 x i8] c"Point\00", align 1 +@str.923 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.924 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.925 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.926 = private constant [2 x i8] c"x\00" +@fld.str.927 = private constant [2 x i8] c"y\00" +@field_names.928 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.926, i64 1 }, { ptr, i64 } { ptr @fld.str.927, i64 1 }] +@str.929 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.930 = private unnamed_addr constant [11 x i8] c"Shape.rect\00", align 1 +@str.931 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.932 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.933 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.934 = private constant [2 x i8] c"w\00" +@fld.str.935 = private constant [2 x i8] c"h\00" +@field_names.936 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.934, i64 1 }, { ptr, i64 } { ptr @fld.str.935, i64 1 }] +@str.937 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.938 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.939 = private constant [5 x i8] c"read\00" +@fld.str.940 = private constant [6 x i8] c"write\00" +@fld.str.941 = private constant [7 x i8] c"append\00" +@fld.str.942 = private constant [11 x i8] c"read_write\00" +@field_names.943 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.939, i64 4 }, { ptr, i64 } { ptr @fld.str.940, i64 5 }, { ptr, i64 } { ptr @fld.str.941, i64 6 }, { ptr, i64 } { ptr @fld.str.942, i64 10 }] +@str.944 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.945 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.946 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.947 = private constant [4 x i8] c"set\00" +@fld.str.948 = private constant [8 x i8] c"current\00" +@fld.str.949 = private constant [4 x i8] c"end\00" +@field_names.950 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.947, i64 3 }, { ptr, i64 } { ptr @fld.str.948, i64 7 }, { ptr, i64 } { ptr @fld.str.949, i64 3 }] +@str.951 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.952 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.953 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.954 = private constant [6 x i8] c"null_\00" +@fld.str.955 = private constant [6 x i8] c"bool_\00" +@fld.str.956 = private constant [5 x i8] c"int_\00" +@fld.str.957 = private constant [4 x i8] c"str\00" +@fld.str.958 = private constant [6 x i8] c"array\00" +@fld.str.959 = private constant [7 x i8] c"object\00" +@field_names.960 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.954, i64 5 }, { ptr, i64 } { ptr @fld.str.955, i64 5 }, { ptr, i64 } { ptr @fld.str.956, i64 4 }, { ptr, i64 } { ptr @fld.str.957, i64 3 }, { ptr, i64 } { ptr @fld.str.958, i64 5 }, { ptr, i64 } { ptr @fld.str.959, i64 6 }] +@str.961 = private unnamed_addr constant [2 x i8] c"(\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 +@fld.str.964 = private constant [6 x i8] c"macos\00" +@fld.str.965 = private constant [6 x i8] c"linux\00" +@fld.str.966 = private constant [8 x i8] c"windows\00" +@fld.str.967 = private constant [5 x i8] c"wasm\00" +@fld.str.968 = private constant [4 x i8] c"ios\00" +@fld.str.969 = private constant [8 x i8] c"android\00" +@fld.str.970 = private constant [8 x i8] c"unknown\00" +@field_names.971 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.964, i64 5 }, { ptr, i64 } { ptr @fld.str.965, i64 5 }, { ptr, i64 } { ptr @fld.str.966, i64 7 }, { ptr, i64 } { ptr @fld.str.967, i64 4 }, { ptr, i64 } { ptr @fld.str.968, i64 3 }, { ptr, i64 } { ptr @fld.str.969, i64 7 }, { ptr, i64 } { ptr @fld.str.970, i64 7 }] +@str.972 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.973 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.974 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.975 = private constant [8 x i8] c"aarch64\00" +@fld.str.976 = private constant [7 x i8] c"x86_64\00" +@fld.str.977 = private constant [7 x i8] c"wasm32\00" +@fld.str.978 = private constant [7 x i8] c"wasm64\00" +@fld.str.979 = private constant [8 x i8] c"unknown\00" +@field_names.980 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.975, i64 7 }, { ptr, i64 } { ptr @fld.str.976, i64 6 }, { ptr, i64 } { ptr @fld.str.977, i64 6 }, { ptr, i64 } { ptr @fld.str.978, i64 6 }, { ptr, i64 } { ptr @fld.str.979, i64 7 }] +@str.981 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.982 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.983 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.984 = private constant [7 x i8] c"circle\00" +@fld.str.985 = private constant [5 x i8] c"rect\00" +@fld.str.986 = private constant [5 x i8] c"none\00" +@field_names.987 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.984, i64 6 }, { ptr, i64 } { ptr @fld.str.985, i64 4 }, { ptr, i64 } { ptr @fld.str.986, i64 4 }] +@str.988 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.989 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.990 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.991 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.992 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.993 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.994 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.995 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.996 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.997 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.998 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.1001 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1002 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1003 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1004 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1005 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1006 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1007 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1008 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1009 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1010 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.1013 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1014 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1015 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1016 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1017 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1018 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1019 = private unnamed_addr constant [3 x i8] c", \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 +@str.1023 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1024 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1025 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1026 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1027 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1028 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1029 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1030 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.1031 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1032 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1033 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.1034 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1035 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1036 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.1037 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1038 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1039 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.1040 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1041 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1042 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.1043 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1044 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1045 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.1046 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1047 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1048 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.1049 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1050 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1051 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.1052 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1053 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1054 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.1055 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1056 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1057 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.1058 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1059 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1060 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.1061 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1062 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1063 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.1064 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1065 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1066 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.1067 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1068 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1069 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.1070 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1071 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1072 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.1073 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1074 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1075 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.1076 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1077 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1078 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.1079 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1080 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1081 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.1082 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1083 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1084 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.1085 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1086 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1087 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.1088 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1089 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1090 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.1091 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1092 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1093 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.1094 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1095 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1096 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.1097 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1098 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1099 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.1100 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1101 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1102 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.1103 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1104 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1105 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.1106 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1107 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1108 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.1109 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1110 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1111 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.1112 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1113 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1114 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.1115 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1116 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1117 = private unnamed_addr constant [7 x i8] c"*Point\00", align 1 +@str.1118 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1119 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1120 = private unnamed_addr constant [8 x i8] c"*[2]Any\00", align 1 +@str.1121 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1122 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1123 = private unnamed_addr constant [7 x i8] c"*Shape\00", align 1 +@str.1124 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1125 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1126 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.1127 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1128 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1129 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1130 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1131 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -588,7 +906,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.77, i64 1 } + ret { ptr, i64 } { ptr @str.465, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -715,7 +1033,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.78, i64 4 }, %if.then.78 ], [ { ptr @str.79, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.466, i64 4 }, %if.then.78 ], [ { ptr @str.467, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -884,38 +1202,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.259 + br label %while.hdr.412 -while.hdr.259: ; preds = %if.merge.264, %entry +while.hdr.412: ; preds = %if.merge.417, %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.260, label %while.exit.261 + br i1 %icmp, label %while.body.413, label %while.exit.414 -while.body.260: ; preds = %while.hdr.259 +while.body.413: ; preds = %while.hdr.412 %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.262, label %if.else.263 + br i1 %icmpN, label %if.then.415, label %if.else.416 -while.exit.261: ; preds = %while.hdr.259 +while.exit.414: ; preds = %while.hdr.412 ret void -if.then.262: ; preds = %while.body.260 +if.then.415: ; preds = %while.body.413 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.264 + br label %if.merge.417 -if.else.263: ; preds = %while.body.260 +if.else.416: ; preds = %while.body.413 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.264 + br label %if.merge.417 -if.merge.264: ; preds = %if.else.263, %if.then.262 - %bp = phi i64 [ %addN, %if.then.262 ], [ %addN, %if.else.263 ] +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi i64 [ %addN, %if.then.415 ], [ %addN, %if.else.416 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -928,7 +1246,7 @@ if.merge.264: ; preds = %if.else.263, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.259 + br label %while.hdr.412 } ; Function Attrs: nounwind @@ -1046,12 +1364,12 @@ entry: 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.257, label %if.merge.258 + br i1 %icmp, label %if.then.410, label %if.merge.411 -if.then.257: ; preds = %entry - ret { ptr, i64 } { ptr @str.80, i64 1 } +if.then.410: ; preds = %entry + ret { ptr, i64 } { ptr @str.468, i64 1 } -if.merge.258: ; preds = %entry +if.merge.411: ; 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 @@ -1082,14 +1400,14 @@ if.merge.258: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.265 + br label %while.hdr.418 -while.hdr.265: ; preds = %if.merge.269, %if.merge.258 +while.hdr.418: ; preds = %if.merge.422, %if.merge.411 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.266, label %while.exit.267 + br i1 %icmpN, label %while.body.419, label %while.exit.420 -while.body.266: ; preds = %while.hdr.265 +while.body.419: ; preds = %while.hdr.418 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1097,9 +1415,9 @@ while.body.266: ; preds = %while.hdr.265 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.268, label %if.merge.269 + br i1 %icmpN, label %if.then.421, label %if.merge.422 -while.exit.267: ; preds = %if.then.268, %while.hdr.265 +while.exit.420: ; preds = %if.then.421, %while.hdr.418 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1107,14 +1425,14 @@ while.exit.267: ; preds = %if.then.268, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.268: ; preds = %while.body.266 - br label %while.exit.267 +if.then.421: ; preds = %while.body.419 + br label %while.exit.420 -if.merge.269: ; preds = %while.body.266 +if.merge.422: ; preds = %while.body.419 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.265 + br label %while.hdr.418 } ; Function Attrs: nounwind @@ -1192,12 +1510,14 @@ entry: %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.81, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.469, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1230,20 +1550,48 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 - i64 38, label %match.arm.43 i64 39, label %match.arm.43 - i64 42, label %match.arm.43 - i64 44, label %match.arm.43 + i64 43, label %match.arm.43 i64 45, label %match.arm.43 - i64 40, label %match.arm.44 - i64 41, label %match.arm.44 - i64 46, label %match.arm.44 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 94, label %match.arm.43 + i64 95, label %match.arm.43 + i64 96, label %match.arm.43 + i64 97, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 98, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 37, label %match.arm.47 - i64 58, label %match.arm.47 - i64 61, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 93, label %match.arm.47 + i64 107, label %match.arm.47 + i64 110, label %match.arm.47 i64 36, label %match.arm.48 - i64 51, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 102, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1252,28 +1600,44 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 + i64 40, label %match.arm.49 + i64 44, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 i64 49, label %match.arm.49 i64 50, label %match.arm.49 - i64 52, label %match.arm.49 - i64 53, label %match.arm.49 - i64 54, label %match.arm.49 - i64 55, label %match.arm.49 i64 56, label %match.arm.49 i64 57, label %match.arm.49 + i64 58, label %match.arm.49 i64 59, label %match.arm.49 - i64 60, label %match.arm.49 i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 99, label %match.arm.49 + i64 100, label %match.arm.49 + i64 101, label %match.arm.49 + i64 103, label %match.arm.49 + i64 104, label %match.arm.49 + i64 105, label %match.arm.49 + i64 106, label %match.arm.49 + i64 108, label %match.arm.49 + i64 109, label %match.arm.49 + i64 111, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.231, %dispatch.merge.217, %dispatch.merge.191, %dispatch.merge.180, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.519, %dispatch.merge.372, %dispatch.merge.340, %dispatch.merge.290, %dispatch.merge.270, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.82, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.470, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1282,7 +1646,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [95 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [176 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1310,7 +1674,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1324,87 +1688,141 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 - i64 38, label %dispatch.case.105 - i64 39, label %dispatch.case.106 - i64 42, label %dispatch.case.107 - i64 44, label %dispatch.case.108 - i64 45, label %dispatch.case.109 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 94, label %dispatch.case.121 + i64 95, label %dispatch.case.122 + i64 96, label %dispatch.case.123 + i64 97, label %dispatch.case.124 ] -match.arm.44: ; preds = %entry, %entry, %entry +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.181 [ - i64 40, label %dispatch.case.182 - i64 41, label %dispatch.case.183 - i64 46, label %dispatch.case.184 + switch i64 %ua.raw20, label %dispatch.default.271 [ + i64 37, label %dispatch.case.272 + i64 38, label %dispatch.case.273 + i64 54, label %dispatch.case.274 + i64 70, label %dispatch.case.275 + i64 71, label %dispatch.case.276 + i64 98, label %dispatch.case.277 ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.192 [ - i64 35, label %dispatch.case.193 - i64 37, label %dispatch.case.194 - i64 58, label %dispatch.case.195 - i64 61, label %dispatch.case.196 + switch i64 %ua.raw29, label %dispatch.default.291 [ + i64 35, label %dispatch.case.292 + i64 81, label %dispatch.case.293 + i64 87, label %dispatch.case.294 + i64 88, label %dispatch.case.295 + i64 92, label %dispatch.case.296 + i64 93, label %dispatch.case.297 + i64 107, label %dispatch.case.298 + i64 110, label %dispatch.case.299 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.218 [ - i64 36, label %dispatch.case.219 - i64 51, label %dispatch.case.220 + switch i64 %ua.raw33, label %dispatch.default.341 [ + i64 36, label %dispatch.case.342 + i64 60, label %dispatch.case.343 + i64 77, label %dispatch.case.344 + i64 85, label %dispatch.case.345 + i64 102, label %dispatch.case.346 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw32 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw32, label %dispatch.default.232 [ - i64 18, label %dispatch.case.233 - i64 21, label %dispatch.case.234 - i64 23, label %dispatch.case.235 - i64 25, label %dispatch.case.236 - i64 28, label %dispatch.case.237 - i64 29, label %dispatch.case.238 - i64 31, label %dispatch.case.239 - i64 33, label %dispatch.case.240 - i64 47, label %dispatch.case.241 - i64 48, label %dispatch.case.242 - i64 49, label %dispatch.case.243 - i64 50, label %dispatch.case.244 - i64 52, label %dispatch.case.245 - i64 53, label %dispatch.case.246 - i64 54, label %dispatch.case.247 - i64 55, label %dispatch.case.248 - i64 56, label %dispatch.case.249 - i64 57, label %dispatch.case.250 - i64 59, label %dispatch.case.251 - i64 60, label %dispatch.case.252 - i64 62, label %dispatch.case.253 + switch i64 %ua.raw37, label %dispatch.default.373 [ + i64 18, label %dispatch.case.374 + i64 21, label %dispatch.case.375 + i64 23, label %dispatch.case.376 + i64 25, label %dispatch.case.377 + i64 28, label %dispatch.case.378 + i64 29, label %dispatch.case.379 + i64 31, label %dispatch.case.380 + i64 33, label %dispatch.case.381 + i64 40, label %dispatch.case.382 + i64 44, label %dispatch.case.383 + i64 47, label %dispatch.case.384 + i64 49, label %dispatch.case.385 + i64 50, label %dispatch.case.386 + i64 56, label %dispatch.case.387 + i64 57, label %dispatch.case.388 + i64 58, label %dispatch.case.389 + i64 59, label %dispatch.case.390 + i64 62, label %dispatch.case.391 + i64 67, label %dispatch.case.392 + i64 74, label %dispatch.case.393 + i64 83, label %dispatch.case.394 + i64 86, label %dispatch.case.395 + i64 90, label %dispatch.case.396 + i64 99, label %dispatch.case.397 + i64 100, label %dispatch.case.398 + i64 101, label %dispatch.case.399 + i64 103, label %dispatch.case.400 + i64 104, label %dispatch.case.401 + i64 105, label %dispatch.case.402 + i64 106, label %dispatch.case.403 + i64 108, label %dispatch.case.404 + i64 109, label %dispatch.case.405 + i64 111, label %dispatch.case.406 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.520 [ + i64 41, label %dispatch.case.521 + i64 42, label %dispatch.case.522 + i64 46, label %dispatch.case.523 + i64 91, label %dispatch.case.524 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag36 = extractvalue { i64, i64 } %loadN, 0 - %refl.val37 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype38 = icmp eq i64 %refl.tag36, 13 - %refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36 - %tn.gep = getelementptr inbounds [95 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [176 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1414,15 +1832,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw44 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1430,16 +1848,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw46 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw46 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw47 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1449,377 +1867,698 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.177, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.659, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load {}, ptr %ua.ptr56, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, ptr, ptr }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load69) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load { [16 x float] }, ptr %ua.ptr88, align 4 - %callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load89) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.106: ; preds = %match.arm.43 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load { float, float }, ptr %ua.ptr92, align 4 - %callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load93) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.107: ; preds = %match.arm.43 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load {}, ptr %ua.ptr96, align 1 - %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load97) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.108: ; preds = %match.arm.43 - %ua.raw99 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr100 = inttoptr i64 %ua.raw99 to ptr - %ua.load101 = load { i32, i32 }, ptr %ua.ptr100, align 4 - %callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load101) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.109: ; preds = %match.arm.43 - %ua.raw103 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr104 = inttoptr i64 %ua.raw103 to ptr - %ua.load105 = load { float, float }, ptr %ua.ptr104, align 4 - %callN = call { ptr, i64 } @struct_to_string__Shape.rect(ptr %0, { float, float } %ua.load105) + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.180: ; preds = %dispatch.case.184, %dispatch.case.183, %dispatch.case.182, %dispatch.default.181 +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { [16 x float] }, ptr %ua.ptr161, align 4 + %callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.122: ; preds = %match.arm.43 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load { float, float }, ptr %ua.ptr165, align 4 + %callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.123: ; preds = %match.arm.43 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load { i32, i32 }, ptr %ua.ptr169, align 4 + %callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load170) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.124: ; preds = %match.arm.43 + %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr173 = inttoptr i64 %ua.raw172 to ptr + %ua.load174 = load { float, float }, ptr %ua.ptr173, align 4 + %callN = call { ptr, i64 } @struct_to_string__Shape.rect(ptr %0, { float, float } %ua.load174) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.270: ; preds = %dispatch.case.277, %dispatch.case.276, %dispatch.case.275, %dispatch.case.274, %dispatch.case.273, %dispatch.case.272, %dispatch.default.271 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.181: ; preds = %match.arm.44 - store { ptr, i64 } { ptr @str.178, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.180 +dispatch.default.271: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.660, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.270 -dispatch.case.182: ; preds = %match.arm.44 - %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw108) +dispatch.case.272: ; preds = %match.arm.44 + %ua.raw177 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw177) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.180 + br label %dispatch.merge.270 -dispatch.case.183: ; preds = %match.arm.44 - %ua.raw110 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw110) +dispatch.case.273: ; preds = %match.arm.44 + %ua.raw179 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw179) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.180 + br label %dispatch.merge.270 -dispatch.case.184: ; preds = %match.arm.44 - %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr - %ua.load114 = load { i64, [8 x i8] }, ptr %ua.ptr113, align 8 - %callN = call { ptr, i64 } @enum_to_string__Shape(ptr %0, { i64, [8 x i8] } %ua.load114) +dispatch.case.274: ; preds = %match.arm.44 + %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr182 = inttoptr i64 %ua.raw181 to ptr + %ua.load183 = load { i64, [24 x i8] }, ptr %ua.ptr182, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load183) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.180 + br label %dispatch.merge.270 -dispatch.merge.191: ; preds = %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.default.192 +dispatch.case.275: ; preds = %match.arm.44 + %ua.raw185 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw185) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.270 + +dispatch.case.276: ; preds = %match.arm.44 + %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw187) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.270 + +dispatch.case.277: ; preds = %match.arm.44 + %ua.raw189 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr190 = inttoptr i64 %ua.raw189 to ptr + %ua.load191 = load { i64, [8 x i8] }, ptr %ua.ptr190, align 8 + %callN = call { ptr, i64 } @enum_to_string__Shape(ptr %0, { i64, [8 x i8] } %ua.load191) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.270 + +dispatch.merge.290: ; preds = %dispatch.case.299, %dispatch.case.298, %dispatch.case.297, %dispatch.case.296, %dispatch.case.295, %dispatch.case.294, %dispatch.case.293, %dispatch.case.292, %dispatch.default.291 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.192: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.179, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.191 +dispatch.default.291: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.661, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.290 -dispatch.case.193: ; preds = %match.arm.47 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr118 = inttoptr i64 %ua.raw117 to ptr - %ua.load119 = load [4 x i64], ptr %ua.ptr118, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load119) +dispatch.case.292: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [4 x i64], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load196) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.191 + br label %dispatch.merge.290 -dispatch.case.194: ; preds = %match.arm.47 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr122 = inttoptr i64 %ua.raw121 to ptr - %ua.load123 = load [16 x float], ptr %ua.ptr122, align 4 - %callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load123) +dispatch.case.293: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load200) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.191 + br label %dispatch.merge.290 -dispatch.case.195: ; preds = %match.arm.47 - %ua.raw125 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr126 = inttoptr i64 %ua.raw125 to ptr - %ua.load127 = load [2 x { i64, i64 }], ptr %ua.ptr126, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load127) +dispatch.case.294: ; preds = %match.arm.47 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [8 x i64], ptr %ua.ptr203, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load204) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.191 + br label %dispatch.merge.290 -dispatch.case.196: ; preds = %match.arm.47 - %ua.raw129 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr130 = inttoptr i64 %ua.raw129 to ptr - %ua.load131 = load [1 x { i64, i64 }], ptr %ua.ptr130, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load131) +dispatch.case.295: ; preds = %match.arm.47 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [64 x i8], ptr %ua.ptr207, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load208) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.191 + br label %dispatch.merge.290 -dispatch.merge.217: ; preds = %dispatch.case.220, %dispatch.case.219, %dispatch.default.218 +dispatch.case.296: ; preds = %match.arm.47 + %ua.raw210 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr211 = inttoptr i64 %ua.raw210 to ptr + %ua.load212 = load [64 x i64], ptr %ua.ptr211, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load212) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.290 + +dispatch.case.297: ; preds = %match.arm.47 + %ua.raw214 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr215 = inttoptr i64 %ua.raw214 to ptr + %ua.load216 = load [16 x float], ptr %ua.ptr215, align 4 + %callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load216) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.290 + +dispatch.case.298: ; preds = %match.arm.47 + %ua.raw218 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr219 = inttoptr i64 %ua.raw218 to ptr + %ua.load220 = load [2 x { i64, i64 }], ptr %ua.ptr219, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load220) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.290 + +dispatch.case.299: ; preds = %match.arm.47 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr223 = inttoptr i64 %ua.raw222 to ptr + %ua.load224 = load [1 x { i64, i64 }], ptr %ua.ptr223, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load224) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.290 + +dispatch.merge.340: ; preds = %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.default.341 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.218: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.180, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.217 +dispatch.default.341: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.662, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.340 -dispatch.case.219: ; preds = %match.arm.48 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr135 = inttoptr i64 %ua.raw134 to ptr - %ua.load136 = load { ptr, i64 }, ptr %ua.ptr135, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load136) +dispatch.case.342: ; preds = %match.arm.48 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load229) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.217 + br label %dispatch.merge.340 -dispatch.case.220: ; preds = %match.arm.48 - %ua.raw138 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr139 = inttoptr i64 %ua.raw138 to ptr - %ua.load140 = load { ptr, i64 }, ptr %ua.ptr139, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load140) +dispatch.case.343: ; preds = %match.arm.48 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr232 = inttoptr i64 %ua.raw231 to ptr + %ua.load233 = load { ptr, i64 }, ptr %ua.ptr232, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load233) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.217 + br label %dispatch.merge.340 -dispatch.merge.231: ; preds = %dispatch.case.253, %dispatch.case.252, %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.case.247, %dispatch.case.246, %dispatch.case.245, %dispatch.case.244, %dispatch.case.243, %dispatch.case.242, %dispatch.case.241, %dispatch.case.240, %dispatch.case.239, %dispatch.case.238, %dispatch.case.237, %dispatch.case.236, %dispatch.case.235, %dispatch.case.234, %dispatch.case.233, %dispatch.default.232 +dispatch.case.344: ; preds = %match.arm.48 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr236 = inttoptr i64 %ua.raw235 to ptr + %ua.load237 = load { ptr, i64 }, ptr %ua.ptr236, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load237) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.340 + +dispatch.case.345: ; preds = %match.arm.48 + %ua.raw239 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr240 = inttoptr i64 %ua.raw239 to ptr + %ua.load241 = load { ptr, i64 }, ptr %ua.ptr240, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load241) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.340 + +dispatch.case.346: ; preds = %match.arm.48 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr244 = inttoptr i64 %ua.raw243 to ptr + %ua.load245 = load { ptr, i64 }, ptr %ua.ptr244, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load245) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.340 + +dispatch.merge.372: ; preds = %dispatch.case.406, %dispatch.case.405, %dispatch.case.404, %dispatch.case.403, %dispatch.case.402, %dispatch.case.401, %dispatch.case.400, %dispatch.case.399, %dispatch.case.398, %dispatch.case.397, %dispatch.case.396, %dispatch.case.395, %dispatch.case.394, %dispatch.case.393, %dispatch.case.392, %dispatch.case.391, %dispatch.case.390, %dispatch.case.389, %dispatch.case.388, %dispatch.case.387, %dispatch.case.386, %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.default.373 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.232: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.181, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.231 +dispatch.default.373: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.663, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.372 -dispatch.case.233: ; preds = %match.arm.49 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw143 to ptr +dispatch.case.374: ; preds = %match.arm.49 + %ua.raw248 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw248 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.234: ; preds = %match.arm.49 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp146) +dispatch.case.375: ; preds = %match.arm.49 + %ua.raw250 = extractvalue { i64, i64 } %loadN, 1 + %iNp251 = inttoptr i64 %ua.raw250 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp251) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.235: ; preds = %match.arm.49 - %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp149) +dispatch.case.376: ; preds = %match.arm.49 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %iNp254 = inttoptr i64 %ua.raw253 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp254) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.236: ; preds = %match.arm.49 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp152) +dispatch.case.377: ; preds = %match.arm.49 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %iNp257 = inttoptr i64 %ua.raw256 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp257) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.237: ; preds = %match.arm.49 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp155) +dispatch.case.378: ; preds = %match.arm.49 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %iNp260 = inttoptr i64 %ua.raw259 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp260) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.238: ; preds = %match.arm.49 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp158) +dispatch.case.379: ; preds = %match.arm.49 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %iNp263 = inttoptr i64 %ua.raw262 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp263) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.239: ; preds = %match.arm.49 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp161) +dispatch.case.380: ; preds = %match.arm.49 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp266 = inttoptr i64 %ua.raw265 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp266) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.240: ; preds = %match.arm.49 - %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 - %iNp164 = inttoptr i64 %ua.raw163 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp164) +dispatch.case.381: ; preds = %match.arm.49 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %iNp269 = inttoptr i64 %ua.raw268 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp269) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.241: ; preds = %match.arm.49 - %ua.raw166 = extractvalue { i64, i64 } %loadN, 1 - %iNp167 = inttoptr i64 %ua.raw166 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp167) +dispatch.case.382: ; preds = %match.arm.49 + %ua.raw271 = extractvalue { i64, i64 } %loadN, 1 + %iNp272 = inttoptr i64 %ua.raw271 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp272) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.242: ; preds = %match.arm.49 - %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 - %iNp170 = inttoptr i64 %ua.raw169 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp170) +dispatch.case.383: ; preds = %match.arm.49 + %ua.raw274 = extractvalue { i64, i64 } %loadN, 1 + %iNp275 = inttoptr i64 %ua.raw274 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp275) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.243: ; preds = %match.arm.49 - %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 - %iNp173 = inttoptr i64 %ua.raw172 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp173) +dispatch.case.384: ; preds = %match.arm.49 + %ua.raw277 = extractvalue { i64, i64 } %loadN, 1 + %iNp278 = inttoptr i64 %ua.raw277 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp278) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.244: ; preds = %match.arm.49 - %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 - %iNp176 = inttoptr i64 %ua.raw175 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp176) +dispatch.case.385: ; preds = %match.arm.49 + %ua.raw280 = extractvalue { i64, i64 } %loadN, 1 + %iNp281 = inttoptr i64 %ua.raw280 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp281) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.245: ; preds = %match.arm.49 - %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 - %iNp179 = inttoptr i64 %ua.raw178 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp179) +dispatch.case.386: ; preds = %match.arm.49 + %ua.raw283 = extractvalue { i64, i64 } %loadN, 1 + %iNp284 = inttoptr i64 %ua.raw283 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp284) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.246: ; preds = %match.arm.49 - %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 - %iNp182 = inttoptr i64 %ua.raw181 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp182) +dispatch.case.387: ; preds = %match.arm.49 + %ua.raw286 = extractvalue { i64, i64 } %loadN, 1 + %iNp287 = inttoptr i64 %ua.raw286 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp287) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.247: ; preds = %match.arm.49 - %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 - %iNp185 = inttoptr i64 %ua.raw184 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp185) +dispatch.case.388: ; preds = %match.arm.49 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp290) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.248: ; preds = %match.arm.49 - %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 - %iNp188 = inttoptr i64 %ua.raw187 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp188) +dispatch.case.389: ; preds = %match.arm.49 + %ua.raw292 = extractvalue { i64, i64 } %loadN, 1 + %iNp293 = inttoptr i64 %ua.raw292 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp293) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.249: ; preds = %match.arm.49 - %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 - %iNp191 = inttoptr i64 %ua.raw190 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp191) +dispatch.case.390: ; preds = %match.arm.49 + %ua.raw295 = extractvalue { i64, i64 } %loadN, 1 + %iNp296 = inttoptr i64 %ua.raw295 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp296) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.250: ; preds = %match.arm.49 - %ua.raw193 = extractvalue { i64, i64 } %loadN, 1 - %iNp194 = inttoptr i64 %ua.raw193 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp194) +dispatch.case.391: ; preds = %match.arm.49 + %ua.raw298 = extractvalue { i64, i64 } %loadN, 1 + %iNp299 = inttoptr i64 %ua.raw298 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp299) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.251: ; preds = %match.arm.49 - %ua.raw196 = extractvalue { i64, i64 } %loadN, 1 - %iNp197 = inttoptr i64 %ua.raw196 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp197) +dispatch.case.392: ; preds = %match.arm.49 + %ua.raw301 = extractvalue { i64, i64 } %loadN, 1 + %iNp302 = inttoptr i64 %ua.raw301 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp302) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.252: ; preds = %match.arm.49 - %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 - %iNp200 = inttoptr i64 %ua.raw199 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Shape(ptr %0, ptr %iNp200) +dispatch.case.393: ; preds = %match.arm.49 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp305) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 -dispatch.case.253: ; preds = %match.arm.49 - %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 - %iNp203 = inttoptr i64 %ua.raw202 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp203) +dispatch.case.394: ; preds = %match.arm.49 + %ua.raw307 = extractvalue { i64, i64 } %loadN, 1 + %iNp308 = inttoptr i64 %ua.raw307 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp308) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.231 + br label %dispatch.merge.372 + +dispatch.case.395: ; preds = %match.arm.49 + %ua.raw310 = extractvalue { i64, i64 } %loadN, 1 + %iNp311 = inttoptr i64 %ua.raw310 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp311) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.396: ; preds = %match.arm.49 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %iNp314 = inttoptr i64 %ua.raw313 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp314) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.397: ; preds = %match.arm.49 + %ua.raw316 = extractvalue { i64, i64 } %loadN, 1 + %iNp317 = inttoptr i64 %ua.raw316 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp317) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.398: ; preds = %match.arm.49 + %ua.raw319 = extractvalue { i64, i64 } %loadN, 1 + %iNp320 = inttoptr i64 %ua.raw319 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp320) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.399: ; preds = %match.arm.49 + %ua.raw322 = extractvalue { i64, i64 } %loadN, 1 + %iNp323 = inttoptr i64 %ua.raw322 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.400: ; preds = %match.arm.49 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %iNp326 = inttoptr i64 %ua.raw325 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp326) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.401: ; preds = %match.arm.49 + %ua.raw328 = extractvalue { i64, i64 } %loadN, 1 + %iNp329 = inttoptr i64 %ua.raw328 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp329) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.402: ; preds = %match.arm.49 + %ua.raw331 = extractvalue { i64, i64 } %loadN, 1 + %iNp332 = inttoptr i64 %ua.raw331 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp332) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.403: ; preds = %match.arm.49 + %ua.raw334 = extractvalue { i64, i64 } %loadN, 1 + %iNp335 = inttoptr i64 %ua.raw334 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp335) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.404: ; preds = %match.arm.49 + %ua.raw337 = extractvalue { i64, i64 } %loadN, 1 + %iNp338 = inttoptr i64 %ua.raw337 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp338) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.405: ; preds = %match.arm.49 + %ua.raw340 = extractvalue { i64, i64 } %loadN, 1 + %iNp341 = inttoptr i64 %ua.raw340 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Shape(ptr %0, ptr %iNp341) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.case.406: ; preds = %match.arm.49 + %ua.raw343 = extractvalue { i64, i64 } %loadN, 1 + %iNp344 = inttoptr i64 %ua.raw343 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp344) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.372 + +dispatch.merge.519: ; preds = %dispatch.case.524, %dispatch.case.523, %dispatch.case.522, %dispatch.case.521, %dispatch.default.520 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.520: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.664, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.519 + +dispatch.case.521: ; preds = %match.arm.50 + %ua.raw347 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr348 = inttoptr i64 %ua.raw347 to ptr + %ua.load349 = load { { i32 }, i1 }, ptr %ua.ptr348, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load349) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.519 + +dispatch.case.522: ; preds = %match.arm.50 + %ua.raw351 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr352 = inttoptr i64 %ua.raw351 to ptr + %ua.load353 = load { { ptr, i64 }, i1 }, ptr %ua.ptr352, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load353) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.519 + +dispatch.case.523: ; preds = %match.arm.50 + %ua.raw355 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr356 = inttoptr i64 %ua.raw355 to ptr + %ua.load357 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr356, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load357) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.519 + +dispatch.case.524: ; preds = %match.arm.50 + %ua.raw359 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr360 = inttoptr i64 %ua.raw359 to ptr + %ua.load361 = load { [64 x i8], i1 }, ptr %ua.ptr360, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load361) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.519 } ; Function Attrs: nounwind @@ -1828,7 +2567,7 @@ 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.182, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.665, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1924,7 +2663,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.183, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.666, 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 @@ -1932,7 +2671,7 @@ if.then.12: ; preds = %if.then.9 %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.184, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.667, 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 @@ -1942,13 +2681,13 @@ if.then.12: ; preds = %if.then.9 %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.185, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.668, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.669, 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 @@ -1956,7 +2695,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.187, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.670, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1970,7 +2709,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.188, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.671, 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 @@ -1978,7 +2717,7 @@ if.then.23: ; preds = %if.else.10 %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.189, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.672, 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 @@ -1989,7 +2728,7 @@ if.then.23: ; preds = %if.else.10 %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.190, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.673, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2046,7 +2785,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.191, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.674, 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 @@ -2054,7 +2793,7 @@ if.then.32: ; preds = %if.then.29 %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.192, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2065,7 +2804,7 @@ if.then.32: ; preds = %if.then.29 %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.193, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.676, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2085,7 +2824,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.194, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.677, 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 @@ -2093,7 +2832,7 @@ if.then.35: ; preds = %while.exit.2 %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.195, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.678, 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 @@ -2104,7 +2843,7 @@ if.then.35: ; preds = %while.exit.2 %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.196, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.679, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2182,70 +2921,412 @@ declare i64 @write(i32, ptr, i64) declare void @log_emit(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.identity(ptr sret({ [16 x float] }), ptr) #0 +declare i32 @open(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @Mat4.zero(ptr sret({ [16 x float] }), ptr) #0 +declare i32 @close(i32) #0 ; Function Attrs: nounwind -declare void @Mat4.mul(ptr sret({ [16 x float] }), ptr, ptr, ptr) #0 +declare i64 @read(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Mat4.translate(ptr sret({ [16 x float] }), ptr, float, float, float) #0 +declare i64 @lseek(i32, i64, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.scale(ptr sret({ [16 x float] }), ptr, float, float, float) #0 +declare i32 @unlink(ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_x(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @rmdir(ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_y(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @mkdir(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_z(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @access(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.ortho(ptr sret({ [16 x float] }), ptr, float, float, float, float, float, float) #0 +declare i32 @chmod(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.perspective(ptr sret({ [16 x float] }), ptr, float, float, float, float) #0 +declare i32 @rename(ptr, ptr) #0 ; Function Attrs: nounwind -declare float @lerp(ptr, float, float, float) #0 +declare i1 @File.is_valid(ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.zero(ptr) #0 +declare i1 @File.close(ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.add(ptr, { float, float }, { float, float }) #0 +declare i64 @File.read(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.sub(ptr, { float, float }, { float, float }) #0 +declare i64 @File.write(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.scale(ptr, { float, float }, float) #0 +declare i64 @File.seek(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare float @Vec2.dot(ptr, { float, float }, { float, float }) #0 +declare i32 @mode_to_flags(ptr, i64) #0 ; Function Attrs: nounwind -declare float @Vec2.length(ptr, { float, float }) #0 +declare i64 @open_file(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.normalize(ptr, { float, float }) #0 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.lerp(ptr, { float, float }, { float, float }, float) #0 +declare i1 @write_file(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare float @Vec2.distance(ptr, { float, float }, { float, float }) #0 +declare i1 @append_file(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.negate(ptr, { float, float }) #0 +declare i1 @exists(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @Vec2.equals(ptr, { float, float }, { float, float }) #0 +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -2359,175 +3440,1309 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 declare i64 @build_options() #0 ; Function Attrs: nounwind -declare void @assert(ptr, i1) #0 +declare ptr @spaces.73(ptr, i32) #0 ; Function Attrs: nounwind -declare void @out.21(ptr) #0 +declare i32 @sx_trace_len.74() #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc.22(ptr, ptr, i64) #0 +declare i32 @sx_trace_truncated.75() #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc.23(ptr, ptr, ptr) #0 +declare i64 @sx_trace_frame_at.76(i32) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.24(ptr) #0 +declare ptr @to_string.77(ptr) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc.25(ptr, ptr, i64) #0 +declare void @print_current.78(ptr) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc.26(ptr, ptr, ptr) #0 +declare void @print_interpreter_frames.79(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.27(ptr, ptr, i64) #0 +declare ptr @popen.80(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.28(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare i32 @pclose.81(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.29(ptr, ptr) #0 +declare i64 @fread.82(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.30(ptr, ptr) #0 +declare i32 @feof.83(ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc.31(ptr, ptr, i64) #0 +declare ptr @getenv.84(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc.32(ptr, ptr, ptr) #0 +declare i64 @strlen.85(ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.init.33(ptr, ptr, i64) #0 +declare i32 @system.86(ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.34(ptr, ptr) #0 +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc.35(ptr, ptr, i64) #0 +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc.36(ptr, ptr, ptr) #0 +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.37(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare void @_exit.90(i32) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.38(ptr, ptr) #0 +declare void @exit.91(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.39(ptr, ptr) #0 +declare void @assert.92(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc.40(ptr, ptr, i64) #0 +declare ptr @_NSGetArgv() #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc.41(ptr, ptr, ptr) #0 +declare ptr @_NSGetArgc() #0 ; Function Attrs: nounwind -declare ptr @cstring.42(ptr, i64) #0 +declare void @exit_ok(ptr) #0 ; Function Attrs: nounwind -declare ptr @int_to_string.43(ptr, i64) #0 +declare void @exit_usage(ptr) #0 ; Function Attrs: nounwind -declare ptr @uint_to_string.44(ptr, i64) #0 +declare i64 @os_argc(ptr) #0 ; Function Attrs: nounwind -declare ptr @bool_to_string.45(ptr, i1) #0 +declare ptr @os_args(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @float_to_string.46(ptr, double) #0 +declare i1 @Parsed.is_set(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @hex_group.47(ptr, ptr, i64, i64) #0 +declare ptr @Parsed.value_of(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare [4 x i64] @decompose_u16x4.48(ptr, i64) #0 +declare i1 @is_long_flag(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @int_to_hex_string.49(ptr, i64) #0 +declare void @parse.93(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 ptr @concat.50(ptr, ptr, ptr) #0 +declare i32 @open.94(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare ptr @substr.51(ptr, ptr, i64, i64) #0 +declare i32 @close.95(i32) #0 ; Function Attrs: nounwind -declare ptr @path_join.52(ptr, ptr) #0 +declare i64 @read.96(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @any_to_string.53(ptr, [2 x i64]) #0 +declare i64 @lseek.97(i32, i64, i32) #0 ; Function Attrs: nounwind -declare ptr @build_format.54(ptr, ptr) #0 +declare i32 @unlink.98(ptr) #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc.55(ptr, ptr, i64) #0 +declare i32 @rmdir.99(ptr) #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc.56(ptr, ptr, ptr) #0 +declare i32 @mkdir.100(ptr, i32) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.57(ptr) #0 +declare i32 @access.101(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc.58(ptr, ptr, i64) #0 +declare i32 @chmod.102(ptr, i32) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc.59(ptr, ptr, ptr) #0 +declare i32 @rename.103(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.60(ptr, ptr, i64) #0 +declare i1 @File.is_valid.104(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.61(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare i1 @File.close.105(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.62(ptr, ptr) #0 +declare i64 @File.read.106(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.63(ptr, ptr) #0 +declare i64 @File.write.107(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc.64(ptr, ptr, i64) #0 +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc.65(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.109(ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.init.66(ptr, ptr, i64) #0 +declare i64 @open_file.110(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.67(ptr, ptr) #0 +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc.68(ptr, ptr, i64) #0 +declare i1 @write_file.112(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc.69(ptr, ptr, ptr) #0 +declare i1 @append_file.113(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.70(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare i1 @exists.114(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.71(ptr, ptr) #0 +declare i1 @delete_file.115(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.72(ptr, ptr) #0 +declare i1 @delete_dir.116(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc.73(ptr, ptr, i64) #0 +declare i1 @create_dir.117(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc.74(ptr, ptr, ptr) #0 +declare i1 @set_mode.118(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @escape.75(ptr, ptr) #0 +declare i1 @move.119(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @log_emit.76(ptr, ptr, ptr) #0 +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @Mat4.identity(ptr sret({ [16 x float] }), ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.zero(ptr sret({ [16 x float] }), ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.mul(ptr sret({ [16 x float] }), ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.translate(ptr sret({ [16 x float] }), ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.scale(ptr sret({ [16 x float] }), ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_x(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_y(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_z(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.ortho(ptr sret({ [16 x float] }), ptr, float, float, float, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.perspective(ptr sret({ [16 x float] }), ptr, float, float, float, float) #0 + +; Function Attrs: nounwind +declare float @lerp(ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.zero(ptr) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.add(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.sub(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.scale(ptr, { float, float }, float) #0 + +; Function Attrs: nounwind +declare float @Vec2.dot(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare float @Vec2.length(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.normalize(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.lerp(ptr, { float, float }, { float, float }, float) #0 + +; Function Attrs: nounwind +declare float @Vec2.distance(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.negate(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare i1 @Vec2.equals(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + +; Function Attrs: nounwind +declare void @assert.162(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @out.163(ptr) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.164(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.165(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.166(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.167(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.168(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.169(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.170(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.171(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.172(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.173(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.174(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.175(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.176(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.177(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.178(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.179(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.180(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.181(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.182(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.183(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @cstring.184(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @int_to_string.185(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @uint_to_string.186(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @bool_to_string.187(ptr, i1) #0 + +; Function Attrs: nounwind +declare ptr @float_to_string.188(ptr, double) #0 + +; Function Attrs: nounwind +declare void @hex_group.189(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare [4 x i64] @decompose_u16x4.190(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @int_to_hex_string.191(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @concat.192(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @substr.193(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @path_join.194(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @any_to_string.195(ptr, [2 x i64]) #0 + +; Function Attrs: nounwind +declare ptr @build_format.196(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.197(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.198(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.199(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.200(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.201(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.202(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.203(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.204(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.205(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.206(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.207(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.208(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.209(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.210(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.211(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.212(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.213(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.214(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.215(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.216(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @escape.217(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @log_emit.218(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.219(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.220(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.221(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.222(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.223(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.224(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.225(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.226(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.227(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.228(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.229(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.230(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.231(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.232(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.233(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.234(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.235(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.236(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.237(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.238(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.239(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.240(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.241(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.242(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.243(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.244(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.245(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.246(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.247(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.248(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @spaces.249(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.250() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.251() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.252(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.253(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.254(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.255(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.256(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.257(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.258(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.259(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.260(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.261(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.262(ptr) #0 + +; Function Attrs: nounwind +declare void @run.263(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.264(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.265(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.266(i32) #0 + +; Function Attrs: nounwind +declare void @exit.267(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.268(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @socket.269(i32, i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @setsockopt.270(i32, i32, i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @bind.271(i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @listen.272(i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @accept.273(i32, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @read.274(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.275(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons.276(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.277(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.278(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.279(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.280(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.281(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.282(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.283(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.284(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.285(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.286(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.287(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.288(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.289(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.290(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.291(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.292(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.293(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.294(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.295(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.296(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.297(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.298(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.299(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.300(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.301(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.302(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.303(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.304(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.305(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.306(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.307(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.308(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.309(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.310(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.311(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.312(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.313(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.314(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.315(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.316(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.317(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.318(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.319(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.320(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.321(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.322(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.323(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.324(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.325(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.326(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Array.add.327(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Array.deinit.328(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Object.put.329(ptr, ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Object.deinit.330(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Sink.put_byte.331(ptr, ptr, i8) #0 + +; Function Attrs: nounwind +declare i32 @Sink.put.332(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Sink.flush.333(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i8 @hex_digit.334(ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @write_u_escape.335(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_string.336(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_int.337(ptr, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_value.338(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_array.339(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_object.340(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @write_to_buffer.341(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_to_file.342(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @hex_value.343(ptr, i8) #0 + +; Function Attrs: nounwind +declare i64 @encode_utf8.344(ptr, i64, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.skip_ws.345(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Parser.expect_lit.346(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.read_hex4.347(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.decode_into.348(ptr, ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_string.349(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.parse_number.350(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_array.351(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_object.352(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_value.353(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @parse.354(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.355(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.356(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.357(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.358(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.359(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.360(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.361(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.362(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.363(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.364(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.365(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.366(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.367(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.368(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.369(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.370(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.371(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.372(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.373(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.374(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.375(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.376(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.377(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.378(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.379(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.380(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.381(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.382(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.383(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.384(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.385(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.386(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.387(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.388(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.389(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.390(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.391() #0 + +; Function Attrs: nounwind +declare ptr @spaces.392(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.393() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.394() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.395(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.396(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.397(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.398(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.399(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.400(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.401(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.402(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.403(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.404(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.405(ptr) #0 + +; Function Attrs: nounwind +declare void @run.406(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.407(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.408(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.409(i32) #0 + +; Function Attrs: nounwind +declare void @exit.410(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.411(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @_NSGetArgv.412() #0 + +; Function Attrs: nounwind +declare ptr @_NSGetArgc.413() #0 + +; Function Attrs: nounwind +declare void @exit_ok.414(ptr) #0 + +; Function Attrs: nounwind +declare void @exit_usage.415(ptr) #0 + +; Function Attrs: nounwind +declare i64 @os_argc.416(ptr) #0 + +; Function Attrs: nounwind +declare ptr @os_args.417(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @Parsed.is_set.418(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Parsed.value_of.419(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @is_long_flag.420(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @parse.421(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 i32 @open.422(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.423(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.424(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.425(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.426(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.427(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.428(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.429(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.430(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.431(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.432(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.433(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.434(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.435(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.436(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.437(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.438(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.439(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.440(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.441(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.442(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.443(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.444(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.445(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.446(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.447(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.448(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.449(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.450(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.451(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @rotr.452(ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @big_sigma0.453(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @big_sigma1.454(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @small_sigma0.455(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @small_sigma1.456(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Sha256.process_block.457(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Sha256.update.458(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [64 x i8] @Sha256.final.459(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i8 @nibble_hex.460(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @init.461(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 + +; Function Attrs: nounwind +declare [64 x i8] @sha256_hex.462(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @sha256_file.463(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.464(ptr, i1) #0 ; Function Attrs: nounwind declare ptr @cwd_greet(ptr) #0 @@ -2579,14 +4794,14 @@ entry: define internal void @print__ct_s4f0c3447f66dcf6d__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.197, i64 28 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.680, i64 28 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.198, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.681, i64 0 }, ptr %allocaN, align 8 %load = 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 28) @@ -2602,7 +4817,7 @@ entry: ; 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.199, i64 28 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.682, i64 28 }) ret { ptr, i64 } %call } @@ -2616,7 +4831,7 @@ entry: define internal void @print__ct_s546acbc299164a0e__pack_s32_s32(ptr %0, i32 %1, i32 %2) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.200, i64 20 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.683, i64 20 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca i32, align 4 @@ -2639,7 +4854,7 @@ entry: %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 2, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.201, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.684, 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 14) @@ -2679,7 +4894,7 @@ entry: ; 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.202, i64 20 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.685, i64 20 }) ret { ptr, i64 } %call } @@ -2699,7 +4914,7 @@ entry: define internal void @print__ct_scc8edc2d4140bd92__pack_Shape(ptr %0, { i64, [8 x i8] } %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.203, i64 15 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.686, i64 15 }, ptr %alloca, align 8 %allocaN = alloca { i64, [8 x i8] }, align 8 store { i64, [8 x i8] } %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2707,7 +4922,7 @@ entry: %ba.tmp = alloca { i64, [8 x i8] }, align 8 store { i64, [8 x i8] } %load, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 46, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 98, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2717,7 +4932,7 @@ entry: %gepN = getelementptr inbounds { 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.204, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.687, 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 12) @@ -2728,7 +4943,7 @@ entry: %ba.tmp12 = alloca { i64, [8 x i8] }, align 8 store { i64, [8 x i8] } %loadN, ptr %ba.tmp12, align 8 %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 - %ba.val14 = insertvalue { i64, i64 } { i64 46, i64 undef }, i64 %ba.p2i13, 1 + %ba.val14 = insertvalue { i64, i64 } { i64 98, i64 undef }, i64 %ba.p2i13, 1 %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val14) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2747,7 +4962,7 @@ entry: ; 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.205, i64 15 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.688, i64 15 }) ret { ptr, i64 } %call } @@ -2758,35 +4973,35 @@ entry: %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.206, i64 15 }, { ptr, i64 } { ptr @str.207, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.689, i64 15 }, { 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.110 + br label %while.hdr.125 -while.hdr.110: ; preds = %fv.merge, %entry +while.hdr.125: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.111, label %while.exit.112 + br i1 %icmp, label %while.body.126, label %while.exit.127 -while.body.111: ; preds = %while.hdr.110 +while.body.126: ; preds = %while.hdr.125 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.113, label %if.merge.114 + br i1 %icmpN, label %if.then.128, label %if.merge.129 -while.exit.112: ; preds = %while.hdr.110 +while.exit.127: ; preds = %while.hdr.125 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.691, i64 1 }) ret { ptr, i64 } %callN -if.then.113: ; preds = %while.body.111 +if.then.128: ; preds = %while.body.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 2 }) + %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.114 + br label %if.merge.129 -if.merge.114: ; preds = %if.then.113, %while.body.111 +if.merge.129: ; preds = %if.then.128, %while.body.126 %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 @@ -2794,7 +5009,7 @@ if.merge.114: ; preds = %if.then.113, %while %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.213, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.696, 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 @@ -2814,31 +5029,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.110 + br label %while.hdr.125 -fv.default: ; preds = %if.merge.114 +fv.default: ; preds = %if.merge.129 br label %fv.merge -fv.case: ; preds = %if.merge.114 +fv.case: ; preds = %if.merge.129 %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.114 +fv.case17: ; preds = %if.merge.129 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.114 +fv.case20: ; preds = %if.merge.129 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.114 +fv.case24: ; preds = %if.merge.129 %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 @@ -2851,43 +5066,43 @@ 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.214, i64 10 }, { ptr, i64 } { ptr @str.215, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.697, i64 10 }, { ptr, i64 } { ptr @str.698, 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.115 + br label %while.hdr.130 -while.hdr.115: ; preds = %if.merge.119, %entry +while.hdr.130: ; preds = %if.merge.134, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.131, label %while.exit.132 -while.body.116: ; preds = %while.hdr.115 +while.body.131: ; preds = %while.hdr.130 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.133, label %if.merge.134 -while.exit.117: ; preds = %while.hdr.115 +while.exit.132: ; preds = %while.hdr.130 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.216, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.699, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.133: ; preds = %while.body.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.217, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.700, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.134 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.134: ; preds = %if.then.133, %while.body.131 %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.218, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 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.219, i64 2 }) + %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 %alloca, align 1 @@ -2898,7 +5113,7 @@ if.merge.119: ; preds = %if.then.118, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.130 } ; Function Attrs: nounwind @@ -2906,43 +5121,43 @@ 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.220, i64 3 }, { ptr, i64 } { ptr @str.221, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 3 }, { 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.120 + br label %while.hdr.135 -while.hdr.120: ; preds = %fv.merge, %entry +while.hdr.135: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.136, label %while.exit.137 -while.body.121: ; preds = %while.hdr.120 +while.body.136: ; preds = %while.hdr.135 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.138, label %if.merge.139 -while.exit.122: ; preds = %while.hdr.120 +while.exit.137: ; preds = %while.hdr.135 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.222, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.705, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.138: ; preds = %while.body.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.223, i64 2 }) + %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.124 + br label %if.merge.139 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.139: ; preds = %if.then.138, %while.body.136 %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.225, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.708, 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.226, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.709, 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 @@ -2959,12 +5174,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.135 -fv.default: ; preds = %if.merge.124 +fv.default: ; preds = %if.merge.139 br label %fv.merge -fv.case: ; preds = %if.merge.124 +fv.case: ; preds = %if.merge.139 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2975,43 +5190,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.227, i64 10 }, { ptr, i64 } { ptr @str.228, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 10 }, { ptr, i64 } { ptr @str.711, 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.125 + br label %while.hdr.140 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.140: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.141, label %while.exit.142 -while.body.126: ; preds = %while.hdr.125 +while.body.141: ; preds = %while.hdr.140 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.143, label %if.merge.144 -while.exit.127: ; preds = %while.hdr.125 +while.exit.142: ; preds = %while.hdr.140 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.229, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.712, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.143: ; preds = %while.body.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.230, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.713, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.144 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.144: ; preds = %if.then.143, %while.body.141 %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.233, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.716, 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.234, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.717, 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 @@ -3029,18 +5244,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.140 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.144 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.144 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.129 +fv.case17: ; preds = %if.merge.144 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -3051,43 +5266,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.235, i64 9 }, { ptr, i64 } { ptr @str.236, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 9 }, { ptr, i64 } { ptr @str.719, 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.130 + br label %while.hdr.145 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.145: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.146, label %while.exit.147 -while.body.131: ; preds = %while.hdr.130 +while.body.146: ; preds = %while.hdr.145 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.148, label %if.merge.149 -while.exit.132: ; preds = %while.hdr.130 +while.exit.147: ; preds = %while.hdr.145 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.237, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.720, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.148: ; preds = %while.body.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.238, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.721, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.149 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.149: ; preds = %if.then.148, %while.body.146 %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.242, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.725, 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.243, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.726, 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 @@ -3106,24 +5321,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.145 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.149 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.149 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.149 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.134 +fv.case21: ; preds = %if.merge.149 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -3136,43 +5351,43 @@ 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.244, i64 5 }, { ptr, i64 } { ptr @str.245, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.727, i64 5 }, { ptr, i64 } { ptr @str.728, 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.135 + br label %while.hdr.150 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.150: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.151, label %while.exit.152 -while.body.136: ; preds = %while.hdr.135 +while.body.151: ; preds = %while.hdr.150 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.153, label %if.merge.154 -while.exit.137: ; preds = %while.hdr.135 +while.exit.152: ; preds = %while.hdr.150 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.246, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.729, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.153: ; preds = %while.body.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.247, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.730, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.154 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.154: ; preds = %if.then.153, %while.body.151 %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.251, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.734, 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.252, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.735, 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 @@ -3191,23 +5406,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.150 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.154 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.154 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.154 %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.139 +fv.case20: ; preds = %if.merge.154 %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 @@ -3220,43 +5435,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.253, i64 8 }, { ptr, i64 } { ptr @str.254, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.736, i64 8 }, { ptr, i64 } { ptr @str.737, 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.140 + br label %while.hdr.155 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.155: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.156, label %while.exit.157 -while.body.141: ; preds = %while.hdr.140 +while.body.156: ; preds = %while.hdr.155 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.158, label %if.merge.159 -while.exit.142: ; preds = %while.hdr.140 +while.exit.157: ; preds = %while.hdr.155 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.255, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.738, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.158: ; preds = %while.body.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.256, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.739, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.159 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.159: ; preds = %if.then.158, %while.body.156 %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.260, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 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.261, i64 2 }) + %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, i64, i64 }, ptr %alloca, align 8 @@ -3275,23 +5490,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.155 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.159 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.159 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.159 %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.144 +fv.case20: ; preds = %if.merge.159 %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 @@ -3303,43 +5518,43 @@ 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.262, i64 17 }, { ptr, i64 } { ptr @str.263, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.745, i64 17 }, { 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.145 + br label %while.hdr.160 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.160: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.161, label %while.exit.162 -while.body.146: ; preds = %while.hdr.145 +while.body.161: ; preds = %while.hdr.160 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.163, label %if.merge.164 -while.exit.147: ; preds = %while.hdr.145 +while.exit.162: ; preds = %while.hdr.160 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.264, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.747, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.163: ; preds = %while.body.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.265, i64 2 }) + %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.149 + br label %if.merge.164 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.164: ; preds = %if.then.163, %while.body.161 %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.270, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.753, 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.271, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.754, 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 @@ -3359,29 +5574,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.160 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.164 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.164 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.164 %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.149 +fv.case20: ; preds = %if.merge.164 %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.149 +fv.case23: ; preds = %if.merge.164 %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 @@ -3393,43 +5608,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.272, i64 7 }, { ptr, i64 } { ptr @str.273, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.755, i64 7 }, { ptr, i64 } { ptr @str.756, 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.150 + br label %while.hdr.165 -while.hdr.150: ; preds = %fv.merge, %entry +while.hdr.165: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.151, label %while.exit.152 + br i1 %icmp, label %while.body.166, label %while.exit.167 -while.body.151: ; preds = %while.hdr.150 +while.body.166: ; preds = %while.hdr.165 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.153, label %if.merge.154 + br i1 %icmpN, label %if.then.168, label %if.merge.169 -while.exit.152: ; preds = %while.hdr.150 +while.exit.167: ; preds = %while.hdr.165 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.274, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.757, i64 1 }) ret { ptr, i64 } %callN -if.then.153: ; preds = %while.body.151 +if.then.168: ; preds = %while.body.166 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.275, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.758, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.154 + br label %if.merge.169 -if.merge.154: ; preds = %if.then.153, %while.body.151 +if.merge.169: ; preds = %if.then.168, %while.body.166 %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.278, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.761, 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.279, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.762, 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 %alloca, align 8 @@ -3447,68 +5662,1437 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.150 + br label %while.hdr.165 -fv.default: ; preds = %if.merge.154 +fv.default: ; preds = %if.merge.169 br label %fv.merge -fv.case: ; preds = %if.merge.154 +fv.case: ; preds = %if.merge.169 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.154 +fv.case17: ; preds = %if.merge.169 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.763, i64 4 }, { ptr, i64 } { ptr @str.764, 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.170 + +while.hdr.170: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.171, label %while.exit.172 + +while.body.171: ; preds = %while.hdr.170 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.173, label %if.merge.174 + +while.exit.172: ; preds = %while.hdr.170 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.765, i64 1 }) + ret { ptr, i64 } %callN + +if.then.173: ; preds = %while.body.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.766, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.174 + +if.merge.174: ; preds = %if.then.173, %while.body.171 + %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.768, 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.769, 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.170 + +fv.default: ; preds = %if.merge.174 + br label %fv.merge + +fv.case: ; preds = %if.merge.174 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.770, i64 10 }, { ptr, i64 } { ptr @str.771, 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.175 + +while.hdr.175: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.176, label %while.exit.177 + +while.body.176: ; preds = %while.hdr.175 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.178, label %if.merge.179 + +while.exit.177: ; preds = %while.hdr.175 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.772, i64 1 }) + ret { ptr, i64 } %callN + +if.then.178: ; preds = %while.body.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.773, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.179 + +if.merge.179: ; preds = %if.then.178, %while.body.176 + %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.779, 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.780, 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.175 + +fv.default: ; preds = %if.merge.179 + br label %fv.merge + +fv.case: ; preds = %if.merge.179 + %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.179 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.179 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.179 + %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.179 + %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.781, i64 13 }, { ptr, i64 } { ptr @str.782, 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.180 + +while.hdr.180: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.181, label %while.exit.182 + +while.body.181: ; preds = %while.hdr.180 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.183, label %if.merge.184 + +while.exit.182: ; preds = %while.hdr.180 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.783, i64 1 }) + ret { ptr, i64 } %callN + +if.then.183: ; preds = %while.body.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.784, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.184 + +if.merge.184: ; preds = %if.then.183, %while.body.181 + %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.787, 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.788, 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.180 + +fv.default: ; preds = %if.merge.184 + br label %fv.merge + +fv.case: ; preds = %if.merge.184 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.184 + %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.789, i64 8 }, { ptr, i64 } { ptr @str.790, 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.185 + +while.hdr.185: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.186, label %while.exit.187 + +while.body.186: ; preds = %while.hdr.185 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.188, label %if.merge.189 + +while.exit.187: ; preds = %while.hdr.185 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.791, i64 1 }) + ret { ptr, i64 } %callN + +if.then.188: ; preds = %while.body.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.792, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.189 + +if.merge.189: ; preds = %if.then.188, %while.body.186 + %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.798, 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.799, 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.185 + +fv.default: ; preds = %if.merge.189 + br label %fv.merge + +fv.case: ; preds = %if.merge.189 + %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.189 + %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.189 + %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.189 + %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.189 + %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.800, i64 5 }, { ptr, i64 } { ptr @str.801, 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.190 + +while.hdr.190: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.191, label %while.exit.192 + +while.body.191: ; preds = %while.hdr.190 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.193, label %if.merge.194 + +while.exit.192: ; preds = %while.hdr.190 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.802, i64 1 }) + ret { ptr, i64 } %callN + +if.then.193: ; preds = %while.body.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.803, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.194 + +if.merge.194: ; preds = %if.then.193, %while.body.191 + %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.807, 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.808, 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.190 + +fv.default: ; preds = %if.merge.194 + br label %fv.merge + +fv.case: ; preds = %if.merge.194 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.194 + %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.194 + %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.809, i64 6 }, { ptr, i64 } { ptr @str.810, 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.195 + +while.hdr.195: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.196, label %while.exit.197 + +while.body.196: ; preds = %while.hdr.195 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.198, label %if.merge.199 + +while.exit.197: ; preds = %while.hdr.195 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.811, i64 1 }) + ret { ptr, i64 } %callN + +if.then.198: ; preds = %while.body.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.812, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.199 + +if.merge.199: ; preds = %if.then.198, %while.body.196 + %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.816, 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.817, 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.195 + +fv.default: ; preds = %if.merge.199 + br label %fv.merge + +fv.case: ; preds = %if.merge.199 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.199 + %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.199 + %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.818, i64 6 }, { ptr, i64 } { ptr @str.819, 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.200 + +while.hdr.200: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.201, label %while.exit.202 + +while.body.201: ; preds = %while.hdr.200 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.203, label %if.merge.204 + +while.exit.202: ; preds = %while.hdr.200 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.820, i64 1 }) + ret { ptr, i64 } %callN + +if.then.203: ; preds = %while.body.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.821, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.204 + +if.merge.204: ; preds = %if.then.203, %while.body.201 + %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.824, 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.825, 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.200 + +fv.default: ; preds = %if.merge.204 + br label %fv.merge + +fv.case: ; preds = %if.merge.204 + %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.204 + %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 54, 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.826, i64 4 }, { ptr, i64 } { ptr @str.827, 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.205 + +while.hdr.205: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.206, label %while.exit.207 + +while.body.206: ; preds = %while.hdr.205 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.208, label %if.merge.209 + +while.exit.207: ; preds = %while.hdr.205 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.828, i64 1 }) + ret { ptr, i64 } %callN + +if.then.208: ; preds = %while.body.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.829, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.209 + +if.merge.209: ; preds = %if.then.208, %while.body.206 + %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.833, 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.834, 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.205 + +fv.default: ; preds = %if.merge.209 + br label %fv.merge + +fv.case: ; preds = %if.merge.209 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.209 + %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.209 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.835, i64 6 }, { ptr, i64 } { ptr @str.836, 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.210 + +while.hdr.210: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.211, label %while.exit.212 + +while.body.211: ; preds = %while.hdr.210 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.213, label %if.merge.214 + +while.exit.212: ; preds = %while.hdr.210 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.837, i64 1 }) + ret { ptr, i64 } %callN + +if.then.213: ; preds = %while.body.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.838, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.214 + +if.merge.214: ; preds = %if.then.213, %while.body.211 + %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.842, 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.843, 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.210 + +fv.default: ; preds = %if.merge.214 + br label %fv.merge + +fv.case: ; preds = %if.merge.214 + %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.214 + %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.214 + %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 26, i64 undef }, i64 %ba.p2i23, 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.844, i64 12 }, { ptr, i64 } { ptr @str.845, 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.215 + +while.hdr.215: ; preds = %if.merge.219, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.216, label %while.exit.217 + +while.body.216: ; preds = %while.hdr.215 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.218, label %if.merge.219 + +while.exit.217: ; preds = %while.hdr.215 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.846, i64 1 }) + ret { ptr, i64 } %callN + +if.then.218: ; preds = %while.body.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.847, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.219 + +if.merge.219: ; preds = %if.then.218, %while.body.216 + %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.848, 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.849, 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.215 +} + +; 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.850, i64 8 }, { ptr, i64 } { ptr @str.851, 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.220 + +while.hdr.220: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.221, label %while.exit.222 + +while.body.221: ; preds = %while.hdr.220 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.223, label %if.merge.224 + +while.exit.222: ; preds = %while.hdr.220 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.852, i64 1 }) + ret { ptr, i64 } %callN + +if.then.223: ; preds = %while.body.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.853, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.224 + +if.merge.224: ; preds = %if.then.223, %while.body.221 + %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.857, 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.858, 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.220 + +fv.default: ; preds = %if.merge.224 + br label %fv.merge + +fv.case: ; preds = %if.merge.224 + %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.224 + %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.224 + %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.859, i64 7 }, { ptr, i64 } { ptr @str.860, 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.225 + +while.hdr.225: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.226, label %while.exit.227 + +while.body.226: ; preds = %while.hdr.225 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.228, label %if.merge.229 + +while.exit.227: ; preds = %while.hdr.225 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.861, i64 1 }) + ret { ptr, i64 } %callN + +if.then.228: ; preds = %while.body.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.862, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.229 + +if.merge.229: ; preds = %if.then.228, %while.body.226 + %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.866, 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.867, 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.225 + +fv.default: ; preds = %if.merge.229 + br label %fv.merge + +fv.case: ; preds = %if.merge.229 + %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.229 + %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.229 + %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 77, 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.868, i64 9 }, { ptr, i64 } { ptr @str.869, 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.230 + +while.hdr.230: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.231, label %while.exit.232 + +while.body.231: ; preds = %while.hdr.230 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.233, label %if.merge.234 + +while.exit.232: ; preds = %while.hdr.230 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.870, i64 1 }) + ret { ptr, i64 } %callN + +if.then.233: ; preds = %while.body.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.871, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.234 + +if.merge.234: ; preds = %if.then.233, %while.body.231 + %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.874, 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.875, 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.230 + +fv.default: ; preds = %if.merge.234 + br label %fv.merge + +fv.case: ; preds = %if.merge.234 + %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.234 + %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.876, i64 4 }, { ptr, i64 } { ptr @str.877, 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.235 + +while.hdr.235: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.236, label %while.exit.237 + +while.body.236: ; preds = %while.hdr.235 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.238, label %if.merge.239 + +while.exit.237: ; preds = %while.hdr.235 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.878, i64 1 }) + ret { ptr, i64 } %callN + +if.then.238: ; preds = %while.body.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.879, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.239 + +if.merge.239: ; preds = %if.then.238, %while.body.236 + %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.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 { 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.235 + +fv.default: ; preds = %if.merge.239 + br label %fv.merge + +fv.case: ; preds = %if.merge.239 + %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.239 + %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.884, i64 6 }, { 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.240 + +while.hdr.240: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.241, label %while.exit.242 + +while.body.241: ; preds = %while.hdr.240 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.243, label %if.merge.244 + +while.exit.242: ; preds = %while.hdr.240 + %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.243: ; preds = %while.body.241 + %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.244 + +if.merge.244: ; preds = %if.then.243, %while.body.241 + %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.895, 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.896, 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.240 + +fv.default: ; preds = %if.merge.244 + br label %fv.merge + +fv.case: ; preds = %if.merge.244 + %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.244 + %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.244 + %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.244 + %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.244 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.244 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.244 + %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 81, 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.897, i64 6 }, { ptr, i64 } { ptr @str.898, 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.245 + +while.hdr.245: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.246, label %while.exit.247 + +while.body.246: ; preds = %while.hdr.245 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.248, label %if.merge.249 + +while.exit.247: ; preds = %while.hdr.245 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.899, i64 1 }) + ret { ptr, i64 } %callN + +if.then.248: ; preds = %while.body.246 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.900, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.249 + +if.merge.249: ; preds = %if.then.248, %while.body.246 + %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.905, 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.906, 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.245 + +fv.default: ; preds = %if.merge.249 + br label %fv.merge + +fv.case: ; preds = %if.merge.249 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.249 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.249 + %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.249 + %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__Mat4(ptr %0, { [16 x float] } %1) #0 { entry: %alloca = alloca { [16 x float] }, align 8 %ba.tmp = alloca [16 x float], align 4 store { [16 x float] } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.280, i64 4 }, { ptr, i64 } { ptr @str.281, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.907, i64 4 }, { ptr, i64 } { ptr @str.908, 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.155 + br label %while.hdr.250 -while.hdr.155: ; preds = %fv.merge, %entry +while.hdr.250: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.156, label %while.exit.157 + br i1 %icmp, label %while.body.251, label %while.exit.252 -while.body.156: ; preds = %while.hdr.155 +while.body.251: ; preds = %while.hdr.250 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.158, label %if.merge.159 + br i1 %icmpN, label %if.then.253, label %if.merge.254 -while.exit.157: ; preds = %while.hdr.155 +while.exit.252: ; preds = %while.hdr.250 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.282, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.909, i64 1 }) ret { ptr, i64 } %callN -if.then.158: ; preds = %while.body.156 +if.then.253: ; preds = %while.body.251 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.283, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.910, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.159 + br label %if.merge.254 -if.merge.159: ; preds = %if.then.158, %while.body.156 +if.merge.254: ; preds = %if.then.253, %while.body.251 %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.285, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.912, 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.286, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { [16 x float] }, ptr %alloca, align 4 @@ -3525,16 +7109,16 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.155 + br label %while.hdr.250 -fv.default: ; preds = %if.merge.159 +fv.default: ; preds = %if.merge.254 br label %fv.merge -fv.case: ; preds = %if.merge.159 +fv.case: ; preds = %if.merge.254 %fv.field = extractvalue { [16 x float] } %loadN, 0 store [16 x float] %fv.field, ptr %ba.tmp, align 4 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1 + %fv.val = insertvalue { i64, i64 } { i64 93, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge } @@ -3543,43 +7127,43 @@ define internal { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %1 entry: %alloca = alloca { float, float }, align 8 store { float, float } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.287, i64 4 }, { ptr, i64 } { ptr @str.288, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.914, i64 4 }, { ptr, i64 } { ptr @str.915, 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.160 + br label %while.hdr.255 -while.hdr.160: ; preds = %fv.merge, %entry +while.hdr.255: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.161, label %while.exit.162 + br i1 %icmp, label %while.body.256, label %while.exit.257 -while.body.161: ; preds = %while.hdr.160 +while.body.256: ; preds = %while.hdr.255 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.163, label %if.merge.164 + br i1 %icmpN, label %if.then.258, label %if.merge.259 -while.exit.162: ; preds = %while.hdr.160 +while.exit.257: ; preds = %while.hdr.255 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.289, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.916, i64 1 }) ret { ptr, i64 } %callN -if.then.163: ; preds = %while.body.161 +if.then.258: ; preds = %while.body.256 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.290, i64 2 }) + %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 - br label %if.merge.164 + br label %if.merge.259 -if.merge.164: ; preds = %if.then.163, %while.body.161 +if.merge.259: ; preds = %if.then.258, %while.body.256 %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.293, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.920, 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.294, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { float, float }, ptr %alloca, align 4 @@ -3597,19 +7181,19 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.255 -fv.default: ; preds = %if.merge.164 +fv.default: ; preds = %if.merge.259 br label %fv.merge -fv.case: ; preds = %if.merge.164 +fv.case: ; preds = %if.merge.259 %fv.field = extractvalue { float, float } %loadN, 0 %fNi32 = bitcast float %fv.field to i32 %zN = zext i32 %fNi32 to i64 %fv.val = insertvalue { i64, i64 } { i64 10, i64 undef }, i64 %zN, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.164 +fv.case17: ; preds = %if.merge.259 %fv.field18 = extractvalue { float, float } %loadN, 1 %fNi3219 = bitcast float %fv.field18 to i32 %zN = zext i32 %fNi3219 to i64 @@ -3617,103 +7201,48 @@ fv.case17: ; preds = %if.merge.164 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.295, i64 12 }, { ptr, i64 } { ptr @str.296, 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.165 - -while.hdr.165: ; preds = %if.merge.169, %entry - %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.166, label %while.exit.167 - -while.body.166: ; preds = %while.hdr.165 - %loadN = load i64, ptr %allocaN, align 8 - %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.168, label %if.merge.169 - -while.exit.167: ; preds = %while.hdr.165 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.297, i64 1 }) - ret { ptr, i64 } %callN - -if.then.168: ; preds = %while.body.166 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.298, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.169 - -if.merge.169: ; preds = %if.then.168, %while.body.166 - %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.299, 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.300, 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.165 -} - ; Function Attrs: nounwind define internal { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %1) #0 { entry: %alloca = alloca { i32, i32 }, align 8 store { i32, i32 } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.301, i64 5 }, { ptr, i64 } { ptr @str.302, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.922, i64 5 }, { ptr, i64 } { ptr @str.923, 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.170 + br label %while.hdr.260 -while.hdr.170: ; preds = %fv.merge, %entry +while.hdr.260: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.171, label %while.exit.172 + br i1 %icmp, label %while.body.261, label %while.exit.262 -while.body.171: ; preds = %while.hdr.170 +while.body.261: ; preds = %while.hdr.260 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.173, label %if.merge.174 + br i1 %icmpN, label %if.then.263, label %if.merge.264 -while.exit.172: ; preds = %while.hdr.170 +while.exit.262: ; preds = %while.hdr.260 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.303, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.924, i64 1 }) ret { ptr, i64 } %callN -if.then.173: ; preds = %while.body.171 +if.then.263: ; preds = %while.body.261 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.304, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.925, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.174 + br label %if.merge.264 -if.merge.174: ; preds = %if.then.173, %while.body.171 +if.merge.264: ; preds = %if.then.263, %while.body.261 %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.307, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.928, 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.308, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.929, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { i32, i32 }, ptr %alloca, align 4 @@ -3731,18 +7260,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.170 + br label %while.hdr.260 -fv.default: ; preds = %if.merge.174 +fv.default: ; preds = %if.merge.264 br label %fv.merge -fv.case: ; preds = %if.merge.174 +fv.case: ; preds = %if.merge.264 %fv.field = extractvalue { i32, i32 } %loadN, 0 %sN = sext i32 %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.174 +fv.case17: ; preds = %if.merge.264 %fv.field18 = extractvalue { i32, i32 } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 @@ -3754,43 +7283,43 @@ define internal { ptr, i64 } @struct_to_string__Shape.rect(ptr %0, { float, floa entry: %alloca = alloca { float, float }, align 8 store { float, float } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.309, i64 10 }, { ptr, i64 } { ptr @str.310, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.930, i64 10 }, { ptr, i64 } { ptr @str.931, 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.175 + br label %while.hdr.265 -while.hdr.175: ; preds = %fv.merge, %entry +while.hdr.265: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.176, label %while.exit.177 + br i1 %icmp, label %while.body.266, label %while.exit.267 -while.body.176: ; preds = %while.hdr.175 +while.body.266: ; preds = %while.hdr.265 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.178, label %if.merge.179 + br i1 %icmpN, label %if.then.268, label %if.merge.269 -while.exit.177: ; preds = %while.hdr.175 +while.exit.267: ; preds = %while.hdr.265 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.311, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.932, i64 1 }) ret { ptr, i64 } %callN -if.then.178: ; preds = %while.body.176 +if.then.268: ; preds = %while.body.266 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.933, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.179 + br label %if.merge.269 -if.merge.179: ; preds = %if.then.178, %while.body.176 +if.merge.269: ; preds = %if.then.268, %while.body.266 %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.315, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.936, 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.316, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.937, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { float, float }, ptr %alloca, align 4 @@ -3808,19 +7337,19 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.175 + br label %while.hdr.265 -fv.default: ; preds = %if.merge.179 +fv.default: ; preds = %if.merge.269 br label %fv.merge -fv.case: ; preds = %if.merge.179 +fv.case: ; preds = %if.merge.269 %fv.field = extractvalue { float, float } %loadN, 0 %fNi32 = bitcast float %fv.field to i32 %zN = zext i32 %fNi32 to i64 %fv.val = insertvalue { i64, i64 } { i64 10, i64 undef }, i64 %zN, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.179 +fv.case17: ; preds = %if.merge.269 %fv.field18 = extractvalue { float, float } %loadN, 1 %fNi3219 = bitcast float %fv.field18 to i32 %zN = zext i32 %fNi3219 to i64 @@ -3829,7 +7358,7 @@ fv.case17: ; preds = %if.merge.179 } ; Function Attrs: nounwind -define internal { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %1) #0 { +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 @@ -3837,9 +7366,9 @@ entry: %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.325, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.943, 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.317, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.938, 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 @@ -3853,18 +7382,209 @@ entry: %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.185, label %if.merge.186 + br i1 %icmp, label %if.then.278, label %if.merge.279 -if.then.185: ; preds = %entry +if.then.278: ; 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.327, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.326, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.945, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.944, 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.186 + br label %if.merge.279 -if.merge.186: ; preds = %if.then.185, %entry +if.merge.279: ; preds = %if.then.278, %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.950, 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.946, 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.280, label %if.merge.281 + +if.then.280: ; 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.952, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.951, 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.281 + +if.merge.281: ; preds = %if.then.280, %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.960, 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.953, 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.282: ; 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.962, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.961, 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.283 + +if.merge.283: ; preds = %if.then.282, %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.282, label %if.merge.283 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.971, 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.963, 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.284, label %if.merge.285 + +if.then.284: ; 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.973, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.972, 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.285 + +if.merge.285: ; preds = %if.then.284, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -3878,9 +7598,9 @@ entry: %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.334, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.980, 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.328, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.974, 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 @@ -3894,18 +7614,18 @@ entry: %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.187, label %if.merge.188 + br i1 %icmp, label %if.then.286, label %if.merge.287 -if.then.187: ; preds = %entry +if.then.286: ; 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.336, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.335, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.982, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.981, 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.188 + br label %if.merge.287 -if.merge.188: ; preds = %if.then.187, %entry +if.merge.287: ; preds = %if.then.286, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -3925,9 +7645,9 @@ entry: %allocaN = alloca i64, align 8 store i64 %etag, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 - %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.341, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.987, 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.337, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.983, i64 1 }, { ptr, i64 } %fn.load) %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8 %loadN = load { i64, [8 x i8] }, ptr %alloca, align 8 @@ -3938,16 +7658,16 @@ entry: i64 2, label %fv.case11 ] -if.then.189: ; preds = %fv.merge +if.then.288: ; 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.343, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.342, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.989, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.988, 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.190 + br label %if.merge.289 -if.merge.190: ; preds = %if.then.189, %fv.merge +if.merge.289: ; preds = %if.then.288, %fv.merge %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN @@ -3960,7 +7680,7 @@ fv.merge: ; preds = %fv.default, %fv.cas %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.189, label %if.merge.190 + br i1 %icmp, label %if.then.288, label %if.merge.289 fv.default: ; preds = %entry br label %fv.merge @@ -3980,7 +7700,7 @@ fv.case6: ; preds = %entry %fv.field9 = load { float, float }, ptr %fv.pp8, align 4 store { float, float } %fv.field9, ptr %ba.tmp, align 4 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val10 = insertvalue { i64, i64 } { i64 45, i64 undef }, i64 %ba.p2i, 1 + %fv.val10 = insertvalue { i64, i64 } { i64 97, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge fv.case11: ; preds = %entry @@ -3994,33 +7714,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.344, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.990, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.197 + br label %while.hdr.300 -while.hdr.197: ; preds = %if.merge.201, %entry +while.hdr.300: ; preds = %if.merge.304, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.198, label %while.exit.199 + br i1 %icmp, label %while.body.301, label %while.exit.302 -while.body.198: ; preds = %while.hdr.197 +while.body.301: ; preds = %while.hdr.300 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.200, label %if.merge.201 + br i1 %icmpN, label %if.then.303, label %if.merge.304 -while.exit.199: ; preds = %while.hdr.197 +while.exit.302: ; preds = %while.hdr.300 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.991, i64 1 }) ret { ptr, i64 } %call -if.then.200: ; preds = %while.body.198 +if.then.303: ; preds = %while.body.301 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.992, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.201 + br label %if.merge.304 -if.merge.201: ; preds = %if.then.200, %while.body.198 +if.merge.304: ; preds = %if.then.303, %while.body.301 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4034,7 +7754,211 @@ if.merge.201: ; preds = %if.then.200, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.197 + br label %while.hdr.300 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.993, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.305 + +while.hdr.305: ; preds = %if.merge.309, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.306, label %while.exit.307 + +while.body.306: ; preds = %while.hdr.305 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.308, label %if.merge.309 + +while.exit.307: ; preds = %while.hdr.305 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.994, i64 1 }) + ret { ptr, i64 } %call + +if.then.308: ; preds = %while.body.306 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.995, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.309 + +if.merge.309: ; preds = %if.then.308, %while.body.306 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.305 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.996, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.310 + +while.hdr.310: ; preds = %if.merge.314, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.311, label %while.exit.312 + +while.body.311: ; preds = %while.hdr.310 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.313, label %if.merge.314 + +while.exit.312: ; preds = %while.hdr.310 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.997, i64 1 }) + ret { ptr, i64 } %call + +if.then.313: ; preds = %while.body.311 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.998, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.314 + +if.merge.314: ; preds = %if.then.313, %while.body.311 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.310 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.999, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.315 + +while.hdr.315: ; preds = %if.merge.319, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.316, label %while.exit.317 + +while.body.316: ; preds = %while.hdr.315 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.318, label %if.merge.319 + +while.exit.317: ; preds = %while.hdr.315 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1000, i64 1 }) + ret { ptr, i64 } %call + +if.then.318: ; preds = %while.body.316 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1001, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.319 + +if.merge.319: ; preds = %if.then.318, %while.body.316 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.315 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1002, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.320 + +while.hdr.320: ; preds = %if.merge.324, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.321, label %while.exit.322 + +while.body.321: ; preds = %while.hdr.320 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.323, label %if.merge.324 + +while.exit.322: ; preds = %while.hdr.320 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1003, i64 1 }) + ret { ptr, i64 } %call + +if.then.323: ; preds = %while.body.321 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1004, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.324 + +if.merge.324: ; preds = %if.then.323, %while.body.321 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.320 } ; Function Attrs: nounwind @@ -4044,33 +7968,33 @@ entry: %ig.tmp = alloca [16 x float], align 4 store [16 x float] %1, ptr %alloca, align 4 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.347, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1005, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.202 + br label %while.hdr.325 -while.hdr.202: ; preds = %if.merge.206, %entry +while.hdr.325: ; preds = %if.merge.329, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 16 - br i1 %icmp, label %while.body.203, label %while.exit.204 + br i1 %icmp, label %while.body.326, label %while.exit.327 -while.body.203: ; preds = %while.hdr.202 +while.body.326: ; preds = %while.hdr.325 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.205, label %if.merge.206 + br i1 %icmpN, label %if.then.328, label %if.merge.329 -while.exit.204: ; preds = %while.hdr.202 +while.exit.327: ; preds = %while.hdr.325 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.348, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1006, i64 1 }) ret { ptr, i64 } %call -if.then.205: ; preds = %while.body.203 +if.then.328: ; preds = %while.body.326 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.349, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1007, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.206 + br label %if.merge.329 -if.merge.206: ; preds = %if.then.205, %while.body.203 +if.merge.329: ; preds = %if.then.328, %while.body.326 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [16 x float], ptr %alloca, align 4 %loadN = load i64, ptr %allocaN, align 8 @@ -4086,7 +8010,7 @@ if.merge.206: ; preds = %if.then.205, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.202 + br label %while.hdr.325 } ; Function Attrs: nounwind @@ -4097,33 +8021,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [2 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.350, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1008, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.207 + br label %while.hdr.330 -while.hdr.207: ; preds = %if.merge.211, %entry +while.hdr.330: ; preds = %if.merge.334, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.208, label %while.exit.209 + br i1 %icmp, label %while.body.331, label %while.exit.332 -while.body.208: ; preds = %while.hdr.207 +while.body.331: ; preds = %while.hdr.330 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.210, label %if.merge.211 + br i1 %icmpN, label %if.then.333, label %if.merge.334 -while.exit.209: ; preds = %while.hdr.207 +while.exit.332: ; preds = %while.hdr.330 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.351, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1009, i64 1 }) ret { ptr, i64 } %call -if.then.210: ; preds = %while.body.208 +if.then.333: ; preds = %while.body.331 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1010, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.211 + br label %if.merge.334 -if.merge.211: ; preds = %if.then.210, %while.body.208 +if.merge.334: ; preds = %if.then.333, %while.body.331 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [2 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4139,7 +8063,7 @@ if.merge.211: ; preds = %if.then.210, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.207 + br label %while.hdr.330 } ; Function Attrs: nounwind @@ -4150,33 +8074,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.353, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1011, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.212 + br label %while.hdr.335 -while.hdr.212: ; preds = %if.merge.216, %entry +while.hdr.335: ; preds = %if.merge.339, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.213, label %while.exit.214 + br i1 %icmp, label %while.body.336, label %while.exit.337 -while.body.213: ; preds = %while.hdr.212 +while.body.336: ; preds = %while.hdr.335 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.215, label %if.merge.216 + br i1 %icmpN, label %if.then.338, label %if.merge.339 -while.exit.214: ; preds = %while.hdr.212 +while.exit.337: ; preds = %while.hdr.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.354, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1012, i64 1 }) ret { ptr, i64 } %call -if.then.215: ; preds = %while.body.213 +if.then.338: ; preds = %while.body.336 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.355, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1013, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.216 + br label %if.merge.339 -if.merge.216: ; preds = %if.then.215, %while.body.213 +if.merge.339: ; preds = %if.then.338, %while.body.336 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4192,7 +8116,7 @@ if.merge.216: ; preds = %if.then.215, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.212 + br label %while.hdr.335 } ; Function Attrs: nounwind @@ -4202,35 +8126,35 @@ entry: %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.356, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1014, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.221 + br label %while.hdr.347 -while.hdr.221: ; preds = %if.merge.225, %entry +while.hdr.347: ; preds = %if.merge.351, %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.222, label %while.exit.223 + br i1 %icmp, label %while.body.348, label %while.exit.349 -while.body.222: ; preds = %while.hdr.221 +while.body.348: ; preds = %while.hdr.347 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.224, label %if.merge.225 + br i1 %icmpN, label %if.then.350, label %if.merge.351 -while.exit.223: ; preds = %while.hdr.221 +while.exit.349: ; preds = %while.hdr.347 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.357, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1015, i64 1 }) ret { ptr, i64 } %call -if.then.224: ; preds = %while.body.222 +if.then.350: ; preds = %while.body.348 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1016, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.225 + br label %if.merge.351 -if.merge.225: ; preds = %if.then.224, %while.body.222 +if.merge.351: ; preds = %if.then.350, %while.body.348 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4246,7 +8170,167 @@ if.merge.225: ; preds = %if.then.224, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.221 + br label %while.hdr.347 +} + +; 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.1017, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.352 + +while.hdr.352: ; preds = %if.merge.356, %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.353, label %while.exit.354 + +while.body.353: ; preds = %while.hdr.352 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.355, label %if.merge.356 + +while.exit.354: ; preds = %while.hdr.352 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1018, i64 1 }) + ret { ptr, i64 } %call + +if.then.355: ; preds = %while.body.353 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1019, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.356 + +if.merge.356: ; preds = %if.then.355, %while.body.353 + %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.352 +} + +; 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.1020, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.357 + +while.hdr.357: ; preds = %if.merge.361, %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.358, label %while.exit.359 + +while.body.358: ; preds = %while.hdr.357 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.360, label %if.merge.361 + +while.exit.359: ; preds = %while.hdr.357 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1021, i64 1 }) + ret { ptr, i64 } %call + +if.then.360: ; preds = %while.body.358 + %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.361 + +if.merge.361: ; preds = %if.then.360, %while.body.358 + %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 76, 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.357 +} + +; 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.1023, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.362 + +while.hdr.362: ; preds = %if.merge.366, %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.363, label %while.exit.364 + +while.body.363: ; preds = %while.hdr.362 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.365, label %if.merge.366 + +while.exit.364: ; preds = %while.hdr.362 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1024, i64 1 }) + ret { ptr, i64 } %call + +if.then.365: ; preds = %while.body.363 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1025, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.366 + +if.merge.366: ; preds = %if.then.365, %while.body.363 + %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 78, 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.362 } ; Function Attrs: nounwind @@ -4256,35 +8340,35 @@ entry: %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.359, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1026, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.226 + br label %while.hdr.367 -while.hdr.226: ; preds = %if.merge.230, %entry +while.hdr.367: ; preds = %if.merge.371, %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.227, label %while.exit.228 + br i1 %icmp, label %while.body.368, label %while.exit.369 -while.body.227: ; preds = %while.hdr.226 +while.body.368: ; preds = %while.hdr.367 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.229, label %if.merge.230 + br i1 %icmpN, label %if.then.370, label %if.merge.371 -while.exit.228: ; preds = %while.hdr.226 +while.exit.369: ; preds = %while.hdr.367 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1027, i64 1 }) ret { ptr, i64 } %call -if.then.229: ; preds = %while.body.227 +if.then.370: ; preds = %while.body.368 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1028, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.230 + br label %if.merge.371 -if.merge.230: ; preds = %if.then.229, %while.body.227 +if.merge.371: ; preds = %if.then.370, %while.body.368 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4300,7 +8384,7 @@ if.merge.230: ; preds = %if.then.229, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.226 + br label %while.hdr.367 } ; Function Attrs: nounwind @@ -4314,20 +8398,20 @@ entry: 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.254, label %if.else.255 + br i1 %icmp, label %if.then.407, label %if.else.408 -if.then.254: ; preds = %entry - br label %if.merge.256 +if.then.407: ; preds = %entry + br label %if.merge.409 -if.else.255: ; preds = %entry +if.else.408: ; 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.364, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.363, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.256 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1031, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1030, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.409 -if.merge.256: ; preds = %if.else.255, %if.then.254 - %bp = phi { ptr, i64 } [ { ptr @str.362, i64 4 }, %if.then.254 ], [ %callN, %if.else.255 ] +if.merge.409: ; preds = %if.else.408, %if.then.407 + %bp = phi { ptr, i64 } [ { ptr @str.1029, i64 4 }, %if.then.407 ], [ %callN, %if.else.408 ] ret { ptr, i64 } %bp } @@ -4342,20 +8426,20 @@ entry: 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.270, label %if.else.271 + br i1 %icmp, label %if.then.423, label %if.else.424 -if.then.270: ; preds = %entry - br label %if.merge.272 +if.then.423: ; preds = %entry + br label %if.merge.425 -if.else.271: ; preds = %entry +if.else.424: ; 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.367, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.366, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.272 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1034, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1033, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.425 -if.merge.272: ; preds = %if.else.271, %if.then.270 - %bp = phi { ptr, i64 } [ { ptr @str.365, i64 4 }, %if.then.270 ], [ %callN, %if.else.271 ] +if.merge.425: ; preds = %if.else.424, %if.then.423 + %bp = phi { ptr, i64 } [ { ptr @str.1032, i64 4 }, %if.then.423 ], [ %callN, %if.else.424 ] ret { ptr, i64 } %bp } @@ -4370,20 +8454,20 @@ entry: 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.273, label %if.else.274 + br i1 %icmp, label %if.then.426, label %if.else.427 -if.then.273: ; preds = %entry - br label %if.merge.275 +if.then.426: ; preds = %entry + br label %if.merge.428 -if.else.274: ; preds = %entry +if.else.427: ; 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.370, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.369, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.275 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1037, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1036, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.428 -if.merge.275: ; preds = %if.else.274, %if.then.273 - %bp = phi { ptr, i64 } [ { ptr @str.368, i64 4 }, %if.then.273 ], [ %callN, %if.else.274 ] +if.merge.428: ; preds = %if.else.427, %if.then.426 + %bp = phi { ptr, i64 } [ { ptr @str.1035, i64 4 }, %if.then.426 ], [ %callN, %if.else.427 ] ret { ptr, i64 } %bp } @@ -4398,20 +8482,20 @@ entry: 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.276, label %if.else.277 + br i1 %icmp, label %if.then.429, label %if.else.430 -if.then.276: ; preds = %entry - br label %if.merge.278 +if.then.429: ; preds = %entry + br label %if.merge.431 -if.else.277: ; preds = %entry +if.else.430: ; 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.373, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.372, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.278 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1040, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1039, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.431 -if.merge.278: ; preds = %if.else.277, %if.then.276 - %bp = phi { ptr, i64 } [ { ptr @str.371, i64 4 }, %if.then.276 ], [ %callN, %if.else.277 ] +if.merge.431: ; preds = %if.else.430, %if.then.429 + %bp = phi { ptr, i64 } [ { ptr @str.1038, i64 4 }, %if.then.429 ], [ %callN, %if.else.430 ] ret { ptr, i64 } %bp } @@ -4426,20 +8510,20 @@ entry: 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.279, label %if.else.280 + br i1 %icmp, label %if.then.432, label %if.else.433 -if.then.279: ; preds = %entry - br label %if.merge.281 +if.then.432: ; preds = %entry + br label %if.merge.434 -if.else.280: ; preds = %entry +if.else.433: ; 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.376, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.375, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.281 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1043, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1042, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.434 -if.merge.281: ; preds = %if.else.280, %if.then.279 - %bp = phi { ptr, i64 } [ { ptr @str.374, i64 4 }, %if.then.279 ], [ %callN, %if.else.280 ] +if.merge.434: ; preds = %if.else.433, %if.then.432 + %bp = phi { ptr, i64 } [ { ptr @str.1041, i64 4 }, %if.then.432 ], [ %callN, %if.else.433 ] ret { ptr, i64 } %bp } @@ -4453,20 +8537,20 @@ entry: 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.282, label %if.else.283 + br i1 %icmp, label %if.then.435, label %if.else.436 -if.then.282: ; preds = %entry - br label %if.merge.284 +if.then.435: ; preds = %entry + br label %if.merge.437 -if.else.283: ; preds = %entry +if.else.436: ; 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.379, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.378, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.284 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1046, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1045, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.437 -if.merge.284: ; preds = %if.else.283, %if.then.282 - %bp = phi { ptr, i64 } [ { ptr @str.377, i64 4 }, %if.then.282 ], [ %callN, %if.else.283 ] +if.merge.437: ; preds = %if.else.436, %if.then.435 + %bp = phi { ptr, i64 } [ { ptr @str.1044, i64 4 }, %if.then.435 ], [ %callN, %if.else.436 ] ret { ptr, i64 } %bp } @@ -4481,20 +8565,20 @@ entry: 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.285, label %if.else.286 + br i1 %icmp, label %if.then.438, label %if.else.439 -if.then.285: ; preds = %entry - br label %if.merge.287 +if.then.438: ; preds = %entry + br label %if.merge.440 -if.else.286: ; preds = %entry +if.else.439: ; 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.382, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.381, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.287 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1049, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1048, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.440 -if.merge.287: ; preds = %if.else.286, %if.then.285 - %bp = phi { ptr, i64 } [ { ptr @str.380, i64 4 }, %if.then.285 ], [ %callN, %if.else.286 ] +if.merge.440: ; preds = %if.else.439, %if.then.438 + %bp = phi { ptr, i64 } [ { ptr @str.1047, i64 4 }, %if.then.438 ], [ %callN, %if.else.439 ] ret { ptr, i64 } %bp } @@ -4509,25 +8593,25 @@ entry: 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.288, label %if.else.289 + br i1 %icmp, label %if.then.441, label %if.else.442 -if.then.288: ; preds = %entry - br label %if.merge.290 +if.then.441: ; preds = %entry + br label %if.merge.443 -if.else.289: ; preds = %entry +if.else.442: ; 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.385, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.384, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.290 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1052, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1051, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.443 -if.merge.290: ; preds = %if.else.289, %if.then.288 - %bp = phi { ptr, i64 } [ { ptr @str.383, i64 4 }, %if.then.288 ], [ %callN, %if.else.289 ] +if.merge.443: ; preds = %if.else.442, %if.then.441 + %bp = phi { ptr, i64 } [ { ptr @str.1050, i64 4 }, %if.then.441 ], [ %callN, %if.else.442 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -4537,160 +8621,20 @@ entry: 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.291, label %if.else.292 + br i1 %icmp, label %if.then.444, label %if.else.445 -if.then.291: ; preds = %entry - br label %if.merge.293 +if.then.444: ; preds = %entry + br label %if.merge.446 -if.else.292: ; preds = %entry +if.else.445: ; 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.388, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.387, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.293 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1055, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1054, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.446 -if.merge.293: ; preds = %if.else.292, %if.then.291 - %bp = phi { ptr, i64 } [ { ptr @str.386, i64 4 }, %if.then.291 ], [ %callN, %if.else.292 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.294, label %if.else.295 - -if.then.294: ; preds = %entry - br label %if.merge.296 - -if.else.295: ; 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.391, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.390, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.296 - -if.merge.296: ; preds = %if.else.295, %if.then.294 - %bp = phi { ptr, i64 } [ { ptr @str.389, i64 4 }, %if.then.294 ], [ %callN, %if.else.295 ] - 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.297, label %if.else.298 - -if.then.297: ; preds = %entry - br label %if.merge.299 - -if.else.298: ; 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.394, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.393, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.299 - -if.merge.299: ; preds = %if.else.298, %if.then.297 - %bp = phi { ptr, i64 } [ { ptr @str.392, i64 4 }, %if.then.297 ], [ %callN, %if.else.298 ] - 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.300, label %if.else.301 - -if.then.300: ; preds = %entry - br label %if.merge.302 - -if.else.301: ; 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.397, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.396, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.302 - -if.merge.302: ; preds = %if.else.301, %if.then.300 - %bp = phi { ptr, i64 } [ { ptr @str.395, i64 4 }, %if.then.300 ], [ %callN, %if.else.301 ] - 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.303, label %if.else.304 - -if.then.303: ; preds = %entry - br label %if.merge.305 - -if.else.304: ; 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.400, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.399, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.305 - -if.merge.305: ; preds = %if.else.304, %if.then.303 - %bp = phi { ptr, i64 } [ { ptr @str.398, i64 4 }, %if.then.303 ], [ %callN, %if.else.304 ] - 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.306, label %if.else.307 - -if.then.306: ; preds = %entry - br label %if.merge.308 - -if.else.307: ; 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.403, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.402, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.308 - -if.merge.308: ; preds = %if.else.307, %if.then.306 - %bp = phi { ptr, i64 } [ { ptr @str.401, i64 4 }, %if.then.306 ], [ %callN, %if.else.307 ] +if.merge.446: ; preds = %if.else.445, %if.then.444 + %bp = phi { ptr, i64 } [ { ptr @str.1053, i64 4 }, %if.then.444 ], [ %callN, %if.else.445 ] ret { ptr, i64 } %bp } @@ -4705,76 +8649,20 @@ entry: 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.309, label %if.else.310 + br i1 %icmp, label %if.then.447, label %if.else.448 -if.then.309: ; preds = %entry - br label %if.merge.311 +if.then.447: ; preds = %entry + br label %if.merge.449 -if.else.310: ; preds = %entry +if.else.448: ; 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.406, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.405, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.311 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1058, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1057, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.449 -if.merge.311: ; preds = %if.else.310, %if.then.309 - %bp = phi { ptr, i64 } [ { ptr @str.404, i64 4 }, %if.then.309 ], [ %callN, %if.else.310 ] - 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.312, label %if.else.313 - -if.then.312: ; preds = %entry - br label %if.merge.314 - -if.else.313: ; 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.409, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.408, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.314 - -if.merge.314: ; preds = %if.else.313, %if.then.312 - %bp = phi { ptr, i64 } [ { ptr @str.407, i64 4 }, %if.then.312 ], [ %callN, %if.else.313 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Point(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.315, label %if.else.316 - -if.then.315: ; preds = %entry - br label %if.merge.317 - -if.else.316: ; 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.412, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.411, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.317 - -if.merge.317: ; preds = %if.else.316, %if.then.315 - %bp = phi { ptr, i64 } [ { ptr @str.410, i64 4 }, %if.then.315 ], [ %callN, %if.else.316 ] +if.merge.449: ; preds = %if.else.448, %if.then.447 + %bp = phi { ptr, i64 } [ { ptr @str.1056, i64 4 }, %if.then.447 ], [ %callN, %if.else.448 ] ret { ptr, i64 } %bp } @@ -4789,20 +8677,550 @@ entry: 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.318, label %if.else.319 + br i1 %icmp, label %if.then.450, label %if.else.451 -if.then.318: ; preds = %entry - br label %if.merge.320 +if.then.450: ; preds = %entry + br label %if.merge.452 -if.else.319: ; preds = %entry +if.else.451: ; 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.415, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.414, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.320 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1061, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1060, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.452 -if.merge.320: ; preds = %if.else.319, %if.then.318 - %bp = phi { ptr, i64 } [ { ptr @str.413, i64 4 }, %if.then.318 ], [ %callN, %if.else.319 ] +if.merge.452: ; preds = %if.else.451, %if.then.450 + %bp = phi { ptr, i64 } [ { ptr @str.1059, i64 4 }, %if.then.450 ], [ %callN, %if.else.451 ] + 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.453, label %if.else.454 + +if.then.453: ; preds = %entry + br label %if.merge.455 + +if.else.454: ; 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.1064, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1063, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.455 + +if.merge.455: ; preds = %if.else.454, %if.then.453 + %bp = phi { ptr, i64 } [ { ptr @str.1062, i64 4 }, %if.then.453 ], [ %callN, %if.else.454 ] + 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.456, label %if.else.457 + +if.then.456: ; preds = %entry + br label %if.merge.458 + +if.else.457: ; 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.1067, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1066, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.458 + +if.merge.458: ; preds = %if.else.457, %if.then.456 + %bp = phi { ptr, i64 } [ { ptr @str.1065, i64 4 }, %if.then.456 ], [ %callN, %if.else.457 ] + 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.459, label %if.else.460 + +if.then.459: ; preds = %entry + br label %if.merge.461 + +if.else.460: ; 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.1070, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1069, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.461 + +if.merge.461: ; preds = %if.else.460, %if.then.459 + %bp = phi { ptr, i64 } [ { ptr @str.1068, i64 4 }, %if.then.459 ], [ %callN, %if.else.460 ] + 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.462, label %if.else.463 + +if.then.462: ; preds = %entry + br label %if.merge.464 + +if.else.463: ; 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.1073, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1072, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.464 + +if.merge.464: ; preds = %if.else.463, %if.then.462 + %bp = phi { ptr, i64 } [ { ptr @str.1071, i64 4 }, %if.then.462 ], [ %callN, %if.else.463 ] + 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.465, label %if.else.466 + +if.then.465: ; preds = %entry + br label %if.merge.467 + +if.else.466: ; 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.1076, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1075, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.467 + +if.merge.467: ; preds = %if.else.466, %if.then.465 + %bp = phi { ptr, i64 } [ { ptr @str.1074, i64 4 }, %if.then.465 ], [ %callN, %if.else.466 ] + 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.468, label %if.else.469 + +if.then.468: ; preds = %entry + br label %if.merge.470 + +if.else.469: ; 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.1079, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1078, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.470 + +if.merge.470: ; preds = %if.else.469, %if.then.468 + %bp = phi { ptr, i64 } [ { ptr @str.1077, i64 4 }, %if.then.468 ], [ %callN, %if.else.469 ] + 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.471, label %if.else.472 + +if.then.471: ; preds = %entry + br label %if.merge.473 + +if.else.472: ; 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.1082, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1081, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.473 + +if.merge.473: ; preds = %if.else.472, %if.then.471 + %bp = phi { ptr, i64 } [ { ptr @str.1080, i64 4 }, %if.then.471 ], [ %callN, %if.else.472 ] + 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.474, label %if.else.475 + +if.then.474: ; preds = %entry + br label %if.merge.476 + +if.else.475: ; 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.1085, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1084, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.476 + +if.merge.476: ; preds = %if.else.475, %if.then.474 + %bp = phi { ptr, i64 } [ { ptr @str.1083, i64 4 }, %if.then.474 ], [ %callN, %if.else.475 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.477, label %if.else.478 + +if.then.477: ; preds = %entry + br label %if.merge.479 + +if.else.478: ; 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.1088, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1087, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.479 + +if.merge.479: ; preds = %if.else.478, %if.then.477 + %bp = phi { ptr, i64 } [ { ptr @str.1086, i64 4 }, %if.then.477 ], [ %callN, %if.else.478 ] + 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.480, label %if.else.481 + +if.then.480: ; preds = %entry + br label %if.merge.482 + +if.else.481: ; 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.1091, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1090, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.482 + +if.merge.482: ; preds = %if.else.481, %if.then.480 + %bp = phi { ptr, i64 } [ { ptr @str.1089, i64 4 }, %if.then.480 ], [ %callN, %if.else.481 ] + 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.483, label %if.else.484 + +if.then.483: ; preds = %entry + br label %if.merge.485 + +if.else.484: ; 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.1094, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1093, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.485 + +if.merge.485: ; preds = %if.else.484, %if.then.483 + %bp = phi { ptr, i64 } [ { ptr @str.1092, i64 4 }, %if.then.483 ], [ %callN, %if.else.484 ] + 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.486, label %if.else.487 + +if.then.486: ; preds = %entry + br label %if.merge.488 + +if.else.487: ; 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.1097, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1096, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.488 + +if.merge.488: ; preds = %if.else.487, %if.then.486 + %bp = phi { ptr, i64 } [ { ptr @str.1095, i64 4 }, %if.then.486 ], [ %callN, %if.else.487 ] + 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.489, label %if.else.490 + +if.then.489: ; preds = %entry + br label %if.merge.491 + +if.else.490: ; 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.1100, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1099, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.491 + +if.merge.491: ; preds = %if.else.490, %if.then.489 + %bp = phi { ptr, i64 } [ { ptr @str.1098, i64 4 }, %if.then.489 ], [ %callN, %if.else.490 ] + 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.492, label %if.else.493 + +if.then.492: ; preds = %entry + br label %if.merge.494 + +if.else.493: ; 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.1103, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1102, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.494 + +if.merge.494: ; preds = %if.else.493, %if.then.492 + %bp = phi { ptr, i64 } [ { ptr @str.1101, i64 4 }, %if.then.492 ], [ %callN, %if.else.493 ] + 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.495, label %if.else.496 + +if.then.495: ; preds = %entry + br label %if.merge.497 + +if.else.496: ; 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.1106, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1105, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.497 + +if.merge.497: ; preds = %if.else.496, %if.then.495 + %bp = phi { ptr, i64 } [ { ptr @str.1104, i64 4 }, %if.then.495 ], [ %callN, %if.else.496 ] + 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.498, label %if.else.499 + +if.then.498: ; preds = %entry + br label %if.merge.500 + +if.else.499: ; 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.1109, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1108, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.500 + +if.merge.500: ; preds = %if.else.499, %if.then.498 + %bp = phi { ptr, i64 } [ { ptr @str.1107, i64 4 }, %if.then.498 ], [ %callN, %if.else.499 ] + 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.501, label %if.else.502 + +if.then.501: ; preds = %entry + br label %if.merge.503 + +if.else.502: ; 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.1112, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1111, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.503 + +if.merge.503: ; preds = %if.else.502, %if.then.501 + %bp = phi { ptr, i64 } [ { ptr @str.1110, i64 4 }, %if.then.501 ], [ %callN, %if.else.502 ] + 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.504, label %if.else.505 + +if.then.504: ; preds = %entry + br label %if.merge.506 + +if.else.505: ; 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.1115, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1114, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.506 + +if.merge.506: ; preds = %if.else.505, %if.then.504 + %bp = phi { ptr, i64 } [ { ptr @str.1113, i64 4 }, %if.then.504 ], [ %callN, %if.else.505 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Point(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.507, label %if.else.508 + +if.then.507: ; preds = %entry + br label %if.merge.509 + +if.else.508: ; 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.1118, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1117, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.509 + +if.merge.509: ; preds = %if.else.508, %if.then.507 + %bp = phi { ptr, i64 } [ { ptr @str.1116, i64 4 }, %if.then.507 ], [ %callN, %if.else.508 ] ret { ptr, i64 } %bp } @@ -4817,20 +9235,20 @@ entry: 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.321, label %if.else.322 + br i1 %icmp, label %if.then.510, label %if.else.511 -if.then.321: ; preds = %entry - br label %if.merge.323 +if.then.510: ; preds = %entry + br label %if.merge.512 -if.else.322: ; preds = %entry +if.else.511: ; 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.418, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.417, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.323 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1121, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1120, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.512 -if.merge.323: ; preds = %if.else.322, %if.then.321 - %bp = phi { ptr, i64 } [ { ptr @str.416, i64 4 }, %if.then.321 ], [ %callN, %if.else.322 ] +if.merge.512: ; preds = %if.else.511, %if.then.510 + %bp = phi { ptr, i64 } [ { ptr @str.1119, i64 4 }, %if.then.510 ], [ %callN, %if.else.511 ] ret { ptr, i64 } %bp } @@ -4845,20 +9263,20 @@ entry: 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.324, label %if.else.325 + br i1 %icmp, label %if.then.513, label %if.else.514 -if.then.324: ; preds = %entry - br label %if.merge.326 +if.then.513: ; preds = %entry + br label %if.merge.515 -if.else.325: ; preds = %entry +if.else.514: ; 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.421, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.420, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.326 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1124, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1123, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.515 -if.merge.326: ; preds = %if.else.325, %if.then.324 - %bp = phi { ptr, i64 } [ { ptr @str.419, i64 4 }, %if.then.324 ], [ %callN, %if.else.325 ] +if.merge.515: ; preds = %if.else.514, %if.then.513 + %bp = phi { ptr, i64 } [ { ptr @str.1122, i64 4 }, %if.then.513 ], [ %callN, %if.else.514 ] ret { ptr, i64 } %bp } @@ -4873,19 +9291,115 @@ entry: 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.327, label %if.else.328 + br i1 %icmp, label %if.then.516, label %if.else.517 -if.then.327: ; preds = %entry - br label %if.merge.329 +if.then.516: ; preds = %entry + br label %if.merge.518 -if.else.328: ; preds = %entry +if.else.517: ; 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.424, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.423, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.329 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1127, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1126, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.518 -if.merge.329: ; preds = %if.else.328, %if.then.327 - %bp = phi { ptr, i64 } [ { ptr @str.422, i64 4 }, %if.then.327 ], [ %callN, %if.else.328 ] +if.merge.518: ; preds = %if.else.517, %if.then.516 + %bp = phi { ptr, i64 } [ { ptr @str.1125, i64 4 }, %if.then.516 ], [ %callN, %if.else.517 ] 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.525, label %if.merge.526 + +if.then.525: ; preds = %entry + ret { ptr, i64 } { ptr @str.1128, i64 4 } + +if.merge.526: ; 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 39, 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.527, label %if.merge.528 + +if.then.527: ; preds = %entry + ret { ptr, i64 } { ptr @str.1129, i64 4 } + +if.merge.528: ; 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_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.529, label %if.merge.530 + +if.then.529: ; preds = %entry + ret { ptr, i64 } { ptr @str.1130, i64 4 } + +if.merge.530: ; 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 45, 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.531, label %if.merge.532 + +if.then.531: ; preds = %entry + ret { ptr, i64 } { ptr @str.1131, i64 4 } + +if.merge.532: ; 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 88, 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/0032-basic-ufcs-return-type.ir b/examples/expected/0032-basic-ufcs-return-type.ir index 444b563..5d9cd1e 100644 --- a/examples/expected/0032-basic-ufcs-return-type.ir +++ b/examples/expected/0032-basic-ufcs-return-type.ir @@ -1,330 +1,648 @@ -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.77 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.78 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.79 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.80 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.81 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.82 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [87 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] +@str.465 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.466 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.467 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.468 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.469 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.470 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [168 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.471 = private constant [9 x i8] c"Overflow\00" +@tag.str.472 = private constant [3 x i8] c"Io\00" +@tag.str.473 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.474 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.475 = private constant [10 x i8] c"BadEscape\00" +@tag.str.476 = private constant [10 x i8] c"BadNumber\00" +@tag.str.477 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.478 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.479 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.480 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.481 = private constant [13 x i8] c"MissingValue\00" +@tag.str.482 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.483 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.471, i64 8 }, { ptr, i64 } { ptr @tag.str.472, i64 2 }, { ptr, i64 } { ptr @tag.str.473, i64 15 }, { ptr, i64 } { ptr @tag.str.474, i64 13 }, { ptr, i64 } { ptr @tag.str.475, i64 9 }, { ptr, i64 } { ptr @tag.str.476, i64 9 }, { ptr, i64 } { ptr @tag.str.477, i64 15 }, { ptr, i64 } { ptr @tag.str.478, i64 14 }, { ptr, i64 } { ptr @tag.str.479, i64 14 }, { ptr, i64 } { ptr @tag.str.480, i64 11 }, { ptr, i64 } { ptr @tag.str.481, i64 12 }, { ptr, i64 } { ptr @tag.str.482, i64 15 }, { ptr, i64 } { ptr @tag.str.483, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.83 = private constant [5 x i8] c"bool\00" -@tn.str.84 = private constant [3 x i8] c"s8\00" -@tn.str.85 = private constant [4 x i8] c"s16\00" -@tn.str.86 = private constant [4 x i8] c"s32\00" -@tn.str.87 = private constant [4 x i8] c"s64\00" -@tn.str.88 = private constant [3 x i8] c"u8\00" -@tn.str.89 = private constant [4 x i8] c"u16\00" -@tn.str.90 = private constant [4 x i8] c"u32\00" -@tn.str.91 = private constant [4 x i8] c"u64\00" -@tn.str.92 = private constant [4 x i8] c"f32\00" -@tn.str.93 = private constant [4 x i8] c"f64\00" -@tn.str.94 = private constant [7 x i8] c"string\00" -@tn.str.95 = private constant [4 x i8] c"Any\00" -@tn.str.96 = private constant [9 x i8] c"noreturn\00" -@tn.str.97 = private constant [6 x i8] c"isize\00" -@tn.str.98 = private constant [6 x i8] c"usize\00" -@tn.str.99 = private constant [5 x i8] c"void\00" -@tn.str.100 = private constant [6 x i8] c"*void\00" -@tn.str.101 = private constant [16 x i8] c"Source_Location\00" -@tn.str.102 = private constant [11 x i8] c"CAllocator\00" -@tn.str.103 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.104 = private constant [4 x i8] c"GPA\00" -@tn.str.105 = private constant [5 x i8] c"*GPA\00" -@tn.str.106 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.107 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.108 = private constant [10 x i8] c"Allocator\00" -@tn.str.109 = private constant [6 x i8] c"Arena\00" -@tn.str.110 = private constant [7 x i8] c"*Arena\00" -@tn.str.111 = private constant [6 x i8] c"[*]u8\00" -@tn.str.112 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.113 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.114 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.115 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.116 = private constant [8 x i8] c"Context\00" -@tn.str.117 = private constant [7 x i8] c"[4]s64\00" -@tn.str.118 = private constant [9 x i8] c"[]string\00" -@tn.str.119 = private constant [8 x i8] c"[16]f32\00" -@tn.str.120 = private constant [5 x i8] c"Mat4\00" -@tn.str.121 = private constant [5 x i8] c"Vec2\00" -@tn.str.122 = private constant [16 x i8] c"OperatingSystem\00" -@tn.str.123 = private constant [13 x i8] c"Architecture\00" -@tn.str.124 = private constant [13 x i8] c"BuildOptions\00" -@tn.str.125 = private constant [11 x i8] c"() -> bool\00" -@tn.str.126 = private constant [6 x i8] c"Point\00" -@tn.str.127 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.128 = private constant [5 x i8] c"*s64\00" -@tn.str.129 = private constant [7 x i8] c"**void\00" -@tn.str.130 = private constant [8 x i8] c"*string\00" -@tn.str.131 = private constant [6 x i8] c"[]Any\00" -@tn.str.132 = private constant [5 x i8] c"*Any\00" -@tn.str.133 = private constant [7 x i8] c"*[]Any\00" -@tn.str.134 = private constant [4 x i8] c"*u8\00" -@tn.str.135 = private constant [6 x i8] c"*bool\00" -@tn.str.136 = private constant [7 x i8] c"*Point\00" -@tn.str.137 = private constant [5 x i8] c"*s32\00" -@tn.str.138 = private constant [7 x i8] c"[1]Any\00" -@tn.str.139 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.140 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.141 = private constant [5 x i8] c"*f64\00" -@tn.str.142 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.143 = private constant [11 x i8] c"*Allocator\00" -@tn.str.144 = private constant [9 x i8] c"*Context\00" -@tn.str.145 = private constant [6 x i8] c"*Mat4\00" -@tn.str.146 = private constant [6 x i8] c"*Vec2\00" -@tn.str.147 = private constant [14 x i8] c"*BuildOptions\00" -@tn.str.148 = private constant [17 x i8] c"*OperatingSystem\00" -@tn.str.149 = private constant [14 x i8] c"*Architecture\00" -@tn.str.150 = private constant [9 x i8] c"*[16]f32\00" -@tn.str.151 = private constant [10 x i8] c"*[]string\00" -@tn.str.152 = private constant [6 x i8] c"**GPA\00" -@tn.str.153 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.154 = private constant [8 x i8] c"**Arena\00" -@tn.str.155 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.156 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.157 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.158 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.159 = private constant [6 x i8] c"**s64\00" -@tn.str.160 = private constant [8 x i8] c"***void\00" -@tn.str.161 = private constant [9 x i8] c"**string\00" -@tn.str.162 = private constant [6 x i8] c"**Any\00" -@tn.str.163 = private constant [8 x i8] c"**[]Any\00" -@tn.str.164 = private constant [5 x i8] c"**u8\00" -@tn.str.165 = private constant [7 x i8] c"**bool\00" -@tn.str.166 = private constant [8 x i8] c"**Point\00" -@tn.str.167 = private constant [6 x i8] c"**s32\00" -@tn.str.168 = private constant [9 x i8] c"**[1]Any\00" -@__sx_type_names = private constant [87 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.83, i64 4 }, { ptr, i64 } { ptr @tn.str.84, i64 2 }, { ptr, i64 } { ptr @tn.str.85, i64 3 }, { ptr, i64 } { ptr @tn.str.86, i64 3 }, { ptr, i64 } { ptr @tn.str.87, i64 3 }, { ptr, i64 } { ptr @tn.str.88, i64 2 }, { ptr, i64 } { ptr @tn.str.89, i64 3 }, { ptr, i64 } { ptr @tn.str.90, i64 3 }, { ptr, i64 } { ptr @tn.str.91, i64 3 }, { ptr, i64 } { ptr @tn.str.92, i64 3 }, { ptr, i64 } { ptr @tn.str.93, i64 3 }, { ptr, i64 } { ptr @tn.str.94, i64 6 }, { ptr, i64 } { ptr @tn.str.95, i64 3 }, { ptr, i64 } { ptr @tn.str.96, i64 8 }, { ptr, i64 } { ptr @tn.str.97, i64 5 }, { ptr, i64 } { ptr @tn.str.98, i64 5 }, { ptr, i64 } { ptr @tn.str.99, i64 4 }, { ptr, i64 } { ptr @tn.str.100, i64 5 }, { ptr, i64 } { ptr @tn.str.101, i64 15 }, { ptr, i64 } { ptr @tn.str.102, i64 10 }, { ptr, i64 } { ptr @tn.str.103, i64 11 }, { ptr, i64 } { ptr @tn.str.104, i64 3 }, { ptr, i64 } { ptr @tn.str.105, i64 4 }, { ptr, i64 } { ptr @tn.str.106, i64 10 }, { ptr, i64 } { ptr @tn.str.107, i64 11 }, { ptr, i64 } { ptr @tn.str.108, i64 9 }, { ptr, i64 } { ptr @tn.str.109, i64 5 }, { ptr, i64 } { ptr @tn.str.110, i64 6 }, { ptr, i64 } { ptr @tn.str.111, i64 5 }, { ptr, i64 } { ptr @tn.str.112, i64 8 }, { ptr, i64 } { ptr @tn.str.113, i64 9 }, { ptr, i64 } { ptr @tn.str.114, i64 17 }, { ptr, i64 } { ptr @tn.str.115, i64 18 }, { ptr, i64 } { ptr @tn.str.116, i64 7 }, { ptr, i64 } { ptr @tn.str.117, i64 6 }, { ptr, i64 } { ptr @tn.str.118, i64 8 }, { ptr, i64 } { ptr @tn.str.119, i64 7 }, { ptr, i64 } { ptr @tn.str.120, i64 4 }, { ptr, i64 } { ptr @tn.str.121, i64 4 }, { ptr, i64 } { ptr @tn.str.122, i64 15 }, { ptr, i64 } { ptr @tn.str.123, i64 12 }, { ptr, i64 } { ptr @tn.str.124, i64 12 }, { ptr, i64 } { ptr @tn.str.125, i64 10 }, { ptr, i64 } { ptr @tn.str.126, i64 5 }, { ptr, i64 } { ptr @tn.str.127, i64 12 }, { ptr, i64 } { ptr @tn.str.128, i64 4 }, { ptr, i64 } { ptr @tn.str.129, i64 6 }, { ptr, i64 } { ptr @tn.str.130, i64 7 }, { ptr, i64 } { ptr @tn.str.131, i64 5 }, { ptr, i64 } { ptr @tn.str.132, i64 4 }, { ptr, i64 } { ptr @tn.str.133, i64 6 }, { ptr, i64 } { ptr @tn.str.134, i64 3 }, { ptr, i64 } { ptr @tn.str.135, i64 5 }, { ptr, i64 } { ptr @tn.str.136, i64 6 }, { ptr, i64 } { ptr @tn.str.137, i64 4 }, { ptr, i64 } { ptr @tn.str.138, i64 6 }, { ptr, i64 } { ptr @tn.str.139, i64 7 }, { ptr, i64 } { ptr @tn.str.140, i64 7 }, { ptr, i64 } { ptr @tn.str.141, i64 4 }, { ptr, i64 } { ptr @tn.str.142, i64 16 }, { ptr, i64 } { ptr @tn.str.143, i64 10 }, { ptr, i64 } { ptr @tn.str.144, i64 8 }, { ptr, i64 } { ptr @tn.str.145, i64 5 }, { ptr, i64 } { ptr @tn.str.146, i64 5 }, { ptr, i64 } { ptr @tn.str.147, i64 13 }, { ptr, i64 } { ptr @tn.str.148, i64 16 }, { ptr, i64 } { ptr @tn.str.149, i64 13 }, { ptr, i64 } { ptr @tn.str.150, i64 8 }, { ptr, i64 } { ptr @tn.str.151, i64 9 }, { ptr, i64 } { ptr @tn.str.152, i64 5 }, { ptr, i64 } { ptr @tn.str.153, i64 12 }, { ptr, i64 } { ptr @tn.str.154, i64 7 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 10 }, { ptr, i64 } { ptr @tn.str.157, i64 19 }, { ptr, i64 } { ptr @tn.str.158, i64 13 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 7 }, { ptr, i64 } { ptr @tn.str.161, i64 8 }, { ptr, i64 } { ptr @tn.str.162, i64 5 }, { ptr, i64 } { ptr @tn.str.163, i64 7 }, { ptr, i64 } { ptr @tn.str.164, i64 4 }, { ptr, i64 } { ptr @tn.str.165, i64 6 }, { ptr, i64 } { ptr @tn.str.166, i64 7 }, { ptr, i64 } { ptr @tn.str.167, i64 5 }, { ptr, i64 } { ptr @tn.str.168, i64 8 }] -@str.169 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.170 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.171 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.172 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.173 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.174 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.175 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.176 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.177 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.178 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.179 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.180 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.181 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.182 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.183 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.184 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.185 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.186 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.187 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.188 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.189 = private unnamed_addr constant [30 x i8] c"=== 20. UFCS Return Type ===\0A\00", align 1 -@str.190 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.191 = private unnamed_addr constant [30 x i8] c"=== 20. UFCS Return Type ===\0A\00", align 1 -@str.192 = private unnamed_addr constant [12 x i8] c"direct: {}\0A\00", align 1 -@str.193 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.194 = private unnamed_addr constant [12 x i8] c"direct: {}\0A\00", align 1 -@str.195 = private unnamed_addr constant [10 x i8] c"ufcs: {}\0A\00", align 1 -@str.196 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.197 = private unnamed_addr constant [10 x i8] c"ufcs: {}\0A\00", align 1 -@str.198 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.199 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.200 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.201 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.484 = private constant [5 x i8] c"bool\00" +@tn.str.485 = private constant [3 x i8] c"s8\00" +@tn.str.486 = private constant [4 x i8] c"s16\00" +@tn.str.487 = private constant [4 x i8] c"s32\00" +@tn.str.488 = private constant [4 x i8] c"s64\00" +@tn.str.489 = private constant [3 x i8] c"u8\00" +@tn.str.490 = private constant [4 x i8] c"u16\00" +@tn.str.491 = private constant [4 x i8] c"u32\00" +@tn.str.492 = private constant [4 x i8] c"u64\00" +@tn.str.493 = private constant [4 x i8] c"f32\00" +@tn.str.494 = private constant [4 x i8] c"f64\00" +@tn.str.495 = private constant [7 x i8] c"string\00" +@tn.str.496 = private constant [4 x i8] c"Any\00" +@tn.str.497 = private constant [9 x i8] c"noreturn\00" +@tn.str.498 = private constant [6 x i8] c"isize\00" +@tn.str.499 = private constant [6 x i8] c"usize\00" +@tn.str.500 = private constant [5 x i8] c"void\00" +@tn.str.501 = private constant [6 x i8] c"*void\00" +@tn.str.502 = private constant [16 x i8] c"Source_Location\00" +@tn.str.503 = private constant [11 x i8] c"CAllocator\00" +@tn.str.504 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.505 = private constant [4 x i8] c"GPA\00" +@tn.str.506 = private constant [5 x i8] c"*GPA\00" +@tn.str.507 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.508 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.509 = private constant [10 x i8] c"Allocator\00" +@tn.str.510 = private constant [6 x i8] c"Arena\00" +@tn.str.511 = private constant [7 x i8] c"*Arena\00" +@tn.str.512 = private constant [6 x i8] c"[*]u8\00" +@tn.str.513 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.514 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.515 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.516 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.517 = private constant [8 x i8] c"Context\00" +@tn.str.518 = private constant [7 x i8] c"[4]s64\00" +@tn.str.519 = private constant [9 x i8] c"[]string\00" +@tn.str.520 = private constant [9 x i8] c"OpenMode\00" +@tn.str.521 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.522 = private constant [5 x i8] c"File\00" +@tn.str.523 = private constant [6 x i8] c"*File\00" +@tn.str.524 = private constant [6 x i8] c"?File\00" +@tn.str.525 = private constant [8 x i8] c"?string\00" +@tn.str.526 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.527 = private constant [4 x i8] c"*u8\00" +@tn.str.528 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.529 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.530 = private constant [5 x i8] c"*s32\00" +@tn.str.531 = private constant [9 x i8] c"SockAddr\00" +@tn.str.532 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.533 = private constant [5 x i8] c"*u32\00" +@tn.str.534 = private constant [10 x i8] c"JsonError\00" +@tn.str.535 = private constant [6 x i8] c"Array\00" +@tn.str.536 = private constant [7 x i8] c"Object\00" +@tn.str.537 = private constant [6 x i8] c"Value\00" +@tn.str.538 = private constant [7 x i8] c"Member\00" +@tn.str.539 = private constant [9 x i8] c"[*]Value\00" +@tn.str.540 = private constant [7 x i8] c"*Array\00" +@tn.str.541 = private constant [10 x i8] c"[*]Member\00" +@tn.str.542 = private constant [8 x i8] c"*Object\00" +@tn.str.543 = private constant [5 x i8] c"[]u8\00" +@tn.str.544 = private constant [5 x i8] c"Sink\00" +@tn.str.545 = private constant [6 x i8] c"*Sink\00" +@tn.str.546 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.547 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.548 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.549 = private constant [7 x i8] c"Parser\00" +@tn.str.550 = private constant [8 x i8] c"*Parser\00" +@tn.str.551 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.552 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.553 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.554 = private constant [13 x i8] c"Architecture\00" +@tn.str.555 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.556 = private constant [11 x i8] c"() -> bool\00" +@tn.str.557 = private constant [5 x i8] c"*s64\00" +@tn.str.558 = private constant [9 x i8] c"CliError\00" +@tn.str.559 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.560 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.561 = private constant [8 x i8] c"Command\00" +@tn.str.562 = private constant [10 x i8] c"FlagValue\00" +@tn.str.563 = private constant [5 x i8] c"Diag\00" +@tn.str.564 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.565 = private constant [7 x i8] c"Parsed\00" +@tn.str.566 = private constant [8 x i8] c"*Parsed\00" +@tn.str.567 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.568 = private constant [10 x i8] c"[]Command\00" +@tn.str.569 = private constant [6 x i8] c"*Diag\00" +@tn.str.570 = private constant [7 x i8] c"[8]s64\00" +@tn.str.571 = private constant [7 x i8] c"[64]u8\00" +@tn.str.572 = private constant [7 x i8] c"Sha256\00" +@tn.str.573 = private constant [8 x i8] c"*Sha256\00" +@tn.str.574 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.575 = private constant [8 x i8] c"[64]s64\00" +@tn.str.576 = private constant [8 x i8] c"[16]f32\00" +@tn.str.577 = private constant [5 x i8] c"Mat4\00" +@tn.str.578 = private constant [5 x i8] c"Vec2\00" +@tn.str.579 = private constant [6 x i8] c"Point\00" +@tn.str.580 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.581 = private constant [7 x i8] c"**void\00" +@tn.str.582 = private constant [8 x i8] c"*string\00" +@tn.str.583 = private constant [6 x i8] c"[]Any\00" +@tn.str.584 = private constant [5 x i8] c"*Any\00" +@tn.str.585 = private constant [7 x i8] c"*[]Any\00" +@tn.str.586 = private constant [6 x i8] c"*bool\00" +@tn.str.587 = private constant [7 x i8] c"*Point\00" +@tn.str.588 = private constant [7 x i8] c"[1]Any\00" +@tn.str.589 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.590 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.591 = private constant [5 x i8] c"*f64\00" +@tn.str.592 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.593 = private constant [11 x i8] c"*Allocator\00" +@tn.str.594 = private constant [9 x i8] c"*Context\00" +@tn.str.595 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.596 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.597 = private constant [8 x i8] c"*Member\00" +@tn.str.598 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.599 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.600 = private constant [9 x i8] c"*Command\00" +@tn.str.601 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.602 = private constant [6 x i8] c"*Mat4\00" +@tn.str.603 = private constant [6 x i8] c"*Vec2\00" +@tn.str.604 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.605 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.606 = private constant [7 x i8] c"*Value\00" +@tn.str.607 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.608 = private constant [14 x i8] c"*Architecture\00" +@tn.str.609 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.610 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.611 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.612 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.613 = private constant [9 x i8] c"*[16]f32\00" +@tn.str.614 = private constant [10 x i8] c"*[]string\00" +@tn.str.615 = private constant [6 x i8] c"*[]u8\00" +@tn.str.616 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.617 = private constant [11 x i8] c"*[]Command\00" +@tn.str.618 = private constant [6 x i8] c"**GPA\00" +@tn.str.619 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.620 = private constant [8 x i8] c"**Arena\00" +@tn.str.621 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.622 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.623 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.624 = private constant [7 x i8] c"**File\00" +@tn.str.625 = private constant [5 x i8] c"**u8\00" +@tn.str.626 = private constant [6 x i8] c"**s32\00" +@tn.str.627 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.628 = private constant [6 x i8] c"**u32\00" +@tn.str.629 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.630 = private constant [8 x i8] c"**Array\00" +@tn.str.631 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.632 = private constant [9 x i8] c"**Object\00" +@tn.str.633 = private constant [7 x i8] c"**Sink\00" +@tn.str.634 = private constant [9 x i8] c"**Parser\00" +@tn.str.635 = private constant [6 x i8] c"**s64\00" +@tn.str.636 = private constant [9 x i8] c"**Parsed\00" +@tn.str.637 = private constant [7 x i8] c"**Diag\00" +@tn.str.638 = private constant [9 x i8] c"**Sha256\00" +@tn.str.639 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.640 = private constant [8 x i8] c"***void\00" +@tn.str.641 = private constant [9 x i8] c"**string\00" +@tn.str.642 = private constant [6 x i8] c"**Any\00" +@tn.str.643 = private constant [8 x i8] c"**[]Any\00" +@tn.str.644 = private constant [7 x i8] c"**bool\00" +@tn.str.645 = private constant [8 x i8] c"**Point\00" +@tn.str.646 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.647 = private constant [7 x i8] c"*?File\00" +@tn.str.648 = private constant [9 x i8] c"*?string\00" +@tn.str.649 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.650 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [168 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.484, i64 4 }, { ptr, i64 } { ptr @tn.str.485, i64 2 }, { ptr, i64 } { ptr @tn.str.486, i64 3 }, { ptr, i64 } { ptr @tn.str.487, i64 3 }, { ptr, i64 } { ptr @tn.str.488, i64 3 }, { ptr, i64 } { ptr @tn.str.489, i64 2 }, { ptr, i64 } { ptr @tn.str.490, i64 3 }, { ptr, i64 } { ptr @tn.str.491, i64 3 }, { ptr, i64 } { ptr @tn.str.492, i64 3 }, { ptr, i64 } { ptr @tn.str.493, i64 3 }, { ptr, i64 } { ptr @tn.str.494, i64 3 }, { ptr, i64 } { ptr @tn.str.495, i64 6 }, { ptr, i64 } { ptr @tn.str.496, i64 3 }, { ptr, i64 } { ptr @tn.str.497, i64 8 }, { ptr, i64 } { ptr @tn.str.498, i64 5 }, { ptr, i64 } { ptr @tn.str.499, i64 5 }, { ptr, i64 } { ptr @tn.str.500, i64 4 }, { ptr, i64 } { ptr @tn.str.501, i64 5 }, { ptr, i64 } { ptr @tn.str.502, i64 15 }, { ptr, i64 } { ptr @tn.str.503, i64 10 }, { ptr, i64 } { ptr @tn.str.504, i64 11 }, { ptr, i64 } { ptr @tn.str.505, i64 3 }, { ptr, i64 } { ptr @tn.str.506, i64 4 }, { ptr, i64 } { ptr @tn.str.507, i64 10 }, { ptr, i64 } { ptr @tn.str.508, i64 11 }, { ptr, i64 } { ptr @tn.str.509, i64 9 }, { ptr, i64 } { ptr @tn.str.510, i64 5 }, { ptr, i64 } { ptr @tn.str.511, i64 6 }, { ptr, i64 } { ptr @tn.str.512, i64 5 }, { ptr, i64 } { ptr @tn.str.513, i64 8 }, { ptr, i64 } { ptr @tn.str.514, i64 9 }, { ptr, i64 } { ptr @tn.str.515, i64 17 }, { ptr, i64 } { ptr @tn.str.516, i64 18 }, { ptr, i64 } { ptr @tn.str.517, i64 7 }, { ptr, i64 } { ptr @tn.str.518, i64 6 }, { ptr, i64 } { ptr @tn.str.519, i64 8 }, { ptr, i64 } { ptr @tn.str.520, i64 8 }, { ptr, i64 } { ptr @tn.str.521, i64 8 }, { ptr, i64 } { ptr @tn.str.522, i64 4 }, { ptr, i64 } { ptr @tn.str.523, i64 5 }, { ptr, i64 } { ptr @tn.str.524, i64 5 }, { ptr, i64 } { ptr @tn.str.525, i64 7 }, { ptr, i64 } { ptr @tn.str.526, i64 10 }, { ptr, i64 } { ptr @tn.str.527, i64 3 }, { ptr, i64 } { ptr @tn.str.528, i64 13 }, { ptr, i64 } { ptr @tn.str.529, i64 14 }, { ptr, i64 } { ptr @tn.str.530, i64 4 }, { ptr, i64 } { ptr @tn.str.531, i64 8 }, { ptr, i64 } { ptr @tn.str.532, i64 9 }, { ptr, i64 } { ptr @tn.str.533, i64 4 }, { ptr, i64 } { ptr @tn.str.534, i64 9 }, { ptr, i64 } { ptr @tn.str.535, i64 5 }, { ptr, i64 } { ptr @tn.str.536, i64 6 }, { ptr, i64 } { ptr @tn.str.537, i64 5 }, { ptr, i64 } { ptr @tn.str.538, i64 6 }, { ptr, i64 } { ptr @tn.str.539, i64 8 }, { ptr, i64 } { ptr @tn.str.540, i64 6 }, { ptr, i64 } { ptr @tn.str.541, i64 9 }, { ptr, i64 } { ptr @tn.str.542, i64 7 }, { ptr, i64 } { ptr @tn.str.543, i64 4 }, { ptr, i64 } { ptr @tn.str.544, i64 4 }, { ptr, i64 } { ptr @tn.str.545, i64 5 }, { ptr, i64 } { ptr @tn.str.546, i64 16 }, { ptr, i64 } { ptr @tn.str.547, i64 14 }, { ptr, i64 } { ptr @tn.str.548, i64 21 }, { ptr, i64 } { ptr @tn.str.549, i64 6 }, { ptr, i64 } { ptr @tn.str.550, i64 7 }, { ptr, i64 } { ptr @tn.str.551, i64 24 }, { ptr, i64 } { ptr @tn.str.552, i64 23 }, { ptr, i64 } { ptr @tn.str.553, i64 15 }, { ptr, i64 } { ptr @tn.str.554, i64 12 }, { ptr, i64 } { ptr @tn.str.555, i64 12 }, { ptr, i64 } { ptr @tn.str.556, i64 10 }, { ptr, i64 } { ptr @tn.str.557, i64 4 }, { ptr, i64 } { ptr @tn.str.558, i64 8 }, { ptr, i64 } { ptr @tn.str.559, i64 8 }, { ptr, i64 } { ptr @tn.str.560, i64 10 }, { ptr, i64 } { ptr @tn.str.561, i64 7 }, { ptr, i64 } { ptr @tn.str.562, i64 9 }, { ptr, i64 } { ptr @tn.str.563, i64 4 }, { ptr, i64 } { ptr @tn.str.564, i64 13 }, { ptr, i64 } { ptr @tn.str.565, i64 6 }, { ptr, i64 } { ptr @tn.str.566, i64 7 }, { ptr, i64 } { ptr @tn.str.567, i64 18 }, { ptr, i64 } { ptr @tn.str.568, i64 9 }, { ptr, i64 } { ptr @tn.str.569, i64 5 }, { ptr, i64 } { ptr @tn.str.570, i64 6 }, { ptr, i64 } { ptr @tn.str.571, i64 6 }, { ptr, i64 } { ptr @tn.str.572, i64 6 }, { ptr, i64 } { ptr @tn.str.573, i64 7 }, { ptr, i64 } { ptr @tn.str.574, i64 7 }, { ptr, i64 } { ptr @tn.str.575, i64 7 }, { ptr, i64 } { ptr @tn.str.576, i64 7 }, { ptr, i64 } { ptr @tn.str.577, i64 4 }, { ptr, i64 } { ptr @tn.str.578, i64 4 }, { ptr, i64 } { ptr @tn.str.579, i64 5 }, { ptr, i64 } { ptr @tn.str.580, i64 12 }, { ptr, i64 } { ptr @tn.str.581, i64 6 }, { ptr, i64 } { ptr @tn.str.582, i64 7 }, { ptr, i64 } { ptr @tn.str.583, i64 5 }, { ptr, i64 } { ptr @tn.str.584, i64 4 }, { ptr, i64 } { ptr @tn.str.585, i64 6 }, { ptr, i64 } { ptr @tn.str.586, i64 5 }, { ptr, i64 } { ptr @tn.str.587, i64 6 }, { ptr, i64 } { ptr @tn.str.588, i64 6 }, { ptr, i64 } { ptr @tn.str.589, i64 7 }, { ptr, i64 } { ptr @tn.str.590, i64 7 }, { ptr, i64 } { ptr @tn.str.591, i64 4 }, { ptr, i64 } { ptr @tn.str.592, i64 16 }, { ptr, i64 } { ptr @tn.str.593, i64 10 }, { ptr, i64 } { ptr @tn.str.594, i64 8 }, { ptr, i64 } { ptr @tn.str.595, i64 11 }, { ptr, i64 } { ptr @tn.str.596, i64 14 }, { ptr, i64 } { ptr @tn.str.597, i64 7 }, { ptr, i64 } { ptr @tn.str.598, i64 13 }, { ptr, i64 } { ptr @tn.str.599, i64 9 }, { ptr, i64 } { ptr @tn.str.600, i64 8 }, { ptr, i64 } { ptr @tn.str.601, i64 10 }, { ptr, i64 } { ptr @tn.str.602, i64 5 }, { ptr, i64 } { ptr @tn.str.603, i64 5 }, { ptr, i64 } { ptr @tn.str.604, i64 9 }, { ptr, i64 } { ptr @tn.str.605, i64 9 }, { ptr, i64 } { ptr @tn.str.606, i64 6 }, { ptr, i64 } { ptr @tn.str.607, i64 16 }, { ptr, i64 } { ptr @tn.str.608, i64 13 }, { ptr, i64 } { ptr @tn.str.609, i64 14 }, { ptr, i64 } { ptr @tn.str.610, i64 7 }, { ptr, i64 } { ptr @tn.str.611, i64 7 }, { ptr, i64 } { ptr @tn.str.612, i64 8 }, { ptr, i64 } { ptr @tn.str.613, i64 8 }, { ptr, i64 } { ptr @tn.str.614, i64 9 }, { ptr, i64 } { ptr @tn.str.615, i64 5 }, { ptr, i64 } { ptr @tn.str.616, i64 11 }, { ptr, i64 } { ptr @tn.str.617, i64 10 }, { ptr, i64 } { ptr @tn.str.618, i64 5 }, { ptr, i64 } { ptr @tn.str.619, i64 12 }, { ptr, i64 } { ptr @tn.str.620, i64 7 }, { ptr, i64 } { ptr @tn.str.621, i64 6 }, { ptr, i64 } { ptr @tn.str.622, i64 10 }, { ptr, i64 } { ptr @tn.str.623, i64 19 }, { ptr, i64 } { ptr @tn.str.624, i64 6 }, { ptr, i64 } { ptr @tn.str.625, i64 4 }, { ptr, i64 } { ptr @tn.str.626, i64 5 }, { ptr, i64 } { ptr @tn.str.627, i64 10 }, { ptr, i64 } { ptr @tn.str.628, i64 5 }, { ptr, i64 } { ptr @tn.str.629, i64 9 }, { ptr, i64 } { ptr @tn.str.630, i64 7 }, { ptr, i64 } { ptr @tn.str.631, i64 10 }, { ptr, i64 } { ptr @tn.str.632, i64 8 }, { ptr, i64 } { ptr @tn.str.633, i64 6 }, { ptr, i64 } { ptr @tn.str.634, i64 8 }, { ptr, i64 } { ptr @tn.str.635, i64 5 }, { ptr, i64 } { ptr @tn.str.636, i64 8 }, { ptr, i64 } { ptr @tn.str.637, i64 6 }, { ptr, i64 } { ptr @tn.str.638, i64 8 }, { ptr, i64 } { ptr @tn.str.639, i64 13 }, { ptr, i64 } { ptr @tn.str.640, i64 7 }, { ptr, i64 } { ptr @tn.str.641, i64 8 }, { ptr, i64 } { ptr @tn.str.642, i64 5 }, { ptr, i64 } { ptr @tn.str.643, i64 7 }, { ptr, i64 } { ptr @tn.str.644, i64 6 }, { ptr, i64 } { ptr @tn.str.645, i64 7 }, { ptr, i64 } { ptr @tn.str.646, i64 8 }, { ptr, i64 } { ptr @tn.str.647, i64 6 }, { ptr, i64 } { ptr @tn.str.648, i64 8 }, { ptr, i64 } { ptr @tn.str.649, i64 15 }, { ptr, i64 } { ptr @tn.str.650, i64 8 }] +@str.651 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.652 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.653 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.654 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.655 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.656 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.657 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.658 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.659 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.660 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.661 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.662 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.663 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.664 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.665 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.666 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.667 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.668 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.669 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.670 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.671 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.672 = private unnamed_addr constant [30 x i8] c"=== 20. UFCS Return Type ===\0A\00", align 1 +@str.673 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.674 = private unnamed_addr constant [30 x i8] c"=== 20. UFCS Return Type ===\0A\00", align 1 +@str.675 = private unnamed_addr constant [12 x i8] c"direct: {}\0A\00", align 1 +@str.676 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.677 = private unnamed_addr constant [12 x i8] c"direct: {}\0A\00", align 1 +@str.678 = private unnamed_addr constant [10 x i8] c"ufcs: {}\0A\00", align 1 +@str.679 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.680 = private unnamed_addr constant [10 x i8] c"ufcs: {}\0A\00", align 1 +@str.681 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.682 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.683 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.684 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.202 = private constant [5 x i8] c"line\00" -@fld.str.203 = private constant [4 x i8] c"col\00" -@fld.str.204 = 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.202, i64 4 }, { ptr, i64 } { ptr @fld.str.203, i64 3 }, { ptr, i64 } { ptr @fld.str.204, i64 4 }] -@str.205 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.206 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.207 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.209 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.210 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.211 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.212 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.213 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.214 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.215 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.216 = private constant [12 x i8] c"alloc_count\00" -@field_names.217 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.216, i64 11 }] -@str.218 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.219 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.220 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.221 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.222 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.223 = private constant [5 x i8] c"next\00" -@fld.str.224 = private constant [4 x i8] c"cap\00" -@field_names.225 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.223, i64 4 }, { ptr, i64 } { ptr @fld.str.224, i64 3 }] -@str.226 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.227 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.228 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.229 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.230 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.231 = private constant [4 x i8] c"ctx\00" -@fld.str.232 = private constant [6 x i8] c"alloc\00" -@fld.str.233 = private constant [8 x i8] c"dealloc\00" -@field_names.234 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.231, i64 3 }, { ptr, i64 } { ptr @fld.str.232, i64 5 }, { ptr, i64 } { ptr @fld.str.233, i64 7 }] -@str.235 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.236 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.237 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.238 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.239 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.240 = private constant [6 x i8] c"first\00" -@fld.str.241 = private constant [10 x i8] c"end_index\00" -@fld.str.242 = private constant [7 x i8] c"parent\00" -@field_names.243 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.240, i64 5 }, { ptr, i64 } { ptr @fld.str.241, i64 9 }, { ptr, i64 } { ptr @fld.str.242, i64 6 }] -@str.244 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.245 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.246 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.247 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.248 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.249 = private constant [4 x i8] c"buf\00" -@fld.str.250 = private constant [4 x i8] c"len\00" -@fld.str.251 = private constant [4 x i8] c"pos\00" -@field_names.252 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.249, i64 3 }, { ptr, i64 } { ptr @fld.str.250, i64 3 }, { ptr, i64 } { ptr @fld.str.251, i64 3 }] -@str.253 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.254 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.255 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.256 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.257 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.258 = private constant [7 x i8] c"parent\00" -@fld.str.259 = private constant [12 x i8] c"alloc_count\00" -@fld.str.260 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.261 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.262 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.258, i64 6 }, { ptr, i64 } { ptr @fld.str.259, i64 11 }, { ptr, i64 } { ptr @fld.str.260, i64 13 }, { ptr, i64 } { ptr @fld.str.261, i64 17 }] -@str.263 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.264 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.265 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.266 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.267 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.268 = private constant [10 x i8] c"allocator\00" -@fld.str.269 = private constant [5 x i8] c"data\00" -@field_names.270 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.268, i64 9 }, { ptr, i64 } { ptr @fld.str.269, i64 4 }] -@str.271 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.272 = private unnamed_addr constant [5 x i8] c"Mat4\00", align 1 -@str.273 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.274 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.275 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.276 = private constant [5 x i8] c"data\00" -@field_names.277 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.276, i64 4 }] -@str.278 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.279 = private unnamed_addr constant [5 x i8] c"Vec2\00", align 1 -@str.280 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.281 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.282 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.283 = private constant [2 x i8] c"x\00" -@fld.str.284 = private constant [2 x i8] c"y\00" -@field_names.285 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.283, i64 1 }, { ptr, i64 } { ptr @fld.str.284, i64 1 }] -@str.286 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.287 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 -@str.288 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.289 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.290 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.291 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.292 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.293 = private unnamed_addr constant [6 x i8] c"Point\00", align 1 -@str.294 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.295 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.296 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.297 = private constant [2 x i8] c"x\00" -@fld.str.298 = private constant [2 x i8] c"y\00" -@field_names.299 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.297, i64 1 }, { ptr, i64 } { ptr @fld.str.298, i64 1 }] -@str.300 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.301 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.302 = private constant [6 x i8] c"macos\00" -@fld.str.303 = private constant [6 x i8] c"linux\00" -@fld.str.304 = private constant [8 x i8] c"windows\00" -@fld.str.305 = private constant [5 x i8] c"wasm\00" -@fld.str.306 = private constant [4 x i8] c"ios\00" -@fld.str.307 = private constant [8 x i8] c"android\00" -@fld.str.308 = private constant [8 x i8] c"unknown\00" -@field_names.309 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.302, i64 5 }, { ptr, i64 } { ptr @fld.str.303, i64 5 }, { ptr, i64 } { ptr @fld.str.304, i64 7 }, { ptr, i64 } { ptr @fld.str.305, i64 4 }, { ptr, i64 } { ptr @fld.str.306, i64 3 }, { ptr, i64 } { ptr @fld.str.307, i64 7 }, { ptr, i64 } { ptr @fld.str.308, i64 7 }] -@str.310 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.311 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.312 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.313 = private constant [8 x i8] c"aarch64\00" -@fld.str.314 = private constant [7 x i8] c"x86_64\00" -@fld.str.315 = private constant [7 x i8] c"wasm32\00" -@fld.str.316 = private constant [7 x i8] c"wasm64\00" -@fld.str.317 = private constant [8 x i8] c"unknown\00" -@field_names.318 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.313, i64 7 }, { ptr, i64 } { ptr @fld.str.314, i64 6 }, { ptr, i64 } { ptr @fld.str.315, i64 6 }, { ptr, i64 } { ptr @fld.str.316, i64 6 }, { ptr, i64 } { ptr @fld.str.317, i64 7 }] -@str.319 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.320 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.321 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.322 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.323 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.324 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.325 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.326 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.327 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.328 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.329 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.330 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.331 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.332 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.333 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.334 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.335 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.336 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.337 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.338 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.339 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.340 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.341 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.342 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.343 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.344 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.345 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.346 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.347 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.348 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.349 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.350 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.351 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.352 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.353 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.354 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.355 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.356 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.357 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.358 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.359 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.360 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.361 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.362 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.363 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.364 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.365 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.366 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.367 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.368 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.369 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.370 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.371 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.372 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.373 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.374 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.375 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.376 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.377 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.378 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.379 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.380 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.381 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.382 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.383 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.384 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.385 = private unnamed_addr constant [7 x i8] c"*Point\00", align 1 -@str.386 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.387 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.388 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.389 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.390 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.391 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.392 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.685 = private constant [5 x i8] c"line\00" +@fld.str.686 = private constant [4 x i8] c"col\00" +@fld.str.687 = 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.685, i64 4 }, { ptr, i64 } { ptr @fld.str.686, i64 3 }, { ptr, i64 } { ptr @fld.str.687, i64 4 }] +@str.688 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.689 = private unnamed_addr constant [11 x i8] c"CAllocator\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 +@field_names.693 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.694 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.695 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.696 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.697 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.698 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.699 = private constant [12 x i8] c"alloc_count\00" +@field_names.700 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.699, i64 11 }] +@str.701 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.702 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.703 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.704 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.705 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.706 = private constant [5 x i8] c"next\00" +@fld.str.707 = private constant [4 x i8] c"cap\00" +@field_names.708 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.706, i64 4 }, { ptr, i64 } { ptr @fld.str.707, i64 3 }] +@str.709 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.710 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.711 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.712 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.713 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.714 = private constant [4 x i8] c"ctx\00" +@fld.str.715 = private constant [6 x i8] c"alloc\00" +@fld.str.716 = private constant [8 x i8] c"dealloc\00" +@field_names.717 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.714, i64 3 }, { ptr, i64 } { ptr @fld.str.715, i64 5 }, { ptr, i64 } { ptr @fld.str.716, i64 7 }] +@str.718 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.719 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.720 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.721 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.722 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.723 = private constant [6 x i8] c"first\00" +@fld.str.724 = private constant [10 x i8] c"end_index\00" +@fld.str.725 = private constant [7 x i8] c"parent\00" +@field_names.726 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.723, i64 5 }, { ptr, i64 } { ptr @fld.str.724, i64 9 }, { ptr, i64 } { ptr @fld.str.725, i64 6 }] +@str.727 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.728 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.729 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.730 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.731 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.732 = private constant [4 x i8] c"buf\00" +@fld.str.733 = private constant [4 x i8] c"len\00" +@fld.str.734 = private constant [4 x i8] c"pos\00" +@field_names.735 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.732, i64 3 }, { ptr, i64 } { ptr @fld.str.733, i64 3 }, { ptr, i64 } { ptr @fld.str.734, i64 3 }] +@str.736 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.737 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.738 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.739 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.740 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.741 = private constant [7 x i8] c"parent\00" +@fld.str.742 = private constant [12 x i8] c"alloc_count\00" +@fld.str.743 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.744 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.745 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.741, i64 6 }, { ptr, i64 } { ptr @fld.str.742, i64 11 }, { ptr, i64 } { ptr @fld.str.743, i64 13 }, { ptr, i64 } { ptr @fld.str.744, i64 17 }] +@str.746 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.747 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.748 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.749 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.750 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.751 = private constant [10 x i8] c"allocator\00" +@fld.str.752 = private constant [5 x i8] c"data\00" +@field_names.753 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.751, i64 9 }, { ptr, i64 } { ptr @fld.str.752, i64 4 }] +@str.754 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.755 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.756 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.757 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.758 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.759 = private constant [3 x i8] c"fd\00" +@field_names.760 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.759, i64 2 }] +@str.761 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.762 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.763 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.764 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.765 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.766 = private constant [5 x i8] c"file\00" +@fld.str.767 = private constant [5 x i8] c"line\00" +@fld.str.768 = private constant [4 x i8] c"col\00" +@fld.str.769 = private constant [5 x i8] c"func\00" +@fld.str.770 = private constant [10 x i8] c"line_text\00" +@field_names.771 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.766, i64 4 }, { ptr, i64 } { ptr @fld.str.767, i64 4 }, { ptr, i64 } { ptr @fld.str.768, i64 3 }, { ptr, i64 } { ptr @fld.str.769, i64 4 }, { ptr, i64 } { ptr @fld.str.770, i64 9 }] +@str.772 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.773 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.774 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.775 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.776 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.777 = private constant [10 x i8] c"exit_code\00" +@fld.str.778 = private constant [7 x i8] c"stdout\00" +@field_names.779 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.777, i64 9 }, { ptr, i64 } { ptr @fld.str.778, i64 6 }] +@str.780 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.781 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.782 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.783 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.784 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.785 = private constant [8 x i8] c"sin_len\00" +@fld.str.786 = private constant [11 x i8] c"sin_family\00" +@fld.str.787 = private constant [9 x i8] c"sin_port\00" +@fld.str.788 = private constant [9 x i8] c"sin_addr\00" +@fld.str.789 = private constant [9 x i8] c"sin_zero\00" +@field_names.790 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.785, i64 7 }, { ptr, i64 } { ptr @fld.str.786, i64 10 }, { ptr, i64 } { ptr @fld.str.787, i64 8 }, { ptr, i64 } { ptr @fld.str.788, i64 8 }, { ptr, i64 } { ptr @fld.str.789, i64 8 }] +@str.791 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.792 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.793 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.794 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.795 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.796 = private constant [6 x i8] c"items\00" +@fld.str.797 = private constant [4 x i8] c"len\00" +@fld.str.798 = private constant [4 x i8] c"cap\00" +@field_names.799 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.796, i64 5 }, { ptr, i64 } { ptr @fld.str.797, i64 3 }, { ptr, i64 } { ptr @fld.str.798, i64 3 }] +@str.800 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.801 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.802 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.803 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.804 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.805 = private constant [6 x i8] c"items\00" +@fld.str.806 = private constant [4 x i8] c"len\00" +@fld.str.807 = private constant [4 x i8] c"cap\00" +@field_names.808 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.805, i64 5 }, { ptr, i64 } { ptr @fld.str.806, i64 3 }, { ptr, i64 } { ptr @fld.str.807, i64 3 }] +@str.809 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.810 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.811 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.812 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.813 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.814 = private constant [4 x i8] c"key\00" +@fld.str.815 = private constant [4 x i8] c"val\00" +@field_names.816 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.814, i64 3 }, { ptr, i64 } { ptr @fld.str.815, i64 3 }] +@str.817 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.818 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.819 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.820 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.821 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.822 = private constant [4 x i8] c"dst\00" +@fld.str.823 = private constant [4 x i8] c"pos\00" +@fld.str.824 = private constant [5 x i8] c"file\00" +@field_names.825 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.822, i64 3 }, { ptr, i64 } { ptr @fld.str.823, i64 3 }, { ptr, i64 } { ptr @fld.str.824, i64 4 }] +@str.826 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.827 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.828 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.829 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.830 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.831 = private constant [4 x i8] c"src\00" +@fld.str.832 = private constant [4 x i8] c"pos\00" +@fld.str.833 = private constant [6 x i8] c"alloc\00" +@field_names.834 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.831, i64 3 }, { ptr, i64 } { ptr @fld.str.832, i64 3 }, { ptr, i64 } { ptr @fld.str.833, i64 5 }] +@str.835 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.836 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.837 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.838 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.839 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.840 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.841 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.842 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.843 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.844 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.845 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.846 = private constant [5 x i8] c"name\00" +@fld.str.847 = private constant [12 x i8] c"takes_value\00" +@fld.str.848 = private constant [9 x i8] c"required\00" +@field_names.849 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.846, i64 4 }, { ptr, i64 } { ptr @fld.str.847, i64 11 }, { ptr, i64 } { ptr @fld.str.848, i64 8 }] +@str.850 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.851 = private unnamed_addr constant [8 x i8] c"Command\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 [6 x i8] c"group\00" +@fld.str.856 = private constant [8 x i8] c"command\00" +@fld.str.857 = private constant [6 x i8] c"flags\00" +@field_names.858 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.855, i64 5 }, { ptr, i64 } { ptr @fld.str.856, i64 7 }, { ptr, i64 } { ptr @fld.str.857, i64 5 }] +@str.859 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.860 = private unnamed_addr constant [10 x i8] c"FlagValue\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"set\00" +@fld.str.865 = private constant [6 x i8] c"value\00" +@field_names.866 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.864, i64 3 }, { ptr, i64 } { ptr @fld.str.865, i64 5 }] +@str.867 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.868 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.869 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.870 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.871 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.872 = private constant [6 x i8] c"index\00" +@fld.str.873 = private constant [6 x i8] c"token\00" +@field_names.874 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.872, i64 5 }, { ptr, i64 } { ptr @fld.str.873, i64 5 }] +@str.875 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.876 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.877 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.878 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.879 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.880 = private constant [6 x i8] c"group\00" +@fld.str.881 = private constant [8 x i8] c"command\00" +@fld.str.882 = private constant [10 x i8] c"cmd_index\00" +@fld.str.883 = private constant [5 x i8] c"json\00" +@fld.str.884 = private constant [5 x i8] c"rest\00" +@fld.str.885 = private constant [5 x i8] c"spec\00" +@fld.str.886 = private constant [7 x i8] c"values\00" +@field_names.887 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.880, i64 5 }, { ptr, i64 } { ptr @fld.str.881, i64 7 }, { ptr, i64 } { ptr @fld.str.882, i64 9 }, { ptr, i64 } { ptr @fld.str.883, i64 4 }, { ptr, i64 } { ptr @fld.str.884, i64 4 }, { ptr, i64 } { ptr @fld.str.885, i64 4 }, { ptr, i64 } { ptr @fld.str.886, i64 6 }] +@str.888 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.889 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.890 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.891 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.892 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.893 = private constant [2 x i8] c"h\00" +@fld.str.894 = private constant [4 x i8] c"buf\00" +@fld.str.895 = private constant [8 x i8] c"buf_len\00" +@fld.str.896 = private constant [10 x i8] c"total_len\00" +@field_names.897 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.893, i64 1 }, { ptr, i64 } { ptr @fld.str.894, i64 3 }, { ptr, i64 } { ptr @fld.str.895, i64 7 }, { ptr, i64 } { ptr @fld.str.896, i64 9 }] +@str.898 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.899 = private unnamed_addr constant [5 x i8] c"Mat4\00", align 1 +@str.900 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.901 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.902 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.903 = private constant [5 x i8] c"data\00" +@field_names.904 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.903, i64 4 }] +@str.905 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.906 = private unnamed_addr constant [5 x i8] c"Vec2\00", align 1 +@str.907 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.908 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.909 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.910 = private constant [2 x i8] c"x\00" +@fld.str.911 = private constant [2 x i8] c"y\00" +@field_names.912 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.910, i64 1 }, { ptr, i64 } { ptr @fld.str.911, i64 1 }] +@str.913 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.914 = private unnamed_addr constant [6 x i8] c"Point\00", align 1 +@str.915 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.916 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.917 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.918 = private constant [2 x i8] c"x\00" +@fld.str.919 = private constant [2 x i8] c"y\00" +@field_names.920 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.918, i64 1 }, { ptr, i64 } { ptr @fld.str.919, i64 1 }] +@str.921 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.922 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.923 = private constant [5 x i8] c"read\00" +@fld.str.924 = private constant [6 x i8] c"write\00" +@fld.str.925 = private constant [7 x i8] c"append\00" +@fld.str.926 = private constant [11 x i8] c"read_write\00" +@field_names.927 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.923, i64 4 }, { ptr, i64 } { ptr @fld.str.924, i64 5 }, { ptr, i64 } { ptr @fld.str.925, i64 6 }, { ptr, i64 } { ptr @fld.str.926, i64 10 }] +@str.928 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.929 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.930 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.931 = private constant [4 x i8] c"set\00" +@fld.str.932 = private constant [8 x i8] c"current\00" +@fld.str.933 = private constant [4 x i8] c"end\00" +@field_names.934 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.931, i64 3 }, { ptr, i64 } { ptr @fld.str.932, i64 7 }, { ptr, i64 } { ptr @fld.str.933, i64 3 }] +@str.935 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.936 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.937 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.938 = private constant [6 x i8] c"null_\00" +@fld.str.939 = private constant [6 x i8] c"bool_\00" +@fld.str.940 = private constant [5 x i8] c"int_\00" +@fld.str.941 = private constant [4 x i8] c"str\00" +@fld.str.942 = private constant [6 x i8] c"array\00" +@fld.str.943 = private constant [7 x i8] c"object\00" +@field_names.944 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.938, i64 5 }, { ptr, i64 } { ptr @fld.str.939, i64 5 }, { ptr, i64 } { ptr @fld.str.940, i64 4 }, { ptr, i64 } { ptr @fld.str.941, i64 3 }, { ptr, i64 } { ptr @fld.str.942, i64 5 }, { ptr, i64 } { ptr @fld.str.943, i64 6 }] +@str.945 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.946 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.947 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.948 = private constant [6 x i8] c"macos\00" +@fld.str.949 = private constant [6 x i8] c"linux\00" +@fld.str.950 = private constant [8 x i8] c"windows\00" +@fld.str.951 = private constant [5 x i8] c"wasm\00" +@fld.str.952 = private constant [4 x i8] c"ios\00" +@fld.str.953 = private constant [8 x i8] c"android\00" +@fld.str.954 = private constant [8 x i8] c"unknown\00" +@field_names.955 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.948, i64 5 }, { ptr, i64 } { ptr @fld.str.949, i64 5 }, { ptr, i64 } { ptr @fld.str.950, i64 7 }, { ptr, i64 } { ptr @fld.str.951, i64 4 }, { ptr, i64 } { ptr @fld.str.952, i64 3 }, { ptr, i64 } { ptr @fld.str.953, i64 7 }, { ptr, i64 } { ptr @fld.str.954, i64 7 }] +@str.956 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.957 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.958 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.959 = private constant [8 x i8] c"aarch64\00" +@fld.str.960 = private constant [7 x i8] c"x86_64\00" +@fld.str.961 = private constant [7 x i8] c"wasm32\00" +@fld.str.962 = private constant [7 x i8] c"wasm64\00" +@fld.str.963 = private constant [8 x i8] c"unknown\00" +@field_names.964 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.959, i64 7 }, { ptr, i64 } { ptr @fld.str.960, i64 6 }, { ptr, i64 } { ptr @fld.str.961, i64 6 }, { ptr, i64 } { ptr @fld.str.962, i64 6 }, { ptr, i64 } { ptr @fld.str.963, i64 7 }] +@str.965 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.966 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.967 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.968 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.969 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.970 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.971 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.972 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.973 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.974 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.975 = private unnamed_addr constant [3 x i8] c", \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 +@str.979 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.980 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.981 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.982 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.983 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.984 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.985 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.986 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.987 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.988 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.989 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.990 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.991 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.992 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.993 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.994 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.995 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.996 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.997 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.998 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.999 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1000 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1001 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1002 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1003 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1004 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.1005 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1006 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1007 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.1008 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1009 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1010 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.1011 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1012 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1013 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.1014 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1015 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1016 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.1017 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1018 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1019 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.1020 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1021 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1022 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.1023 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1024 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1025 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.1026 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1027 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1028 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.1029 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1030 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1031 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.1032 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1033 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1034 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.1035 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1036 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1037 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.1038 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1039 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1040 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.1041 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1042 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1043 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.1044 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1045 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1046 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.1047 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1048 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1049 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.1050 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1051 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1052 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.1053 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1054 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1055 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.1056 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1057 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1058 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.1059 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1060 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1061 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.1062 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1063 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1064 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.1065 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1066 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1067 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.1068 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1069 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1070 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.1071 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1072 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1073 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.1074 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1075 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1076 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.1077 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1078 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1079 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.1080 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1081 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1082 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.1083 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1084 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1085 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.1086 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1087 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1088 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.1089 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1090 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1091 = private unnamed_addr constant [7 x i8] c"*Point\00", align 1 +@str.1092 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1093 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1094 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.1095 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1096 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1097 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1098 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1099 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -556,7 +874,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.77, i64 1 } + ret { ptr, i64 } { ptr @str.465, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -683,7 +1001,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.78, i64 4 }, %if.then.78 ], [ { ptr @str.79, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.466, i64 4 }, %if.then.78 ], [ { ptr @str.467, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -852,38 +1170,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.242 + br label %while.hdr.395 -while.hdr.242: ; preds = %if.merge.247, %entry +while.hdr.395: ; preds = %if.merge.400, %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.243, label %while.exit.244 + br i1 %icmp, label %while.body.396, label %while.exit.397 -while.body.243: ; preds = %while.hdr.242 +while.body.396: ; preds = %while.hdr.395 %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.245, label %if.else.246 + br i1 %icmpN, label %if.then.398, label %if.else.399 -while.exit.244: ; preds = %while.hdr.242 +while.exit.397: ; preds = %while.hdr.395 ret void -if.then.245: ; preds = %while.body.243 +if.then.398: ; preds = %while.body.396 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.247 + br label %if.merge.400 -if.else.246: ; preds = %while.body.243 +if.else.399: ; preds = %while.body.396 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.247 + br label %if.merge.400 -if.merge.247: ; preds = %if.else.246, %if.then.245 - %bp = phi i64 [ %addN, %if.then.245 ], [ %addN, %if.else.246 ] +if.merge.400: ; preds = %if.else.399, %if.then.398 + %bp = phi i64 [ %addN, %if.then.398 ], [ %addN, %if.else.399 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -896,7 +1214,7 @@ if.merge.247: ; preds = %if.else.246, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.242 + br label %while.hdr.395 } ; Function Attrs: nounwind @@ -1014,12 +1332,12 @@ entry: 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.240, label %if.merge.241 + br i1 %icmp, label %if.then.393, label %if.merge.394 -if.then.240: ; preds = %entry - ret { ptr, i64 } { ptr @str.80, i64 1 } +if.then.393: ; preds = %entry + ret { ptr, i64 } { ptr @str.468, i64 1 } -if.merge.241: ; preds = %entry +if.merge.394: ; 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 @@ -1050,14 +1368,14 @@ if.merge.241: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.248 + br label %while.hdr.401 -while.hdr.248: ; preds = %if.merge.252, %if.merge.241 +while.hdr.401: ; preds = %if.merge.405, %if.merge.394 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.249, label %while.exit.250 + br i1 %icmpN, label %while.body.402, label %while.exit.403 -while.body.249: ; preds = %while.hdr.248 +while.body.402: ; preds = %while.hdr.401 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1065,9 +1383,9 @@ while.body.249: ; preds = %while.hdr.248 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.251, label %if.merge.252 + br i1 %icmpN, label %if.then.404, label %if.merge.405 -while.exit.250: ; preds = %if.then.251, %while.hdr.248 +while.exit.403: ; preds = %if.then.404, %while.hdr.401 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1075,14 +1393,14 @@ while.exit.250: ; preds = %if.then.251, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.251: ; preds = %while.body.249 - br label %while.exit.250 +if.then.404: ; preds = %while.body.402 + br label %while.exit.403 -if.merge.252: ; preds = %while.body.249 +if.merge.405: ; preds = %while.body.402 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.248 + br label %while.hdr.401 } ; Function Attrs: nounwind @@ -1160,12 +1478,14 @@ entry: %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.81, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.469, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1198,17 +1518,45 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 - i64 38, label %match.arm.43 i64 39, label %match.arm.43 - i64 42, label %match.arm.43 - i64 44, label %match.arm.43 - i64 40, label %match.arm.44 - i64 41, label %match.arm.44 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 94, label %match.arm.43 + i64 95, label %match.arm.43 + i64 96, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 37, label %match.arm.47 - i64 56, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 93, label %match.arm.47 + i64 105, label %match.arm.47 i64 36, label %match.arm.48 - i64 49, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 100, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1217,26 +1565,42 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 45, label %match.arm.49 - i64 46, label %match.arm.49 + i64 40, label %match.arm.49 + i64 44, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 + i64 49, label %match.arm.49 i64 50, label %match.arm.49 - i64 51, label %match.arm.49 - i64 52, label %match.arm.49 - i64 53, label %match.arm.49 - i64 54, label %match.arm.49 - i64 55, label %match.arm.49 + i64 56, label %match.arm.49 i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 97, label %match.arm.49 + i64 98, label %match.arm.49 + i64 99, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 103, label %match.arm.49 + i64 104, label %match.arm.49 + i64 106, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.216, %dispatch.merge.202, %dispatch.merge.182, %dispatch.merge.174, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.496, %dispatch.merge.357, %dispatch.merge.325, %dispatch.merge.281, %dispatch.merge.264, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.82, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.470, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1245,7 +1609,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [87 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [168 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1273,7 +1637,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1287,82 +1651,136 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 - i64 38, label %dispatch.case.105 - i64 39, label %dispatch.case.106 - i64 42, label %dispatch.case.107 - i64 44, label %dispatch.case.108 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 94, label %dispatch.case.121 + i64 95, label %dispatch.case.122 + i64 96, label %dispatch.case.123 ] -match.arm.44: ; preds = %entry, %entry +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.175 [ - i64 40, label %dispatch.case.176 - i64 41, label %dispatch.case.177 + switch i64 %ua.raw20, label %dispatch.default.265 [ + i64 37, label %dispatch.case.266 + i64 38, label %dispatch.case.267 + i64 54, label %dispatch.case.268 + i64 70, label %dispatch.case.269 + i64 71, label %dispatch.case.270 ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.183 [ - i64 35, label %dispatch.case.184 - i64 37, label %dispatch.case.185 - i64 56, label %dispatch.case.186 + switch i64 %ua.raw29, label %dispatch.default.282 [ + i64 35, label %dispatch.case.283 + i64 81, label %dispatch.case.284 + i64 87, label %dispatch.case.285 + i64 88, label %dispatch.case.286 + i64 92, label %dispatch.case.287 + i64 93, label %dispatch.case.288 + i64 105, label %dispatch.case.289 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.203 [ - i64 36, label %dispatch.case.204 - i64 49, label %dispatch.case.205 + switch i64 %ua.raw33, label %dispatch.default.326 [ + i64 36, label %dispatch.case.327 + i64 60, label %dispatch.case.328 + i64 77, label %dispatch.case.329 + i64 85, label %dispatch.case.330 + i64 100, label %dispatch.case.331 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw32 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw32, label %dispatch.default.217 [ - i64 18, label %dispatch.case.218 - i64 21, label %dispatch.case.219 - i64 23, label %dispatch.case.220 - i64 25, label %dispatch.case.221 - i64 28, label %dispatch.case.222 - i64 29, label %dispatch.case.223 - i64 31, label %dispatch.case.224 - i64 33, label %dispatch.case.225 - i64 45, label %dispatch.case.226 - i64 46, label %dispatch.case.227 - i64 47, label %dispatch.case.228 - i64 48, label %dispatch.case.229 - i64 50, label %dispatch.case.230 - i64 51, label %dispatch.case.231 - i64 52, label %dispatch.case.232 - i64 53, label %dispatch.case.233 - i64 54, label %dispatch.case.234 - i64 55, label %dispatch.case.235 - i64 57, label %dispatch.case.236 + switch i64 %ua.raw37, label %dispatch.default.358 [ + i64 18, label %dispatch.case.359 + i64 21, label %dispatch.case.360 + i64 23, label %dispatch.case.361 + i64 25, label %dispatch.case.362 + i64 28, label %dispatch.case.363 + i64 29, label %dispatch.case.364 + i64 31, label %dispatch.case.365 + i64 33, label %dispatch.case.366 + i64 40, label %dispatch.case.367 + i64 44, label %dispatch.case.368 + i64 47, label %dispatch.case.369 + i64 49, label %dispatch.case.370 + i64 50, label %dispatch.case.371 + i64 56, label %dispatch.case.372 + i64 57, label %dispatch.case.373 + i64 58, label %dispatch.case.374 + i64 59, label %dispatch.case.375 + i64 62, label %dispatch.case.376 + i64 67, label %dispatch.case.377 + i64 74, label %dispatch.case.378 + i64 83, label %dispatch.case.379 + i64 86, label %dispatch.case.380 + i64 90, label %dispatch.case.381 + i64 97, label %dispatch.case.382 + i64 98, label %dispatch.case.383 + i64 99, label %dispatch.case.384 + i64 101, label %dispatch.case.385 + i64 102, label %dispatch.case.386 + i64 103, label %dispatch.case.387 + i64 104, label %dispatch.case.388 + i64 106, label %dispatch.case.389 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.497 [ + i64 41, label %dispatch.case.498 + i64 42, label %dispatch.case.499 + i64 46, label %dispatch.case.500 + i64 91, label %dispatch.case.501 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag36 = extractvalue { i64, i64 } %loadN, 0 - %refl.val37 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype38 = icmp eq i64 %refl.tag36, 13 - %refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36 - %tn.gep = getelementptr inbounds [87 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [168 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1372,15 +1790,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw44 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1388,16 +1806,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw46 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw46 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw47 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1407,339 +1825,660 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.169, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.651, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load {}, ptr %ua.ptr56, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, ptr, ptr }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load69) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load { [16 x float] }, ptr %ua.ptr88, align 4 - %callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load89) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.106: ; preds = %match.arm.43 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load { float, float }, ptr %ua.ptr92, align 4 - %callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load93) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.107: ; preds = %match.arm.43 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load {}, ptr %ua.ptr96, align 1 - %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load97) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.108: ; preds = %match.arm.43 - %ua.raw99 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr100 = inttoptr i64 %ua.raw99 to ptr - %ua.load101 = load { i32, i32 }, ptr %ua.ptr100, align 4 - %callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load101) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.174: ; preds = %dispatch.case.177, %dispatch.case.176, %dispatch.default.175 +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { [16 x float] }, ptr %ua.ptr161, align 4 + %callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.122: ; preds = %match.arm.43 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load { float, float }, ptr %ua.ptr165, align 4 + %callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.123: ; preds = %match.arm.43 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load { i32, i32 }, ptr %ua.ptr169, align 4 + %callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load170) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.264: ; preds = %dispatch.case.270, %dispatch.case.269, %dispatch.case.268, %dispatch.case.267, %dispatch.case.266, %dispatch.default.265 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.175: ; preds = %match.arm.44 - store { ptr, i64 } { ptr @str.170, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.174 +dispatch.default.265: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.652, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.264 -dispatch.case.176: ; preds = %match.arm.44 - %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw104) +dispatch.case.266: ; preds = %match.arm.44 + %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw173) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.174 + br label %dispatch.merge.264 -dispatch.case.177: ; preds = %match.arm.44 - %ua.raw106 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw106) +dispatch.case.267: ; preds = %match.arm.44 + %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw175) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.174 + br label %dispatch.merge.264 -dispatch.merge.182: ; preds = %dispatch.case.186, %dispatch.case.185, %dispatch.case.184, %dispatch.default.183 +dispatch.case.268: ; preds = %match.arm.44 + %ua.raw177 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr178 = inttoptr i64 %ua.raw177 to ptr + %ua.load179 = load { i64, [24 x i8] }, ptr %ua.ptr178, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load179) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.264 + +dispatch.case.269: ; preds = %match.arm.44 + %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw181) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.264 + +dispatch.case.270: ; preds = %match.arm.44 + %ua.raw183 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw183) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.264 + +dispatch.merge.281: ; preds = %dispatch.case.289, %dispatch.case.288, %dispatch.case.287, %dispatch.case.286, %dispatch.case.285, %dispatch.case.284, %dispatch.case.283, %dispatch.default.282 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.183: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.171, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.182 +dispatch.default.282: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.653, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.281 -dispatch.case.184: ; preds = %match.arm.47 - %ua.raw109 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr110 = inttoptr i64 %ua.raw109 to ptr - %ua.load111 = load [4 x i64], ptr %ua.ptr110, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load111) +dispatch.case.283: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [4 x i64], ptr %ua.ptr187, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load188) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.182 + br label %dispatch.merge.281 -dispatch.case.185: ; preds = %match.arm.47 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr114 = inttoptr i64 %ua.raw113 to ptr - %ua.load115 = load [16 x float], ptr %ua.ptr114, align 4 - %callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load115) +dispatch.case.284: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load192) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.182 + br label %dispatch.merge.281 -dispatch.case.186: ; preds = %match.arm.47 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr118 = inttoptr i64 %ua.raw117 to ptr - %ua.load119 = load [1 x { i64, i64 }], ptr %ua.ptr118, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load119) +dispatch.case.285: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [8 x i64], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load196) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.182 + br label %dispatch.merge.281 -dispatch.merge.202: ; preds = %dispatch.case.205, %dispatch.case.204, %dispatch.default.203 +dispatch.case.286: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [64 x i8], ptr %ua.ptr199, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.281 + +dispatch.case.287: ; preds = %match.arm.47 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [64 x i64], ptr %ua.ptr203, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load204) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.281 + +dispatch.case.288: ; preds = %match.arm.47 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [16 x float], ptr %ua.ptr207, align 4 + %callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load208) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.281 + +dispatch.case.289: ; preds = %match.arm.47 + %ua.raw210 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr211 = inttoptr i64 %ua.raw210 to ptr + %ua.load212 = load [1 x { i64, i64 }], ptr %ua.ptr211, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load212) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.281 + +dispatch.merge.325: ; preds = %dispatch.case.331, %dispatch.case.330, %dispatch.case.329, %dispatch.case.328, %dispatch.case.327, %dispatch.default.326 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.203: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.172, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.202 +dispatch.default.326: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.654, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.325 -dispatch.case.204: ; preds = %match.arm.48 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr123 = inttoptr i64 %ua.raw122 to ptr - %ua.load124 = load { ptr, i64 }, ptr %ua.ptr123, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load124) +dispatch.case.327: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load217) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.202 + br label %dispatch.merge.325 -dispatch.case.205: ; preds = %match.arm.48 - %ua.raw126 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr127 = inttoptr i64 %ua.raw126 to ptr - %ua.load128 = load { ptr, i64 }, ptr %ua.ptr127, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load128) +dispatch.case.328: ; preds = %match.arm.48 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load221) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.202 + br label %dispatch.merge.325 -dispatch.merge.216: ; preds = %dispatch.case.236, %dispatch.case.235, %dispatch.case.234, %dispatch.case.233, %dispatch.case.232, %dispatch.case.231, %dispatch.case.230, %dispatch.case.229, %dispatch.case.228, %dispatch.case.227, %dispatch.case.226, %dispatch.case.225, %dispatch.case.224, %dispatch.case.223, %dispatch.case.222, %dispatch.case.221, %dispatch.case.220, %dispatch.case.219, %dispatch.case.218, %dispatch.default.217 +dispatch.case.329: ; preds = %match.arm.48 + %ua.raw223 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr224 = inttoptr i64 %ua.raw223 to ptr + %ua.load225 = load { ptr, i64 }, ptr %ua.ptr224, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load225) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.325 + +dispatch.case.330: ; preds = %match.arm.48 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.325 + +dispatch.case.331: ; preds = %match.arm.48 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr232 = inttoptr i64 %ua.raw231 to ptr + %ua.load233 = load { ptr, i64 }, ptr %ua.ptr232, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load233) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.325 + +dispatch.merge.357: ; preds = %dispatch.case.389, %dispatch.case.388, %dispatch.case.387, %dispatch.case.386, %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.default.358 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.217: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.173, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.216 +dispatch.default.358: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.655, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.357 -dispatch.case.218: ; preds = %match.arm.49 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw131 to ptr +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw236 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw236 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.219: ; preds = %match.arm.49 - %ua.raw133 = extractvalue { i64, i64 } %loadN, 1 - %iNp134 = inttoptr i64 %ua.raw133 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp134) +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw238 = extractvalue { i64, i64 } %loadN, 1 + %iNp239 = inttoptr i64 %ua.raw238 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp239) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.220: ; preds = %match.arm.49 - %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 - %iNp137 = inttoptr i64 %ua.raw136 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp137) +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw241 = extractvalue { i64, i64 } %loadN, 1 + %iNp242 = inttoptr i64 %ua.raw241 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp242) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.221: ; preds = %match.arm.49 - %ua.raw139 = extractvalue { i64, i64 } %loadN, 1 - %iNp140 = inttoptr i64 %ua.raw139 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp140) +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp245 = inttoptr i64 %ua.raw244 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp245) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.222: ; preds = %match.arm.49 - %ua.raw142 = extractvalue { i64, i64 } %loadN, 1 - %iNp143 = inttoptr i64 %ua.raw142 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp143) +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %iNp248 = inttoptr i64 %ua.raw247 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp248) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.223: ; preds = %match.arm.49 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp146) +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw250 = extractvalue { i64, i64 } %loadN, 1 + %iNp251 = inttoptr i64 %ua.raw250 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp251) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.224: ; preds = %match.arm.49 - %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp149) +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %iNp254 = inttoptr i64 %ua.raw253 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp254) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.225: ; preds = %match.arm.49 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp152) +dispatch.case.366: ; preds = %match.arm.49 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %iNp257 = inttoptr i64 %ua.raw256 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp257) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.226: ; preds = %match.arm.49 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp155) +dispatch.case.367: ; preds = %match.arm.49 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %iNp260 = inttoptr i64 %ua.raw259 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp260) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.227: ; preds = %match.arm.49 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp158) +dispatch.case.368: ; preds = %match.arm.49 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %iNp263 = inttoptr i64 %ua.raw262 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp263) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.228: ; preds = %match.arm.49 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp161) +dispatch.case.369: ; preds = %match.arm.49 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp266 = inttoptr i64 %ua.raw265 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp266) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.229: ; preds = %match.arm.49 - %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 - %iNp164 = inttoptr i64 %ua.raw163 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp164) +dispatch.case.370: ; preds = %match.arm.49 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %iNp269 = inttoptr i64 %ua.raw268 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp269) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.230: ; preds = %match.arm.49 - %ua.raw166 = extractvalue { i64, i64 } %loadN, 1 - %iNp167 = inttoptr i64 %ua.raw166 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp167) +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw271 = extractvalue { i64, i64 } %loadN, 1 + %iNp272 = inttoptr i64 %ua.raw271 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp272) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.231: ; preds = %match.arm.49 - %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 - %iNp170 = inttoptr i64 %ua.raw169 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp170) +dispatch.case.372: ; preds = %match.arm.49 + %ua.raw274 = extractvalue { i64, i64 } %loadN, 1 + %iNp275 = inttoptr i64 %ua.raw274 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp275) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.232: ; preds = %match.arm.49 - %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 - %iNp173 = inttoptr i64 %ua.raw172 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp173) +dispatch.case.373: ; preds = %match.arm.49 + %ua.raw277 = extractvalue { i64, i64 } %loadN, 1 + %iNp278 = inttoptr i64 %ua.raw277 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp278) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.233: ; preds = %match.arm.49 - %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 - %iNp176 = inttoptr i64 %ua.raw175 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp176) +dispatch.case.374: ; preds = %match.arm.49 + %ua.raw280 = extractvalue { i64, i64 } %loadN, 1 + %iNp281 = inttoptr i64 %ua.raw280 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp281) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.234: ; preds = %match.arm.49 - %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 - %iNp179 = inttoptr i64 %ua.raw178 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp179) +dispatch.case.375: ; preds = %match.arm.49 + %ua.raw283 = extractvalue { i64, i64 } %loadN, 1 + %iNp284 = inttoptr i64 %ua.raw283 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp284) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.235: ; preds = %match.arm.49 - %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 - %iNp182 = inttoptr i64 %ua.raw181 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp182) +dispatch.case.376: ; preds = %match.arm.49 + %ua.raw286 = extractvalue { i64, i64 } %loadN, 1 + %iNp287 = inttoptr i64 %ua.raw286 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp287) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 -dispatch.case.236: ; preds = %match.arm.49 - %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 - %iNp185 = inttoptr i64 %ua.raw184 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp185) +dispatch.case.377: ; preds = %match.arm.49 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp290) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.357 + +dispatch.case.378: ; preds = %match.arm.49 + %ua.raw292 = extractvalue { i64, i64 } %loadN, 1 + %iNp293 = inttoptr i64 %ua.raw292 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp293) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.379: ; preds = %match.arm.49 + %ua.raw295 = extractvalue { i64, i64 } %loadN, 1 + %iNp296 = inttoptr i64 %ua.raw295 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp296) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.380: ; preds = %match.arm.49 + %ua.raw298 = extractvalue { i64, i64 } %loadN, 1 + %iNp299 = inttoptr i64 %ua.raw298 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp299) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.381: ; preds = %match.arm.49 + %ua.raw301 = extractvalue { i64, i64 } %loadN, 1 + %iNp302 = inttoptr i64 %ua.raw301 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp302) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.382: ; preds = %match.arm.49 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp305) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.383: ; preds = %match.arm.49 + %ua.raw307 = extractvalue { i64, i64 } %loadN, 1 + %iNp308 = inttoptr i64 %ua.raw307 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp308) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.384: ; preds = %match.arm.49 + %ua.raw310 = extractvalue { i64, i64 } %loadN, 1 + %iNp311 = inttoptr i64 %ua.raw310 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp311) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.385: ; preds = %match.arm.49 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %iNp314 = inttoptr i64 %ua.raw313 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp314) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.386: ; preds = %match.arm.49 + %ua.raw316 = extractvalue { i64, i64 } %loadN, 1 + %iNp317 = inttoptr i64 %ua.raw316 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp317) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.387: ; preds = %match.arm.49 + %ua.raw319 = extractvalue { i64, i64 } %loadN, 1 + %iNp320 = inttoptr i64 %ua.raw319 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp320) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.388: ; preds = %match.arm.49 + %ua.raw322 = extractvalue { i64, i64 } %loadN, 1 + %iNp323 = inttoptr i64 %ua.raw322 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.case.389: ; preds = %match.arm.49 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %iNp326 = inttoptr i64 %ua.raw325 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp326) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.357 + +dispatch.merge.496: ; preds = %dispatch.case.501, %dispatch.case.500, %dispatch.case.499, %dispatch.case.498, %dispatch.default.497 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.497: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.656, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.496 + +dispatch.case.498: ; preds = %match.arm.50 + %ua.raw329 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr330 = inttoptr i64 %ua.raw329 to ptr + %ua.load331 = load { { i32 }, i1 }, ptr %ua.ptr330, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load331) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.496 + +dispatch.case.499: ; preds = %match.arm.50 + %ua.raw333 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr334 = inttoptr i64 %ua.raw333 to ptr + %ua.load335 = load { { ptr, i64 }, i1 }, ptr %ua.ptr334, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load335) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.496 + +dispatch.case.500: ; preds = %match.arm.50 + %ua.raw337 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr338 = inttoptr i64 %ua.raw337 to ptr + %ua.load339 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr338, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load339) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.496 + +dispatch.case.501: ; preds = %match.arm.50 + %ua.raw341 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr342 = inttoptr i64 %ua.raw341 to ptr + %ua.load343 = load { [64 x i8], i1 }, ptr %ua.ptr342, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load343) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.496 } ; Function Attrs: nounwind @@ -1748,7 +2487,7 @@ 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.174, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.657, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1844,7 +2583,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.658, 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 @@ -1852,7 +2591,7 @@ if.then.12: ; preds = %if.then.9 %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.176, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.659, 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 @@ -1862,13 +2601,13 @@ if.then.12: ; preds = %if.then.9 %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.177, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.660, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.661, 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 @@ -1876,7 +2615,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.179, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.662, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1890,7 +2629,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.180, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.663, 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 @@ -1898,7 +2637,7 @@ if.then.23: ; preds = %if.else.10 %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.181, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.664, 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 @@ -1909,7 +2648,7 @@ if.then.23: ; preds = %if.else.10 %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.182, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.665, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1966,7 +2705,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.183, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.666, 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 @@ -1974,7 +2713,7 @@ if.then.32: ; preds = %if.then.29 %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.184, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.667, 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 @@ -1985,7 +2724,7 @@ if.then.32: ; preds = %if.then.29 %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.185, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.668, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2005,7 +2744,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.669, 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 @@ -2013,7 +2752,7 @@ if.then.35: ; preds = %while.exit.2 %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.187, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.670, 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 @@ -2024,7 +2763,7 @@ if.then.35: ; preds = %while.exit.2 %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.188, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.671, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2102,70 +2841,412 @@ declare i64 @write(i32, ptr, i64) declare void @log_emit(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.identity(ptr sret({ [16 x float] }), ptr) #0 +declare i32 @open(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @Mat4.zero(ptr sret({ [16 x float] }), ptr) #0 +declare i32 @close(i32) #0 ; Function Attrs: nounwind -declare void @Mat4.mul(ptr sret({ [16 x float] }), ptr, ptr, ptr) #0 +declare i64 @read(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Mat4.translate(ptr sret({ [16 x float] }), ptr, float, float, float) #0 +declare i64 @lseek(i32, i64, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.scale(ptr sret({ [16 x float] }), ptr, float, float, float) #0 +declare i32 @unlink(ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_x(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @rmdir(ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_y(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @mkdir(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_z(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @access(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.ortho(ptr sret({ [16 x float] }), ptr, float, float, float, float, float, float) #0 +declare i32 @chmod(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.perspective(ptr sret({ [16 x float] }), ptr, float, float, float, float) #0 +declare i32 @rename(ptr, ptr) #0 ; Function Attrs: nounwind -declare float @lerp(ptr, float, float, float) #0 +declare i1 @File.is_valid(ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.zero(ptr) #0 +declare i1 @File.close(ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.add(ptr, { float, float }, { float, float }) #0 +declare i64 @File.read(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.sub(ptr, { float, float }, { float, float }) #0 +declare i64 @File.write(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.scale(ptr, { float, float }, float) #0 +declare i64 @File.seek(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare float @Vec2.dot(ptr, { float, float }, { float, float }) #0 +declare i32 @mode_to_flags(ptr, i64) #0 ; Function Attrs: nounwind -declare float @Vec2.length(ptr, { float, float }) #0 +declare i64 @open_file(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.normalize(ptr, { float, float }) #0 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.lerp(ptr, { float, float }, { float, float }, float) #0 +declare i1 @write_file(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare float @Vec2.distance(ptr, { float, float }, { float, float }) #0 +declare i1 @append_file(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.negate(ptr, { float, float }) #0 +declare i1 @exists(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @Vec2.equals(ptr, { float, float }, { float, float }) #0 +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -2279,175 +3360,1309 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 declare i64 @build_options() #0 ; Function Attrs: nounwind -declare void @assert(ptr, i1) #0 +declare ptr @spaces.73(ptr, i32) #0 ; Function Attrs: nounwind -declare void @out.21(ptr) #0 +declare i32 @sx_trace_len.74() #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc.22(ptr, ptr, i64) #0 +declare i32 @sx_trace_truncated.75() #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc.23(ptr, ptr, ptr) #0 +declare i64 @sx_trace_frame_at.76(i32) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.24(ptr) #0 +declare ptr @to_string.77(ptr) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc.25(ptr, ptr, i64) #0 +declare void @print_current.78(ptr) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc.26(ptr, ptr, ptr) #0 +declare void @print_interpreter_frames.79(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.27(ptr, ptr, i64) #0 +declare ptr @popen.80(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.28(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare i32 @pclose.81(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.29(ptr, ptr) #0 +declare i64 @fread.82(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.30(ptr, ptr) #0 +declare i32 @feof.83(ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc.31(ptr, ptr, i64) #0 +declare ptr @getenv.84(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc.32(ptr, ptr, ptr) #0 +declare i64 @strlen.85(ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.init.33(ptr, ptr, i64) #0 +declare i32 @system.86(ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.34(ptr, ptr) #0 +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc.35(ptr, ptr, i64) #0 +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc.36(ptr, ptr, ptr) #0 +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.37(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare void @_exit.90(i32) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.38(ptr, ptr) #0 +declare void @exit.91(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.39(ptr, ptr) #0 +declare void @assert.92(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc.40(ptr, ptr, i64) #0 +declare ptr @_NSGetArgv() #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc.41(ptr, ptr, ptr) #0 +declare ptr @_NSGetArgc() #0 ; Function Attrs: nounwind -declare ptr @cstring.42(ptr, i64) #0 +declare void @exit_ok(ptr) #0 ; Function Attrs: nounwind -declare ptr @int_to_string.43(ptr, i64) #0 +declare void @exit_usage(ptr) #0 ; Function Attrs: nounwind -declare ptr @uint_to_string.44(ptr, i64) #0 +declare i64 @os_argc(ptr) #0 ; Function Attrs: nounwind -declare ptr @bool_to_string.45(ptr, i1) #0 +declare ptr @os_args(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @float_to_string.46(ptr, double) #0 +declare i1 @Parsed.is_set(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @hex_group.47(ptr, ptr, i64, i64) #0 +declare ptr @Parsed.value_of(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare [4 x i64] @decompose_u16x4.48(ptr, i64) #0 +declare i1 @is_long_flag(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @int_to_hex_string.49(ptr, i64) #0 +declare void @parse.93(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 ptr @concat.50(ptr, ptr, ptr) #0 +declare i32 @open.94(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare ptr @substr.51(ptr, ptr, i64, i64) #0 +declare i32 @close.95(i32) #0 ; Function Attrs: nounwind -declare ptr @path_join.52(ptr, ptr) #0 +declare i64 @read.96(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @any_to_string.53(ptr, [2 x i64]) #0 +declare i64 @lseek.97(i32, i64, i32) #0 ; Function Attrs: nounwind -declare ptr @build_format.54(ptr, ptr) #0 +declare i32 @unlink.98(ptr) #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc.55(ptr, ptr, i64) #0 +declare i32 @rmdir.99(ptr) #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc.56(ptr, ptr, ptr) #0 +declare i32 @mkdir.100(ptr, i32) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.57(ptr) #0 +declare i32 @access.101(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc.58(ptr, ptr, i64) #0 +declare i32 @chmod.102(ptr, i32) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc.59(ptr, ptr, ptr) #0 +declare i32 @rename.103(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.60(ptr, ptr, i64) #0 +declare i1 @File.is_valid.104(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.61(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare i1 @File.close.105(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.62(ptr, ptr) #0 +declare i64 @File.read.106(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.63(ptr, ptr) #0 +declare i64 @File.write.107(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc.64(ptr, ptr, i64) #0 +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc.65(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.109(ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.init.66(ptr, ptr, i64) #0 +declare i64 @open_file.110(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.67(ptr, ptr) #0 +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc.68(ptr, ptr, i64) #0 +declare i1 @write_file.112(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc.69(ptr, ptr, ptr) #0 +declare i1 @append_file.113(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.70(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare i1 @exists.114(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.71(ptr, ptr) #0 +declare i1 @delete_file.115(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.72(ptr, ptr) #0 +declare i1 @delete_dir.116(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc.73(ptr, ptr, i64) #0 +declare i1 @create_dir.117(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc.74(ptr, ptr, ptr) #0 +declare i1 @set_mode.118(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @escape.75(ptr, ptr) #0 +declare i1 @move.119(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @log_emit.76(ptr, ptr, ptr) #0 +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @Mat4.identity(ptr sret({ [16 x float] }), ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.zero(ptr sret({ [16 x float] }), ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.mul(ptr sret({ [16 x float] }), ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.translate(ptr sret({ [16 x float] }), ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.scale(ptr sret({ [16 x float] }), ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_x(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_y(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_z(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.ortho(ptr sret({ [16 x float] }), ptr, float, float, float, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.perspective(ptr sret({ [16 x float] }), ptr, float, float, float, float) #0 + +; Function Attrs: nounwind +declare float @lerp(ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.zero(ptr) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.add(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.sub(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.scale(ptr, { float, float }, float) #0 + +; Function Attrs: nounwind +declare float @Vec2.dot(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare float @Vec2.length(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.normalize(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.lerp(ptr, { float, float }, { float, float }, float) #0 + +; Function Attrs: nounwind +declare float @Vec2.distance(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.negate(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare i1 @Vec2.equals(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + +; Function Attrs: nounwind +declare void @assert.162(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @out.163(ptr) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.164(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.165(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.166(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.167(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.168(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.169(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.170(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.171(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.172(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.173(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.174(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.175(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.176(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.177(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.178(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.179(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.180(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.181(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.182(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.183(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @cstring.184(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @int_to_string.185(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @uint_to_string.186(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @bool_to_string.187(ptr, i1) #0 + +; Function Attrs: nounwind +declare ptr @float_to_string.188(ptr, double) #0 + +; Function Attrs: nounwind +declare void @hex_group.189(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare [4 x i64] @decompose_u16x4.190(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @int_to_hex_string.191(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @concat.192(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @substr.193(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @path_join.194(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @any_to_string.195(ptr, [2 x i64]) #0 + +; Function Attrs: nounwind +declare ptr @build_format.196(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.197(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.198(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.199(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.200(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.201(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.202(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.203(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.204(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.205(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.206(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.207(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.208(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.209(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.210(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.211(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.212(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.213(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.214(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.215(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.216(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @escape.217(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @log_emit.218(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.219(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.220(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.221(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.222(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.223(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.224(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.225(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.226(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.227(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.228(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.229(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.230(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.231(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.232(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.233(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.234(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.235(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.236(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.237(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.238(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.239(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.240(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.241(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.242(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.243(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.244(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.245(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.246(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.247(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.248(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @spaces.249(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.250() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.251() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.252(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.253(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.254(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.255(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.256(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.257(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.258(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.259(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.260(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.261(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.262(ptr) #0 + +; Function Attrs: nounwind +declare void @run.263(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.264(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.265(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.266(i32) #0 + +; Function Attrs: nounwind +declare void @exit.267(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.268(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @socket.269(i32, i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @setsockopt.270(i32, i32, i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @bind.271(i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @listen.272(i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @accept.273(i32, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @read.274(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.275(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons.276(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.277(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.278(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.279(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.280(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.281(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.282(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.283(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.284(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.285(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.286(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.287(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.288(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.289(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.290(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.291(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.292(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.293(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.294(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.295(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.296(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.297(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.298(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.299(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.300(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.301(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.302(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.303(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.304(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.305(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.306(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.307(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.308(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.309(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.310(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.311(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.312(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.313(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.314(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.315(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.316(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.317(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.318(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.319(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.320(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.321(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.322(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.323(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.324(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.325(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.326(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Array.add.327(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Array.deinit.328(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Object.put.329(ptr, ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Object.deinit.330(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Sink.put_byte.331(ptr, ptr, i8) #0 + +; Function Attrs: nounwind +declare i32 @Sink.put.332(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Sink.flush.333(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i8 @hex_digit.334(ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @write_u_escape.335(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_string.336(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_int.337(ptr, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_value.338(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_array.339(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_object.340(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @write_to_buffer.341(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_to_file.342(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @hex_value.343(ptr, i8) #0 + +; Function Attrs: nounwind +declare i64 @encode_utf8.344(ptr, i64, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.skip_ws.345(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Parser.expect_lit.346(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.read_hex4.347(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.decode_into.348(ptr, ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_string.349(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.parse_number.350(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_array.351(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_object.352(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_value.353(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @parse.354(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.355(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.356(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.357(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.358(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.359(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.360(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.361(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.362(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.363(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.364(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.365(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.366(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.367(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.368(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.369(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.370(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.371(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.372(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.373(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.374(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.375(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.376(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.377(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.378(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.379(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.380(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.381(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.382(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.383(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.384(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.385(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.386(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.387(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.388(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.389(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.390(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.391() #0 + +; Function Attrs: nounwind +declare ptr @spaces.392(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.393() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.394() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.395(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.396(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.397(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.398(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.399(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.400(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.401(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.402(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.403(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.404(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.405(ptr) #0 + +; Function Attrs: nounwind +declare void @run.406(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.407(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.408(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.409(i32) #0 + +; Function Attrs: nounwind +declare void @exit.410(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.411(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @_NSGetArgv.412() #0 + +; Function Attrs: nounwind +declare ptr @_NSGetArgc.413() #0 + +; Function Attrs: nounwind +declare void @exit_ok.414(ptr) #0 + +; Function Attrs: nounwind +declare void @exit_usage.415(ptr) #0 + +; Function Attrs: nounwind +declare i64 @os_argc.416(ptr) #0 + +; Function Attrs: nounwind +declare ptr @os_args.417(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @Parsed.is_set.418(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Parsed.value_of.419(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @is_long_flag.420(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @parse.421(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 i32 @open.422(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.423(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.424(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.425(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.426(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.427(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.428(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.429(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.430(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.431(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.432(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.433(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.434(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.435(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.436(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.437(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.438(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.439(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.440(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.441(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.442(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.443(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.444(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.445(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.446(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.447(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.448(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.449(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.450(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.451(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @rotr.452(ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @big_sigma0.453(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @big_sigma1.454(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @small_sigma0.455(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @small_sigma1.456(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Sha256.process_block.457(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Sha256.update.458(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [64 x i8] @Sha256.final.459(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i8 @nibble_hex.460(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @init.461(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 + +; Function Attrs: nounwind +declare [64 x i8] @sha256_hex.462(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @sha256_file.463(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.464(ptr, i1) #0 ; Function Attrs: nounwind declare ptr @cwd_greet(ptr) #0 @@ -2507,14 +4722,14 @@ entry: define internal void @print__ct_s86e89ca9c0674196__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.189, i64 29 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.672, i64 29 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.190, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.673, i64 0 }, ptr %allocaN, align 8 %load = 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 29) @@ -2530,7 +4745,7 @@ entry: ; 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.191, i64 29 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.674, i64 29 }) ret { ptr, i64 } %call } @@ -2538,7 +4753,7 @@ entry: define internal void @print__ct_sfd746eca0faee40b__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.192, i64 11 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.675, i64 11 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2554,7 +4769,7 @@ entry: %gepN = getelementptr inbounds { 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.193, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.676, 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 8) @@ -2582,7 +4797,7 @@ entry: ; 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.194, i64 11 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.677, i64 11 }) ret { ptr, i64 } %call } @@ -2590,7 +4805,7 @@ entry: define internal void @print__ct_s61f699add92dd2af__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.195, i64 9 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.678, i64 9 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2606,7 +4821,7 @@ entry: %gepN = getelementptr inbounds { 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.196, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.679, 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 6) @@ -2634,7 +4849,7 @@ entry: ; 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.197, i64 9 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.680, i64 9 }) ret { ptr, i64 } %call } @@ -2645,35 +4860,35 @@ entry: %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.198, i64 15 }, { ptr, i64 } { ptr @str.199, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.681, i64 15 }, { ptr, i64 } { ptr @str.682, 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.109 + br label %while.hdr.124 -while.hdr.109: ; preds = %fv.merge, %entry +while.hdr.124: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.110, label %while.exit.111 + br i1 %icmp, label %while.body.125, label %while.exit.126 -while.body.110: ; preds = %while.hdr.109 +while.body.125: ; preds = %while.hdr.124 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.112, label %if.merge.113 + br i1 %icmpN, label %if.then.127, label %if.merge.128 -while.exit.111: ; preds = %while.hdr.109 +while.exit.126: ; preds = %while.hdr.124 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.200, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.683, i64 1 }) ret { ptr, i64 } %callN -if.then.112: ; preds = %while.body.110 +if.then.127: ; preds = %while.body.125 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.201, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.684, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.113 + br label %if.merge.128 -if.merge.113: ; preds = %if.then.112, %while.body.110 +if.merge.128: ; preds = %if.then.127, %while.body.125 %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 @@ -2681,7 +4896,7 @@ if.merge.113: ; preds = %if.then.112, %while %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.205, i64 2 }) + %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, i64 }, i32, i32, { ptr, i64 } }, ptr %alloca, align 8 @@ -2701,31 +4916,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.109 + br label %while.hdr.124 -fv.default: ; preds = %if.merge.113 +fv.default: ; preds = %if.merge.128 br label %fv.merge -fv.case: ; preds = %if.merge.113 +fv.case: ; preds = %if.merge.128 %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.113 +fv.case17: ; preds = %if.merge.128 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.113 +fv.case20: ; preds = %if.merge.128 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.113 +fv.case24: ; preds = %if.merge.128 %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 @@ -2738,43 +4953,43 @@ 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.206, i64 10 }, { ptr, i64 } { ptr @str.207, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.689, i64 10 }, { 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.114 + br label %while.hdr.129 -while.hdr.114: ; preds = %if.merge.118, %entry +while.hdr.129: ; preds = %if.merge.133, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.115, label %while.exit.116 + br i1 %icmp, label %while.body.130, label %while.exit.131 -while.body.115: ; preds = %while.hdr.114 +while.body.130: ; preds = %while.hdr.129 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.117, label %if.merge.118 + br i1 %icmpN, label %if.then.132, label %if.merge.133 -while.exit.116: ; preds = %while.hdr.114 +while.exit.131: ; preds = %while.hdr.129 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.691, i64 1 }) ret { ptr, i64 } %callN -if.then.117: ; preds = %while.body.115 +if.then.132: ; preds = %while.body.130 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 2 }) + %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.118 + br label %if.merge.133 -if.merge.118: ; preds = %if.then.117, %while.body.115 +if.merge.133: ; preds = %if.then.132, %while.body.130 %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.210, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.693, 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.211, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.694, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2785,7 +5000,7 @@ if.merge.118: ; preds = %if.then.117, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.114 + br label %while.hdr.129 } ; Function Attrs: nounwind @@ -2793,43 +5008,43 @@ 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.212, i64 3 }, { ptr, i64 } { ptr @str.213, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.695, i64 3 }, { ptr, i64 } { ptr @str.696, 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.119 + br label %while.hdr.134 -while.hdr.119: ; preds = %fv.merge, %entry +while.hdr.134: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.120, label %while.exit.121 + br i1 %icmp, label %while.body.135, label %while.exit.136 -while.body.120: ; preds = %while.hdr.119 +while.body.135: ; preds = %while.hdr.134 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.122, label %if.merge.123 + br i1 %icmpN, label %if.then.137, label %if.merge.138 -while.exit.121: ; preds = %while.hdr.119 +while.exit.136: ; preds = %while.hdr.134 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.214, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.697, i64 1 }) ret { ptr, i64 } %callN -if.then.122: ; preds = %while.body.120 +if.then.137: ; preds = %while.body.135 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.215, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.698, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.123 + br label %if.merge.138 -if.merge.123: ; preds = %if.then.122, %while.body.120 +if.merge.138: ; preds = %if.then.137, %while.body.135 %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.217, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.700, 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.218, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.701, 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 @@ -2846,12 +5061,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.119 + br label %while.hdr.134 -fv.default: ; preds = %if.merge.123 +fv.default: ; preds = %if.merge.138 br label %fv.merge -fv.case: ; preds = %if.merge.123 +fv.case: ; preds = %if.merge.138 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2862,43 +5077,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.219, i64 10 }, { ptr, i64 } { ptr @str.220, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.702, i64 10 }, { ptr, i64 } { ptr @str.703, 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.124 + br label %while.hdr.139 -while.hdr.124: ; preds = %fv.merge, %entry +while.hdr.139: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.125, label %while.exit.126 + br i1 %icmp, label %while.body.140, label %while.exit.141 -while.body.125: ; preds = %while.hdr.124 +while.body.140: ; preds = %while.hdr.139 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.127, label %if.merge.128 + br i1 %icmpN, label %if.then.142, label %if.merge.143 -while.exit.126: ; preds = %while.hdr.124 +while.exit.141: ; preds = %while.hdr.139 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.221, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.704, i64 1 }) ret { ptr, i64 } %callN -if.then.127: ; preds = %while.body.125 +if.then.142: ; preds = %while.body.140 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.222, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.705, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.128 + br label %if.merge.143 -if.merge.128: ; preds = %if.then.127, %while.body.125 +if.merge.143: ; preds = %if.then.142, %while.body.140 %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.225, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.708, 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.226, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.709, 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 @@ -2916,18 +5131,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.124 + br label %while.hdr.139 -fv.default: ; preds = %if.merge.128 +fv.default: ; preds = %if.merge.143 br label %fv.merge -fv.case: ; preds = %if.merge.128 +fv.case: ; preds = %if.merge.143 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.128 +fv.case17: ; preds = %if.merge.143 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2938,43 +5153,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.227, i64 9 }, { ptr, i64 } { ptr @str.228, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 9 }, { ptr, i64 } { ptr @str.711, 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.129 + br label %while.hdr.144 -while.hdr.129: ; preds = %fv.merge, %entry +while.hdr.144: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.130, label %while.exit.131 + br i1 %icmp, label %while.body.145, label %while.exit.146 -while.body.130: ; preds = %while.hdr.129 +while.body.145: ; preds = %while.hdr.144 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.132, label %if.merge.133 + br i1 %icmpN, label %if.then.147, label %if.merge.148 -while.exit.131: ; preds = %while.hdr.129 +while.exit.146: ; preds = %while.hdr.144 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.229, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.712, i64 1 }) ret { ptr, i64 } %callN -if.then.132: ; preds = %while.body.130 +if.then.147: ; preds = %while.body.145 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.230, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.713, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.133 + br label %if.merge.148 -if.merge.133: ; preds = %if.then.132, %while.body.130 +if.merge.148: ; preds = %if.then.147, %while.body.145 %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.234, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.717, 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.235, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.718, 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 @@ -2993,24 +5208,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.129 + br label %while.hdr.144 -fv.default: ; preds = %if.merge.133 +fv.default: ; preds = %if.merge.148 br label %fv.merge -fv.case: ; preds = %if.merge.133 +fv.case: ; preds = %if.merge.148 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.133 +fv.case17: ; preds = %if.merge.148 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.133 +fv.case21: ; preds = %if.merge.148 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -3023,43 +5238,43 @@ 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.236, i64 5 }, { ptr, i64 } { ptr @str.237, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 5 }, { ptr, i64 } { ptr @str.720, 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.134 + br label %while.hdr.149 -while.hdr.134: ; preds = %fv.merge, %entry +while.hdr.149: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.135, label %while.exit.136 + br i1 %icmp, label %while.body.150, label %while.exit.151 -while.body.135: ; preds = %while.hdr.134 +while.body.150: ; preds = %while.hdr.149 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.137, label %if.merge.138 + br i1 %icmpN, label %if.then.152, label %if.merge.153 -while.exit.136: ; preds = %while.hdr.134 +while.exit.151: ; preds = %while.hdr.149 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.238, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.721, i64 1 }) ret { ptr, i64 } %callN -if.then.137: ; preds = %while.body.135 +if.then.152: ; preds = %while.body.150 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.239, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.722, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.138 + br label %if.merge.153 -if.merge.138: ; preds = %if.then.137, %while.body.135 +if.merge.153: ; preds = %if.then.152, %while.body.150 %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.243, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.726, 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.244, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.727, 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 @@ -3078,23 +5293,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.134 + br label %while.hdr.149 -fv.default: ; preds = %if.merge.138 +fv.default: ; preds = %if.merge.153 br label %fv.merge -fv.case: ; preds = %if.merge.138 +fv.case: ; preds = %if.merge.153 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.138 +fv.case17: ; preds = %if.merge.153 %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.138 +fv.case20: ; preds = %if.merge.153 %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 @@ -3107,43 +5322,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.245, i64 8 }, { ptr, i64 } { ptr @str.246, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.728, i64 8 }, { ptr, i64 } { ptr @str.729, 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.139 + br label %while.hdr.154 -while.hdr.139: ; preds = %fv.merge, %entry +while.hdr.154: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.140, label %while.exit.141 + br i1 %icmp, label %while.body.155, label %while.exit.156 -while.body.140: ; preds = %while.hdr.139 +while.body.155: ; preds = %while.hdr.154 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.142, label %if.merge.143 + br i1 %icmpN, label %if.then.157, label %if.merge.158 -while.exit.141: ; preds = %while.hdr.139 +while.exit.156: ; preds = %while.hdr.154 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.247, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.730, i64 1 }) ret { ptr, i64 } %callN -if.then.142: ; preds = %while.body.140 +if.then.157: ; preds = %while.body.155 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.248, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.731, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.143 + br label %if.merge.158 -if.merge.143: ; preds = %if.then.142, %while.body.140 +if.merge.158: ; preds = %if.then.157, %while.body.155 %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.252, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.735, 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.253, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64, i64 }, ptr %alloca, align 8 @@ -3162,23 +5377,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.139 + br label %while.hdr.154 -fv.default: ; preds = %if.merge.143 +fv.default: ; preds = %if.merge.158 br label %fv.merge -fv.case: ; preds = %if.merge.143 +fv.case: ; preds = %if.merge.158 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.143 +fv.case17: ; preds = %if.merge.158 %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.143 +fv.case20: ; preds = %if.merge.158 %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 @@ -3190,43 +5405,43 @@ 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.254, i64 17 }, { ptr, i64 } { ptr @str.255, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.737, i64 17 }, { ptr, i64 } { ptr @str.738, 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.144 + br label %while.hdr.159 -while.hdr.144: ; preds = %fv.merge, %entry +while.hdr.159: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.145, label %while.exit.146 + br i1 %icmp, label %while.body.160, label %while.exit.161 -while.body.145: ; preds = %while.hdr.144 +while.body.160: ; preds = %while.hdr.159 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.147, label %if.merge.148 + br i1 %icmpN, label %if.then.162, label %if.merge.163 -while.exit.146: ; preds = %while.hdr.144 +while.exit.161: ; preds = %while.hdr.159 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.256, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.739, i64 1 }) ret { ptr, i64 } %callN -if.then.147: ; preds = %while.body.145 +if.then.162: ; preds = %while.body.160 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.257, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.740, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.148 + br label %if.merge.163 -if.merge.148: ; preds = %if.then.147, %while.body.145 +if.merge.163: ; preds = %if.then.162, %while.body.160 %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.262, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.745, 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.263, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.746, 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 @@ -3246,29 +5461,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.144 + br label %while.hdr.159 -fv.default: ; preds = %if.merge.148 +fv.default: ; preds = %if.merge.163 br label %fv.merge -fv.case: ; preds = %if.merge.148 +fv.case: ; preds = %if.merge.163 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.148 +fv.case17: ; preds = %if.merge.163 %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.148 +fv.case20: ; preds = %if.merge.163 %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.148 +fv.case23: ; preds = %if.merge.163 %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 @@ -3280,43 +5495,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.264, i64 7 }, { ptr, i64 } { ptr @str.265, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.747, i64 7 }, { ptr, i64 } { ptr @str.748, 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.149 + br label %while.hdr.164 -while.hdr.149: ; preds = %fv.merge, %entry +while.hdr.164: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.150, label %while.exit.151 + br i1 %icmp, label %while.body.165, label %while.exit.166 -while.body.150: ; preds = %while.hdr.149 +while.body.165: ; preds = %while.hdr.164 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.152, label %if.merge.153 + br i1 %icmpN, label %if.then.167, label %if.merge.168 -while.exit.151: ; preds = %while.hdr.149 +while.exit.166: ; preds = %while.hdr.164 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.266, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.749, i64 1 }) ret { ptr, i64 } %callN -if.then.152: ; preds = %while.body.150 +if.then.167: ; preds = %while.body.165 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.267, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.750, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.153 + br label %if.merge.168 -if.merge.153: ; preds = %if.then.152, %while.body.150 +if.merge.168: ; preds = %if.then.167, %while.body.165 %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.270, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.753, 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.271, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.754, 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 %alloca, align 8 @@ -3334,68 +5549,1437 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.149 + br label %while.hdr.164 -fv.default: ; preds = %if.merge.153 +fv.default: ; preds = %if.merge.168 br label %fv.merge -fv.case: ; preds = %if.merge.153 +fv.case: ; preds = %if.merge.168 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.153 +fv.case17: ; preds = %if.merge.168 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.755, i64 4 }, { ptr, i64 } { ptr @str.756, 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.169 + +while.hdr.169: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.170, label %while.exit.171 + +while.body.170: ; preds = %while.hdr.169 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.172, label %if.merge.173 + +while.exit.171: ; preds = %while.hdr.169 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.757, i64 1 }) + ret { ptr, i64 } %callN + +if.then.172: ; preds = %while.body.170 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.758, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.173 + +if.merge.173: ; preds = %if.then.172, %while.body.170 + %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.760, 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.761, 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.169 + +fv.default: ; preds = %if.merge.173 + br label %fv.merge + +fv.case: ; preds = %if.merge.173 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.762, i64 10 }, { ptr, i64 } { ptr @str.763, 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.174 + +while.hdr.174: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.175, label %while.exit.176 + +while.body.175: ; preds = %while.hdr.174 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.177, label %if.merge.178 + +while.exit.176: ; preds = %while.hdr.174 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.764, i64 1 }) + ret { ptr, i64 } %callN + +if.then.177: ; preds = %while.body.175 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.765, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.178 + +if.merge.178: ; preds = %if.then.177, %while.body.175 + %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.771, 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.772, 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.174 + +fv.default: ; preds = %if.merge.178 + br label %fv.merge + +fv.case: ; preds = %if.merge.178 + %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.178 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.178 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.178 + %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.178 + %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.773, i64 13 }, { ptr, i64 } { ptr @str.774, 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.179 + +while.hdr.179: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.180, label %while.exit.181 + +while.body.180: ; preds = %while.hdr.179 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.182, label %if.merge.183 + +while.exit.181: ; preds = %while.hdr.179 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.775, i64 1 }) + ret { ptr, i64 } %callN + +if.then.182: ; preds = %while.body.180 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.776, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.183 + +if.merge.183: ; preds = %if.then.182, %while.body.180 + %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.779, 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.780, 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.179 + +fv.default: ; preds = %if.merge.183 + br label %fv.merge + +fv.case: ; preds = %if.merge.183 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.183 + %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.781, i64 8 }, { ptr, i64 } { ptr @str.782, 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.184 + +while.hdr.184: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.185, label %while.exit.186 + +while.body.185: ; preds = %while.hdr.184 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.187, label %if.merge.188 + +while.exit.186: ; preds = %while.hdr.184 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.783, i64 1 }) + ret { ptr, i64 } %callN + +if.then.187: ; preds = %while.body.185 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.784, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.188 + +if.merge.188: ; preds = %if.then.187, %while.body.185 + %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.790, 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.791, 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.184 + +fv.default: ; preds = %if.merge.188 + br label %fv.merge + +fv.case: ; preds = %if.merge.188 + %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.188 + %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.188 + %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.188 + %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.188 + %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.792, i64 5 }, { ptr, i64 } { ptr @str.793, 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.189 + +while.hdr.189: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.190, label %while.exit.191 + +while.body.190: ; preds = %while.hdr.189 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.192, label %if.merge.193 + +while.exit.191: ; preds = %while.hdr.189 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.794, i64 1 }) + ret { ptr, i64 } %callN + +if.then.192: ; preds = %while.body.190 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.795, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.193 + +if.merge.193: ; preds = %if.then.192, %while.body.190 + %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.799, 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.800, 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.189 + +fv.default: ; preds = %if.merge.193 + br label %fv.merge + +fv.case: ; preds = %if.merge.193 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.193 + %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.193 + %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.801, i64 6 }, { ptr, i64 } { ptr @str.802, 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.194 + +while.hdr.194: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.195, label %while.exit.196 + +while.body.195: ; preds = %while.hdr.194 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.197, label %if.merge.198 + +while.exit.196: ; preds = %while.hdr.194 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.803, i64 1 }) + ret { ptr, i64 } %callN + +if.then.197: ; preds = %while.body.195 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.804, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.198 + +if.merge.198: ; preds = %if.then.197, %while.body.195 + %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.808, 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.809, 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.194 + +fv.default: ; preds = %if.merge.198 + br label %fv.merge + +fv.case: ; preds = %if.merge.198 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.198 + %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.198 + %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.810, i64 6 }, { ptr, i64 } { ptr @str.811, 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.199 + +while.hdr.199: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.200, label %while.exit.201 + +while.body.200: ; preds = %while.hdr.199 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.202, label %if.merge.203 + +while.exit.201: ; preds = %while.hdr.199 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.812, i64 1 }) + ret { ptr, i64 } %callN + +if.then.202: ; preds = %while.body.200 + %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 + br label %if.merge.203 + +if.merge.203: ; preds = %if.then.202, %while.body.200 + %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.816, 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.817, 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.199 + +fv.default: ; preds = %if.merge.203 + br label %fv.merge + +fv.case: ; preds = %if.merge.203 + %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.203 + %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 54, 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.818, i64 4 }, { ptr, i64 } { ptr @str.819, 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.204 + +while.hdr.204: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.205, label %while.exit.206 + +while.body.205: ; preds = %while.hdr.204 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.207, label %if.merge.208 + +while.exit.206: ; preds = %while.hdr.204 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.820, i64 1 }) + ret { ptr, i64 } %callN + +if.then.207: ; preds = %while.body.205 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.821, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.208 + +if.merge.208: ; preds = %if.then.207, %while.body.205 + %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.825, 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.826, 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.204 + +fv.default: ; preds = %if.merge.208 + br label %fv.merge + +fv.case: ; preds = %if.merge.208 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.208 + %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.208 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.827, i64 6 }, { ptr, i64 } { ptr @str.828, 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.209 + +while.hdr.209: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.210, label %while.exit.211 + +while.body.210: ; preds = %while.hdr.209 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.212, label %if.merge.213 + +while.exit.211: ; preds = %while.hdr.209 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.829, i64 1 }) + ret { ptr, i64 } %callN + +if.then.212: ; preds = %while.body.210 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.830, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.213 + +if.merge.213: ; preds = %if.then.212, %while.body.210 + %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.834, 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.835, 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.209 + +fv.default: ; preds = %if.merge.213 + br label %fv.merge + +fv.case: ; preds = %if.merge.213 + %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.213 + %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.213 + %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 26, i64 undef }, i64 %ba.p2i23, 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.836, i64 12 }, { ptr, i64 } { ptr @str.837, 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.214 + +while.hdr.214: ; preds = %if.merge.218, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.215, label %while.exit.216 + +while.body.215: ; preds = %while.hdr.214 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.217, label %if.merge.218 + +while.exit.216: ; preds = %while.hdr.214 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.838, i64 1 }) + ret { ptr, i64 } %callN + +if.then.217: ; preds = %while.body.215 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.839, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.218 + +if.merge.218: ; preds = %if.then.217, %while.body.215 + %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.840, 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.841, 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.214 +} + +; 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.842, i64 8 }, { ptr, i64 } { ptr @str.843, 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.219 + +while.hdr.219: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.220, label %while.exit.221 + +while.body.220: ; preds = %while.hdr.219 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.222, label %if.merge.223 + +while.exit.221: ; preds = %while.hdr.219 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.844, i64 1 }) + ret { ptr, i64 } %callN + +if.then.222: ; preds = %while.body.220 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.845, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.223 + +if.merge.223: ; preds = %if.then.222, %while.body.220 + %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.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 }, 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.219 + +fv.default: ; preds = %if.merge.223 + br label %fv.merge + +fv.case: ; preds = %if.merge.223 + %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.223 + %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.223 + %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.851, i64 7 }, { 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.224 + +while.hdr.224: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.225, label %while.exit.226 + +while.body.225: ; preds = %while.hdr.224 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.227, label %if.merge.228 + +while.exit.226: ; preds = %while.hdr.224 + %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.227: ; preds = %while.body.225 + %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.228 + +if.merge.228: ; preds = %if.then.227, %while.body.225 + %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 }, { 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.224 + +fv.default: ; preds = %if.merge.228 + br label %fv.merge + +fv.case: ; preds = %if.merge.228 + %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.228 + %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.228 + %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 77, 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.860, i64 9 }, { 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.229 + +while.hdr.229: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.230, label %while.exit.231 + +while.body.230: ; preds = %while.hdr.229 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.232, label %if.merge.233 + +while.exit.231: ; preds = %while.hdr.229 + %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.232: ; preds = %while.body.230 + %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.233 + +if.merge.233: ; preds = %if.then.232, %while.body.230 + %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.866, 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.867, 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.229 + +fv.default: ; preds = %if.merge.233 + br label %fv.merge + +fv.case: ; preds = %if.merge.233 + %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.233 + %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.868, i64 4 }, { ptr, i64 } { ptr @str.869, 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.234 + +while.hdr.234: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.235, label %while.exit.236 + +while.body.235: ; preds = %while.hdr.234 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.237, label %if.merge.238 + +while.exit.236: ; preds = %while.hdr.234 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.870, i64 1 }) + ret { ptr, i64 } %callN + +if.then.237: ; preds = %while.body.235 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.871, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.238 + +if.merge.238: ; preds = %if.then.237, %while.body.235 + %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.874, 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.875, 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.234 + +fv.default: ; preds = %if.merge.238 + br label %fv.merge + +fv.case: ; preds = %if.merge.238 + %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.238 + %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.876, i64 6 }, { ptr, i64 } { ptr @str.877, 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.239 + +while.hdr.239: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.240, label %while.exit.241 + +while.body.240: ; preds = %while.hdr.239 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.242, label %if.merge.243 + +while.exit.241: ; preds = %while.hdr.239 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.878, i64 1 }) + ret { ptr, i64 } %callN + +if.then.242: ; preds = %while.body.240 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.879, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.243 + +if.merge.243: ; preds = %if.then.242, %while.body.240 + %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.887, 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.888, 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.239 + +fv.default: ; preds = %if.merge.243 + br label %fv.merge + +fv.case: ; preds = %if.merge.243 + %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.243 + %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.243 + %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.243 + %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.243 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.243 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.243 + %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 81, 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.889, i64 6 }, { ptr, i64 } { ptr @str.890, 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.244 + +while.hdr.244: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.245, label %while.exit.246 + +while.body.245: ; preds = %while.hdr.244 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.247, label %if.merge.248 + +while.exit.246: ; preds = %while.hdr.244 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.891, i64 1 }) + ret { ptr, i64 } %callN + +if.then.247: ; preds = %while.body.245 + %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 + br label %if.merge.248 + +if.merge.248: ; preds = %if.then.247, %while.body.245 + %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.897, 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.898, 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.244 + +fv.default: ; preds = %if.merge.248 + br label %fv.merge + +fv.case: ; preds = %if.merge.248 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.248 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.248 + %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.248 + %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__Mat4(ptr %0, { [16 x float] } %1) #0 { entry: %alloca = alloca { [16 x float] }, align 8 %ba.tmp = alloca [16 x float], align 4 store { [16 x float] } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.272, i64 4 }, { ptr, i64 } { ptr @str.273, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.899, i64 4 }, { ptr, i64 } { ptr @str.900, 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.154 + br label %while.hdr.249 -while.hdr.154: ; preds = %fv.merge, %entry +while.hdr.249: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.155, label %while.exit.156 + br i1 %icmp, label %while.body.250, label %while.exit.251 -while.body.155: ; preds = %while.hdr.154 +while.body.250: ; preds = %while.hdr.249 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.157, label %if.merge.158 + br i1 %icmpN, label %if.then.252, label %if.merge.253 -while.exit.156: ; preds = %while.hdr.154 +while.exit.251: ; preds = %while.hdr.249 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.274, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.901, i64 1 }) ret { ptr, i64 } %callN -if.then.157: ; preds = %while.body.155 +if.then.252: ; preds = %while.body.250 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.275, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.902, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.158 + br label %if.merge.253 -if.merge.158: ; preds = %if.then.157, %while.body.155 +if.merge.253: ; preds = %if.then.252, %while.body.250 %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.277, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.904, 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.278, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { [16 x float] }, ptr %alloca, align 4 @@ -3412,16 +6996,16 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.154 + br label %while.hdr.249 -fv.default: ; preds = %if.merge.158 +fv.default: ; preds = %if.merge.253 br label %fv.merge -fv.case: ; preds = %if.merge.158 +fv.case: ; preds = %if.merge.253 %fv.field = extractvalue { [16 x float] } %loadN, 0 store [16 x float] %fv.field, ptr %ba.tmp, align 4 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1 + %fv.val = insertvalue { i64, i64 } { i64 93, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge } @@ -3430,43 +7014,43 @@ define internal { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %1 entry: %alloca = alloca { float, float }, align 8 store { float, float } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.279, i64 4 }, { ptr, i64 } { ptr @str.280, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.906, i64 4 }, { ptr, i64 } { ptr @str.907, 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.159 + br label %while.hdr.254 -while.hdr.159: ; preds = %fv.merge, %entry +while.hdr.254: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.160, label %while.exit.161 + br i1 %icmp, label %while.body.255, label %while.exit.256 -while.body.160: ; preds = %while.hdr.159 +while.body.255: ; preds = %while.hdr.254 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.162, label %if.merge.163 + br i1 %icmpN, label %if.then.257, label %if.merge.258 -while.exit.161: ; preds = %while.hdr.159 +while.exit.256: ; preds = %while.hdr.254 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.281, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.908, i64 1 }) ret { ptr, i64 } %callN -if.then.162: ; preds = %while.body.160 +if.then.257: ; preds = %while.body.255 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.282, i64 2 }) + %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 - br label %if.merge.163 + br label %if.merge.258 -if.merge.163: ; preds = %if.then.162, %while.body.160 +if.merge.258: ; preds = %if.then.257, %while.body.255 %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.285, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.912, 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.286, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { float, float }, ptr %alloca, align 4 @@ -3484,19 +7068,19 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.254 -fv.default: ; preds = %if.merge.163 +fv.default: ; preds = %if.merge.258 br label %fv.merge -fv.case: ; preds = %if.merge.163 +fv.case: ; preds = %if.merge.258 %fv.field = extractvalue { float, float } %loadN, 0 %fNi32 = bitcast float %fv.field to i32 %zN = zext i32 %fNi32 to i64 %fv.val = insertvalue { i64, i64 } { i64 10, i64 undef }, i64 %zN, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.163 +fv.case17: ; preds = %if.merge.258 %fv.field18 = extractvalue { float, float } %loadN, 1 %fNi3219 = bitcast float %fv.field18 to i32 %zN = zext i32 %fNi3219 to i64 @@ -3504,103 +7088,48 @@ fv.case17: ; preds = %if.merge.163 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.287, i64 12 }, { ptr, i64 } { ptr @str.288, 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.164 - -while.hdr.164: ; preds = %if.merge.168, %entry - %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.165, label %while.exit.166 - -while.body.165: ; preds = %while.hdr.164 - %loadN = load i64, ptr %allocaN, align 8 - %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.167, label %if.merge.168 - -while.exit.166: ; preds = %while.hdr.164 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.289, i64 1 }) - ret { ptr, i64 } %callN - -if.then.167: ; preds = %while.body.165 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.290, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.168 - -if.merge.168: ; preds = %if.then.167, %while.body.165 - %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.291, 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.292, 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.164 -} - ; Function Attrs: nounwind define internal { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %1) #0 { entry: %alloca = alloca { i32, i32 }, align 8 store { i32, i32 } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.293, i64 5 }, { ptr, i64 } { ptr @str.294, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.914, i64 5 }, { ptr, i64 } { ptr @str.915, 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.169 + br label %while.hdr.259 -while.hdr.169: ; preds = %fv.merge, %entry +while.hdr.259: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.170, label %while.exit.171 + br i1 %icmp, label %while.body.260, label %while.exit.261 -while.body.170: ; preds = %while.hdr.169 +while.body.260: ; preds = %while.hdr.259 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.172, label %if.merge.173 + br i1 %icmpN, label %if.then.262, label %if.merge.263 -while.exit.171: ; preds = %while.hdr.169 +while.exit.261: ; preds = %while.hdr.259 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.295, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.916, i64 1 }) ret { ptr, i64 } %callN -if.then.172: ; preds = %while.body.170 +if.then.262: ; preds = %while.body.260 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.296, i64 2 }) + %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 - br label %if.merge.173 + br label %if.merge.263 -if.merge.173: ; preds = %if.then.172, %while.body.170 +if.merge.263: ; preds = %if.then.262, %while.body.260 %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.299, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.920, 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.300, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { i32, i32 }, ptr %alloca, align 4 @@ -3618,18 +7147,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.169 + br label %while.hdr.259 -fv.default: ; preds = %if.merge.173 +fv.default: ; preds = %if.merge.263 br label %fv.merge -fv.case: ; preds = %if.merge.173 +fv.case: ; preds = %if.merge.263 %fv.field = extractvalue { i32, i32 } %loadN, 0 %sN = sext i32 %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.173 +fv.case17: ; preds = %if.merge.263 %fv.field18 = extractvalue { i32, i32 } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 @@ -3637,7 +7166,7 @@ fv.case17: ; preds = %if.merge.173 } ; Function Attrs: nounwind -define internal { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %1) #0 { +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 @@ -3645,9 +7174,9 @@ entry: %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.309, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.927, 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.301, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.922, 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 @@ -3661,18 +7190,209 @@ entry: %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.178, label %if.merge.179 + br i1 %icmp, label %if.then.271, label %if.merge.272 -if.then.178: ; preds = %entry +if.then.271: ; 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.311, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.310, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.929, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.928, 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.179 + br label %if.merge.272 -if.merge.179: ; preds = %if.then.178, %entry +if.merge.272: ; preds = %if.then.271, %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.934, 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.930, 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.273, label %if.merge.274 + +if.then.273: ; 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.936, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.935, 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.274 + +if.merge.274: ; preds = %if.then.273, %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.944, 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.937, 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.275: ; 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.946, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.945, 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.276 + +if.merge.276: ; preds = %if.then.275, %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.275, label %if.merge.276 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.955, 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.947, 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.277, label %if.merge.278 + +if.then.277: ; 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.957, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.956, 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.278 + +if.merge.278: ; preds = %if.then.277, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -3686,9 +7406,9 @@ entry: %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.318, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.964, 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.312, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.958, 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 @@ -3702,18 +7422,18 @@ entry: %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.180, label %if.merge.181 + br i1 %icmp, label %if.then.279, label %if.merge.280 -if.then.180: ; preds = %entry +if.then.279: ; 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.320, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.319, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.966, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.965, 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.181 + br label %if.merge.280 -if.merge.181: ; preds = %if.then.180, %entry +if.merge.280: ; preds = %if.then.279, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -3725,33 +7445,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.321, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.967, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.187 + br label %while.hdr.290 -while.hdr.187: ; preds = %if.merge.191, %entry +while.hdr.290: ; preds = %if.merge.294, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.188, label %while.exit.189 + br i1 %icmp, label %while.body.291, label %while.exit.292 -while.body.188: ; preds = %while.hdr.187 +while.body.291: ; preds = %while.hdr.290 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.190, label %if.merge.191 + br i1 %icmpN, label %if.then.293, label %if.merge.294 -while.exit.189: ; preds = %while.hdr.187 +while.exit.292: ; preds = %while.hdr.290 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.968, i64 1 }) ret { ptr, i64 } %call -if.then.190: ; preds = %while.body.188 +if.then.293: ; preds = %while.body.291 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.969, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.191 + br label %if.merge.294 -if.merge.191: ; preds = %if.then.190, %while.body.188 +if.merge.294: ; preds = %if.then.293, %while.body.291 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3765,7 +7485,211 @@ if.merge.191: ; preds = %if.then.190, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.187 + br label %while.hdr.290 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.970, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.295 + +while.hdr.295: ; preds = %if.merge.299, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.296, label %while.exit.297 + +while.body.296: ; preds = %while.hdr.295 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.298, label %if.merge.299 + +while.exit.297: ; preds = %while.hdr.295 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.971, i64 1 }) + ret { ptr, i64 } %call + +if.then.298: ; preds = %while.body.296 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.972, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.299 + +if.merge.299: ; preds = %if.then.298, %while.body.296 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.295 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.973, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.300 + +while.hdr.300: ; preds = %if.merge.304, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.301, label %while.exit.302 + +while.body.301: ; preds = %while.hdr.300 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.303, label %if.merge.304 + +while.exit.302: ; preds = %while.hdr.300 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.974, i64 1 }) + ret { ptr, i64 } %call + +if.then.303: ; preds = %while.body.301 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.975, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.304 + +if.merge.304: ; preds = %if.then.303, %while.body.301 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.300 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.976, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.305 + +while.hdr.305: ; preds = %if.merge.309, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.306, label %while.exit.307 + +while.body.306: ; preds = %while.hdr.305 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.308, label %if.merge.309 + +while.exit.307: ; preds = %while.hdr.305 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.977, i64 1 }) + ret { ptr, i64 } %call + +if.then.308: ; preds = %while.body.306 + %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.309 + +if.merge.309: ; preds = %if.then.308, %while.body.306 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.305 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.979, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.310 + +while.hdr.310: ; preds = %if.merge.314, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.311, label %while.exit.312 + +while.body.311: ; preds = %while.hdr.310 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.313, label %if.merge.314 + +while.exit.312: ; preds = %while.hdr.310 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.980, i64 1 }) + ret { ptr, i64 } %call + +if.then.313: ; preds = %while.body.311 + %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 + br label %if.merge.314 + +if.merge.314: ; preds = %if.then.313, %while.body.311 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.310 } ; Function Attrs: nounwind @@ -3775,33 +7699,33 @@ entry: %ig.tmp = alloca [16 x float], align 4 store [16 x float] %1, ptr %alloca, align 4 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.324, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.982, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.192 + br label %while.hdr.315 -while.hdr.192: ; preds = %if.merge.196, %entry +while.hdr.315: ; preds = %if.merge.319, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 16 - br i1 %icmp, label %while.body.193, label %while.exit.194 + br i1 %icmp, label %while.body.316, label %while.exit.317 -while.body.193: ; preds = %while.hdr.192 +while.body.316: ; preds = %while.hdr.315 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.195, label %if.merge.196 + br i1 %icmpN, label %if.then.318, label %if.merge.319 -while.exit.194: ; preds = %while.hdr.192 +while.exit.317: ; preds = %while.hdr.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.983, i64 1 }) ret { ptr, i64 } %call -if.then.195: ; preds = %while.body.193 +if.then.318: ; preds = %while.body.316 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.984, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.196 + br label %if.merge.319 -if.merge.196: ; preds = %if.then.195, %while.body.193 +if.merge.319: ; preds = %if.then.318, %while.body.316 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [16 x float], ptr %alloca, align 4 %loadN = load i64, ptr %allocaN, align 8 @@ -3817,7 +7741,7 @@ if.merge.196: ; preds = %if.then.195, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.192 + br label %while.hdr.315 } ; Function Attrs: nounwind @@ -3828,33 +7752,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.327, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.985, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.197 + br label %while.hdr.320 -while.hdr.197: ; preds = %if.merge.201, %entry +while.hdr.320: ; preds = %if.merge.324, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.198, label %while.exit.199 + br i1 %icmp, label %while.body.321, label %while.exit.322 -while.body.198: ; preds = %while.hdr.197 +while.body.321: ; preds = %while.hdr.320 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.200, label %if.merge.201 + br i1 %icmpN, label %if.then.323, label %if.merge.324 -while.exit.199: ; preds = %while.hdr.197 +while.exit.322: ; preds = %while.hdr.320 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.328, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.986, i64 1 }) ret { ptr, i64 } %call -if.then.200: ; preds = %while.body.198 +if.then.323: ; preds = %while.body.321 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.329, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.987, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.201 + br label %if.merge.324 -if.merge.201: ; preds = %if.then.200, %while.body.198 +if.merge.324: ; preds = %if.then.323, %while.body.321 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3870,7 +7794,7 @@ if.merge.201: ; preds = %if.then.200, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.197 + br label %while.hdr.320 } ; Function Attrs: nounwind @@ -3880,35 +7804,35 @@ entry: %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.330, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.988, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.206 + br label %while.hdr.332 -while.hdr.206: ; preds = %if.merge.210, %entry +while.hdr.332: ; preds = %if.merge.336, %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.207, label %while.exit.208 + br i1 %icmp, label %while.body.333, label %while.exit.334 -while.body.207: ; preds = %while.hdr.206 +while.body.333: ; preds = %while.hdr.332 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.209, label %if.merge.210 + br i1 %icmpN, label %if.then.335, label %if.merge.336 -while.exit.208: ; preds = %while.hdr.206 +while.exit.334: ; preds = %while.hdr.332 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.331, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.989, i64 1 }) ret { ptr, i64 } %call -if.then.209: ; preds = %while.body.207 +if.then.335: ; preds = %while.body.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.332, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.990, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.210 + br label %if.merge.336 -if.merge.210: ; preds = %if.then.209, %while.body.207 +if.merge.336: ; preds = %if.then.335, %while.body.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3924,7 +7848,167 @@ if.merge.210: ; preds = %if.then.209, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.206 + br label %while.hdr.332 +} + +; 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.991, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.337 + +while.hdr.337: ; preds = %if.merge.341, %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.338, label %while.exit.339 + +while.body.338: ; preds = %while.hdr.337 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.340, label %if.merge.341 + +while.exit.339: ; preds = %while.hdr.337 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.992, i64 1 }) + ret { ptr, i64 } %call + +if.then.340: ; preds = %while.body.338 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.993, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.341 + +if.merge.341: ; preds = %if.then.340, %while.body.338 + %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.337 +} + +; 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.994, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.342 + +while.hdr.342: ; preds = %if.merge.346, %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.343, label %while.exit.344 + +while.body.343: ; preds = %while.hdr.342 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.345, label %if.merge.346 + +while.exit.344: ; preds = %while.hdr.342 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.995, i64 1 }) + ret { ptr, i64 } %call + +if.then.345: ; preds = %while.body.343 + %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 + br label %if.merge.346 + +if.merge.346: ; preds = %if.then.345, %while.body.343 + %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 76, 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.342 +} + +; 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.997, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.347 + +while.hdr.347: ; preds = %if.merge.351, %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.348, label %while.exit.349 + +while.body.348: ; preds = %while.hdr.347 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.350, label %if.merge.351 + +while.exit.349: ; preds = %while.hdr.347 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.998, i64 1 }) + ret { ptr, i64 } %call + +if.then.350: ; preds = %while.body.348 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.999, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.351 + +if.merge.351: ; preds = %if.then.350, %while.body.348 + %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 78, 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.347 } ; Function Attrs: nounwind @@ -3934,35 +8018,35 @@ entry: %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.333, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1000, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.211 + br label %while.hdr.352 -while.hdr.211: ; preds = %if.merge.215, %entry +while.hdr.352: ; preds = %if.merge.356, %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.212, label %while.exit.213 + br i1 %icmp, label %while.body.353, label %while.exit.354 -while.body.212: ; preds = %while.hdr.211 +while.body.353: ; preds = %while.hdr.352 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.214, label %if.merge.215 + br i1 %icmpN, label %if.then.355, label %if.merge.356 -while.exit.213: ; preds = %while.hdr.211 +while.exit.354: ; preds = %while.hdr.352 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.334, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1001, i64 1 }) ret { ptr, i64 } %call -if.then.214: ; preds = %while.body.212 +if.then.355: ; preds = %while.body.353 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.335, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1002, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.215 + br label %if.merge.356 -if.merge.215: ; preds = %if.then.214, %while.body.212 +if.merge.356: ; preds = %if.then.355, %while.body.353 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3978,7 +8062,7 @@ if.merge.215: ; preds = %if.then.214, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.211 + br label %while.hdr.352 } ; Function Attrs: nounwind @@ -3992,20 +8076,20 @@ entry: 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.237, label %if.else.238 + br i1 %icmp, label %if.then.390, label %if.else.391 -if.then.237: ; preds = %entry - br label %if.merge.239 +if.then.390: ; preds = %entry + br label %if.merge.392 -if.else.238: ; preds = %entry +if.else.391: ; 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.338, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.337, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.239 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1005, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1004, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.392 -if.merge.239: ; preds = %if.else.238, %if.then.237 - %bp = phi { ptr, i64 } [ { ptr @str.336, i64 4 }, %if.then.237 ], [ %callN, %if.else.238 ] +if.merge.392: ; preds = %if.else.391, %if.then.390 + %bp = phi { ptr, i64 } [ { ptr @str.1003, i64 4 }, %if.then.390 ], [ %callN, %if.else.391 ] ret { ptr, i64 } %bp } @@ -4020,20 +8104,20 @@ entry: 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.253, label %if.else.254 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.253: ; preds = %entry - br label %if.merge.255 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.254: ; preds = %entry +if.else.407: ; 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.341, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.340, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.255 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1008, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1007, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.255: ; preds = %if.else.254, %if.then.253 - %bp = phi { ptr, i64 } [ { ptr @str.339, i64 4 }, %if.then.253 ], [ %callN, %if.else.254 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.1006, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] ret { ptr, i64 } %bp } @@ -4048,20 +8132,20 @@ entry: 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.256, label %if.else.257 + br i1 %icmp, label %if.then.409, label %if.else.410 -if.then.256: ; preds = %entry - br label %if.merge.258 +if.then.409: ; preds = %entry + br label %if.merge.411 -if.else.257: ; preds = %entry +if.else.410: ; 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.344, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.343, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.258 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1011, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1010, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.411 -if.merge.258: ; preds = %if.else.257, %if.then.256 - %bp = phi { ptr, i64 } [ { ptr @str.342, i64 4 }, %if.then.256 ], [ %callN, %if.else.257 ] +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.1009, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] ret { ptr, i64 } %bp } @@ -4076,20 +8160,20 @@ entry: 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.259, label %if.else.260 + br i1 %icmp, label %if.then.412, label %if.else.413 -if.then.259: ; preds = %entry - br label %if.merge.261 +if.then.412: ; preds = %entry + br label %if.merge.414 -if.else.260: ; preds = %entry +if.else.413: ; 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.347, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.346, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.261 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1014, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1013, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.414 -if.merge.261: ; preds = %if.else.260, %if.then.259 - %bp = phi { ptr, i64 } [ { ptr @str.345, i64 4 }, %if.then.259 ], [ %callN, %if.else.260 ] +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.1012, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] ret { ptr, i64 } %bp } @@ -4104,20 +8188,20 @@ entry: 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.262, label %if.else.263 + br i1 %icmp, label %if.then.415, label %if.else.416 -if.then.262: ; preds = %entry - br label %if.merge.264 +if.then.415: ; preds = %entry + br label %if.merge.417 -if.else.263: ; preds = %entry +if.else.416: ; 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.350, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.349, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.264 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1017, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1016, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.417 -if.merge.264: ; preds = %if.else.263, %if.then.262 - %bp = phi { ptr, i64 } [ { ptr @str.348, i64 4 }, %if.then.262 ], [ %callN, %if.else.263 ] +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.1015, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] ret { ptr, i64 } %bp } @@ -4131,20 +8215,20 @@ entry: 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.265, label %if.else.266 + br i1 %icmp, label %if.then.418, label %if.else.419 -if.then.265: ; preds = %entry - br label %if.merge.267 +if.then.418: ; preds = %entry + br label %if.merge.420 -if.else.266: ; preds = %entry +if.else.419: ; 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.353, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.352, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.267 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1020, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1019, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.420 -if.merge.267: ; preds = %if.else.266, %if.then.265 - %bp = phi { ptr, i64 } [ { ptr @str.351, i64 4 }, %if.then.265 ], [ %callN, %if.else.266 ] +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.1018, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] ret { ptr, i64 } %bp } @@ -4159,20 +8243,20 @@ entry: 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.268, label %if.else.269 + br i1 %icmp, label %if.then.421, label %if.else.422 -if.then.268: ; preds = %entry - br label %if.merge.270 +if.then.421: ; preds = %entry + br label %if.merge.423 -if.else.269: ; preds = %entry +if.else.422: ; 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.356, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.355, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.270 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1023, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1022, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.423 -if.merge.270: ; preds = %if.else.269, %if.then.268 - %bp = phi { ptr, i64 } [ { ptr @str.354, i64 4 }, %if.then.268 ], [ %callN, %if.else.269 ] +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.1021, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] ret { ptr, i64 } %bp } @@ -4187,25 +8271,25 @@ entry: 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.271, label %if.else.272 + br i1 %icmp, label %if.then.424, label %if.else.425 -if.then.271: ; preds = %entry - br label %if.merge.273 +if.then.424: ; preds = %entry + br label %if.merge.426 -if.else.272: ; preds = %entry +if.else.425: ; 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.359, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.358, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.273 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1026, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1025, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.426 -if.merge.273: ; preds = %if.else.272, %if.then.271 - %bp = phi { ptr, i64 } [ { ptr @str.357, i64 4 }, %if.then.271 ], [ %callN, %if.else.272 ] +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.1024, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -4215,160 +8299,20 @@ entry: 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.274, label %if.else.275 + br i1 %icmp, label %if.then.427, label %if.else.428 -if.then.274: ; preds = %entry - br label %if.merge.276 +if.then.427: ; preds = %entry + br label %if.merge.429 -if.else.275: ; preds = %entry +if.else.428: ; 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.362, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.361, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.276 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1029, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1028, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.429 -if.merge.276: ; preds = %if.else.275, %if.then.274 - %bp = phi { ptr, i64 } [ { ptr @str.360, i64 4 }, %if.then.274 ], [ %callN, %if.else.275 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.277, label %if.else.278 - -if.then.277: ; preds = %entry - br label %if.merge.279 - -if.else.278: ; 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.365, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.364, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.279 - -if.merge.279: ; preds = %if.else.278, %if.then.277 - %bp = phi { ptr, i64 } [ { ptr @str.363, i64 4 }, %if.then.277 ], [ %callN, %if.else.278 ] - 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.280, label %if.else.281 - -if.then.280: ; preds = %entry - br label %if.merge.282 - -if.else.281: ; 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.368, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.367, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.282 - -if.merge.282: ; preds = %if.else.281, %if.then.280 - %bp = phi { ptr, i64 } [ { ptr @str.366, i64 4 }, %if.then.280 ], [ %callN, %if.else.281 ] - 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.283, label %if.else.284 - -if.then.283: ; preds = %entry - br label %if.merge.285 - -if.else.284: ; 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.371, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.370, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.285 - -if.merge.285: ; preds = %if.else.284, %if.then.283 - %bp = phi { ptr, i64 } [ { ptr @str.369, i64 4 }, %if.then.283 ], [ %callN, %if.else.284 ] - 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.286, label %if.else.287 - -if.then.286: ; preds = %entry - br label %if.merge.288 - -if.else.287: ; 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.374, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.373, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.288 - -if.merge.288: ; preds = %if.else.287, %if.then.286 - %bp = phi { ptr, i64 } [ { ptr @str.372, i64 4 }, %if.then.286 ], [ %callN, %if.else.287 ] - 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.289, label %if.else.290 - -if.then.289: ; preds = %entry - br label %if.merge.291 - -if.else.290: ; 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.377, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.376, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.291 - -if.merge.291: ; preds = %if.else.290, %if.then.289 - %bp = phi { ptr, i64 } [ { ptr @str.375, i64 4 }, %if.then.289 ], [ %callN, %if.else.290 ] +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.1027, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] ret { ptr, i64 } %bp } @@ -4383,76 +8327,20 @@ entry: 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.292, label %if.else.293 + br i1 %icmp, label %if.then.430, label %if.else.431 -if.then.292: ; preds = %entry - br label %if.merge.294 +if.then.430: ; preds = %entry + br label %if.merge.432 -if.else.293: ; preds = %entry +if.else.431: ; 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.380, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.379, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.294 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1032, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1031, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.432 -if.merge.294: ; preds = %if.else.293, %if.then.292 - %bp = phi { ptr, i64 } [ { ptr @str.378, i64 4 }, %if.then.292 ], [ %callN, %if.else.293 ] - 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.295, label %if.else.296 - -if.then.295: ; preds = %entry - br label %if.merge.297 - -if.else.296: ; 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.383, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.382, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.297 - -if.merge.297: ; preds = %if.else.296, %if.then.295 - %bp = phi { ptr, i64 } [ { ptr @str.381, i64 4 }, %if.then.295 ], [ %callN, %if.else.296 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Point(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.298, label %if.else.299 - -if.then.298: ; preds = %entry - br label %if.merge.300 - -if.else.299: ; 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.386, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.385, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.300 - -if.merge.300: ; preds = %if.else.299, %if.then.298 - %bp = phi { ptr, i64 } [ { ptr @str.384, i64 4 }, %if.then.298 ], [ %callN, %if.else.299 ] +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.1030, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] ret { ptr, i64 } %bp } @@ -4467,20 +8355,550 @@ entry: 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.301, label %if.else.302 + br i1 %icmp, label %if.then.433, label %if.else.434 -if.then.301: ; preds = %entry - br label %if.merge.303 +if.then.433: ; preds = %entry + br label %if.merge.435 -if.else.302: ; preds = %entry +if.else.434: ; 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.389, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.388, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.303 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1035, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1034, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.435 -if.merge.303: ; preds = %if.else.302, %if.then.301 - %bp = phi { ptr, i64 } [ { ptr @str.387, i64 4 }, %if.then.301 ], [ %callN, %if.else.302 ] +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.1033, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] + 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.436, label %if.else.437 + +if.then.436: ; preds = %entry + br label %if.merge.438 + +if.else.437: ; 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.1038, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1037, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.438 + +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.1036, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + 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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.1041, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1040, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.1039, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + 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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.1044, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1043, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.1042, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.1047, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1046, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.1045, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + 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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.1050, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1049, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.1048, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.1053, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1052, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.1051, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.1056, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1055, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.1054, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.1059, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1058, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.1057, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.1062, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1061, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.1060, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.1065, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1064, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.1063, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + 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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.1068, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1067, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.1066, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] + 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.469, label %if.else.470 + +if.then.469: ; preds = %entry + br label %if.merge.471 + +if.else.470: ; 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.1071, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1070, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.471 + +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.1069, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] + 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.472, label %if.else.473 + +if.then.472: ; preds = %entry + br label %if.merge.474 + +if.else.473: ; 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.1074, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1073, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.474 + +if.merge.474: ; preds = %if.else.473, %if.then.472 + %bp = phi { ptr, i64 } [ { ptr @str.1072, i64 4 }, %if.then.472 ], [ %callN, %if.else.473 ] + 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.475, label %if.else.476 + +if.then.475: ; preds = %entry + br label %if.merge.477 + +if.else.476: ; 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.1077, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1076, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.477 + +if.merge.477: ; preds = %if.else.476, %if.then.475 + %bp = phi { ptr, i64 } [ { ptr @str.1075, i64 4 }, %if.then.475 ], [ %callN, %if.else.476 ] + 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.478, label %if.else.479 + +if.then.478: ; preds = %entry + br label %if.merge.480 + +if.else.479: ; 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.1080, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1079, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.480 + +if.merge.480: ; preds = %if.else.479, %if.then.478 + %bp = phi { ptr, i64 } [ { ptr @str.1078, i64 4 }, %if.then.478 ], [ %callN, %if.else.479 ] + 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.481, label %if.else.482 + +if.then.481: ; preds = %entry + br label %if.merge.483 + +if.else.482: ; 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.1083, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1082, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.483 + +if.merge.483: ; preds = %if.else.482, %if.then.481 + %bp = phi { ptr, i64 } [ { ptr @str.1081, i64 4 }, %if.then.481 ], [ %callN, %if.else.482 ] + 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.484, label %if.else.485 + +if.then.484: ; preds = %entry + br label %if.merge.486 + +if.else.485: ; 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.1086, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1085, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.486 + +if.merge.486: ; preds = %if.else.485, %if.then.484 + %bp = phi { ptr, i64 } [ { ptr @str.1084, i64 4 }, %if.then.484 ], [ %callN, %if.else.485 ] + 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.487, label %if.else.488 + +if.then.487: ; preds = %entry + br label %if.merge.489 + +if.else.488: ; 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.1089, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1088, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.489 + +if.merge.489: ; preds = %if.else.488, %if.then.487 + %bp = phi { ptr, i64 } [ { ptr @str.1087, i64 4 }, %if.then.487 ], [ %callN, %if.else.488 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Point(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.490, label %if.else.491 + +if.then.490: ; preds = %entry + br label %if.merge.492 + +if.else.491: ; 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.1092, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1091, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.492 + +if.merge.492: ; preds = %if.else.491, %if.then.490 + %bp = phi { ptr, i64 } [ { ptr @str.1090, i64 4 }, %if.then.490 ], [ %callN, %if.else.491 ] ret { ptr, i64 } %bp } @@ -4495,19 +8913,115 @@ entry: 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.304, label %if.else.305 + br i1 %icmp, label %if.then.493, label %if.else.494 -if.then.304: ; preds = %entry - br label %if.merge.306 +if.then.493: ; preds = %entry + br label %if.merge.495 -if.else.305: ; preds = %entry +if.else.494: ; 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.392, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.391, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.306 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1095, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1094, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.495 -if.merge.306: ; preds = %if.else.305, %if.then.304 - %bp = phi { ptr, i64 } [ { ptr @str.390, i64 4 }, %if.then.304 ], [ %callN, %if.else.305 ] +if.merge.495: ; preds = %if.else.494, %if.then.493 + %bp = phi { ptr, i64 } [ { ptr @str.1093, i64 4 }, %if.then.493 ], [ %callN, %if.else.494 ] 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.502, label %if.merge.503 + +if.then.502: ; preds = %entry + ret { ptr, i64 } { ptr @str.1096, i64 4 } + +if.merge.503: ; 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 39, 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.504, label %if.merge.505 + +if.then.504: ; preds = %entry + ret { ptr, i64 } { ptr @str.1097, i64 4 } + +if.merge.505: ; 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_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.506, label %if.merge.507 + +if.then.506: ; preds = %entry + ret { ptr, i64 } { ptr @str.1098, i64 4 } + +if.merge.507: ; 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 45, 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.508, label %if.merge.509 + +if.then.508: ; preds = %entry + ret { ptr, i64 } { ptr @str.1099, i64 4 } + +if.merge.509: ; 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 88, 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/0044-basic-default-arg-expansion.ir b/examples/expected/0044-basic-default-arg-expansion.ir index f31d3c8..0e0afc4 100644 --- a/examples/expected/0044-basic-default-arg-expansion.ir +++ b/examples/expected/0044-basic-default-arg-expansion.ir @@ -1,270 +1,625 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [74 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [162 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.64 = private constant [5 x i8] c"*s64\00" -@tn.str.65 = private constant [7 x i8] c"**void\00" -@tn.str.66 = private constant [5 x i8] c"*s32\00" -@tn.str.67 = private constant [8 x i8] c"*string\00" -@tn.str.68 = private constant [6 x i8] c"[]Any\00" -@tn.str.69 = private constant [5 x i8] c"*Any\00" -@tn.str.70 = private constant [7 x i8] c"[1]Any\00" -@tn.str.71 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.72 = private constant [7 x i8] c"*[]Any\00" -@tn.str.73 = private constant [4 x i8] c"*u8\00" -@tn.str.74 = private constant [6 x i8] c"*bool\00" -@tn.str.75 = private constant [7 x i8] c"[3]Any\00" -@tn.str.76 = private constant [8 x i8] c"*[3]Any\00" -@tn.str.77 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.78 = private constant [5 x i8] c"*f64\00" -@tn.str.79 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.80 = private constant [11 x i8] c"*Allocator\00" -@tn.str.81 = private constant [9 x i8] c"*Context\00" -@tn.str.82 = private constant [10 x i8] c"*[]string\00" -@tn.str.83 = private constant [6 x i8] c"**GPA\00" -@tn.str.84 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.85 = private constant [8 x i8] c"**Arena\00" -@tn.str.86 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.87 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.88 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.89 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.90 = private constant [6 x i8] c"**s64\00" -@tn.str.91 = private constant [8 x i8] c"***void\00" -@tn.str.92 = private constant [6 x i8] c"**s32\00" -@tn.str.93 = private constant [9 x i8] c"**string\00" -@tn.str.94 = private constant [6 x i8] c"**Any\00" -@tn.str.95 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.96 = private constant [8 x i8] c"**[]Any\00" -@tn.str.97 = private constant [5 x i8] c"**u8\00" -@tn.str.98 = private constant [7 x i8] c"**bool\00" -@tn.str.99 = private constant [9 x i8] c"**[3]Any\00" -@__sx_type_names = private constant [74 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 12 }, { ptr, i64 } { ptr @tn.str.64, i64 4 }, { ptr, i64 } { ptr @tn.str.65, i64 6 }, { ptr, i64 } { ptr @tn.str.66, i64 4 }, { ptr, i64 } { ptr @tn.str.67, i64 7 }, { ptr, i64 } { ptr @tn.str.68, i64 5 }, { ptr, i64 } { ptr @tn.str.69, i64 4 }, { ptr, i64 } { ptr @tn.str.70, i64 6 }, { ptr, i64 } { ptr @tn.str.71, i64 7 }, { ptr, i64 } { ptr @tn.str.72, i64 6 }, { ptr, i64 } { ptr @tn.str.73, i64 3 }, { ptr, i64 } { ptr @tn.str.74, i64 5 }, { ptr, i64 } { ptr @tn.str.75, i64 6 }, { ptr, i64 } { ptr @tn.str.76, i64 7 }, { ptr, i64 } { ptr @tn.str.77, i64 7 }, { ptr, i64 } { ptr @tn.str.78, i64 4 }, { ptr, i64 } { ptr @tn.str.79, i64 16 }, { ptr, i64 } { ptr @tn.str.80, i64 10 }, { ptr, i64 } { ptr @tn.str.81, i64 8 }, { ptr, i64 } { ptr @tn.str.82, i64 9 }, { ptr, i64 } { ptr @tn.str.83, i64 5 }, { ptr, i64 } { ptr @tn.str.84, i64 12 }, { ptr, i64 } { ptr @tn.str.85, i64 7 }, { ptr, i64 } { ptr @tn.str.86, i64 6 }, { ptr, i64 } { ptr @tn.str.87, i64 10 }, { ptr, i64 } { ptr @tn.str.88, i64 19 }, { ptr, i64 } { ptr @tn.str.89, i64 13 }, { ptr, i64 } { ptr @tn.str.90, i64 5 }, { ptr, i64 } { ptr @tn.str.91, i64 7 }, { ptr, i64 } { ptr @tn.str.92, i64 5 }, { ptr, i64 } { ptr @tn.str.93, i64 8 }, { ptr, i64 } { ptr @tn.str.94, i64 5 }, { ptr, i64 } { ptr @tn.str.95, i64 8 }, { ptr, i64 } { ptr @tn.str.96, i64 7 }, { ptr, i64 } { ptr @tn.str.97, i64 4 }, { ptr, i64 } { ptr @tn.str.98, i64 6 }, { ptr, i64 } { ptr @tn.str.99, i64 8 }] -@str.100 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.101 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.102 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.103 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.104 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.105 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.106 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.107 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.108 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.109 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.110 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.111 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.112 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.113 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.114 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.115 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.116 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.117 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.118 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.119 = private unnamed_addr constant [2 x i8] c"v\00", align 1 -@str.120 = private unnamed_addr constant [2 x i8] c"!\00", align 1 -@str.121 = private unnamed_addr constant [2 x i8] c"x\00", align 1 -@str.122 = private unnamed_addr constant [2 x i8] c"!\00", align 1 -@str.123 = private unnamed_addr constant [2 x i8] c"y\00", align 1 -@str.124 = private unnamed_addr constant [2 x i8] c"?\00", align 1 -@str.125 = private unnamed_addr constant [13 x i8] c"default: {}\0A\00", align 1 -@str.126 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.127 = private unnamed_addr constant [13 x i8] c"default: {}\0A\00", align 1 -@str.128 = private unnamed_addr constant [14 x i8] c"explicit: {}\0A\00", align 1 -@str.129 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.130 = private unnamed_addr constant [14 x i8] c"explicit: {}\0A\00", align 1 -@str.131 = private unnamed_addr constant [8 x i8] c"{}{}{}\0A\00", align 1 -@str.132 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.133 = private unnamed_addr constant [8 x i8] c"{}{}{}\0A\00", align 1 -@str.134 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.135 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.136 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.237 = private constant [7 x i8] c"**void\00" +@tn.str.238 = private constant [8 x i8] c"*string\00" +@tn.str.239 = private constant [6 x i8] c"[]Any\00" +@tn.str.240 = private constant [5 x i8] c"*Any\00" +@tn.str.241 = private constant [7 x i8] c"[1]Any\00" +@tn.str.242 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.243 = private constant [7 x i8] c"*[]Any\00" +@tn.str.244 = private constant [6 x i8] c"*bool\00" +@tn.str.245 = private constant [7 x i8] c"[3]Any\00" +@tn.str.246 = private constant [8 x i8] c"*[3]Any\00" +@tn.str.247 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.248 = private constant [5 x i8] c"*f64\00" +@tn.str.249 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.250 = private constant [11 x i8] c"*Allocator\00" +@tn.str.251 = private constant [9 x i8] c"*Context\00" +@tn.str.252 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.253 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.254 = private constant [8 x i8] c"*Member\00" +@tn.str.255 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.256 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.257 = private constant [9 x i8] c"*Command\00" +@tn.str.258 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.259 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.260 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.261 = private constant [7 x i8] c"*Value\00" +@tn.str.262 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.263 = private constant [14 x i8] c"*Architecture\00" +@tn.str.264 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.265 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.266 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.267 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.268 = private constant [10 x i8] c"*[]string\00" +@tn.str.269 = private constant [6 x i8] c"*[]u8\00" +@tn.str.270 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.271 = private constant [11 x i8] c"*[]Command\00" +@tn.str.272 = private constant [6 x i8] c"**GPA\00" +@tn.str.273 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.274 = private constant [8 x i8] c"**Arena\00" +@tn.str.275 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.276 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.277 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.278 = private constant [7 x i8] c"**File\00" +@tn.str.279 = private constant [5 x i8] c"**u8\00" +@tn.str.280 = private constant [6 x i8] c"**s32\00" +@tn.str.281 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.282 = private constant [6 x i8] c"**u32\00" +@tn.str.283 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.284 = private constant [8 x i8] c"**Array\00" +@tn.str.285 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.286 = private constant [9 x i8] c"**Object\00" +@tn.str.287 = private constant [7 x i8] c"**Sink\00" +@tn.str.288 = private constant [9 x i8] c"**Parser\00" +@tn.str.289 = private constant [6 x i8] c"**s64\00" +@tn.str.290 = private constant [9 x i8] c"**Parsed\00" +@tn.str.291 = private constant [7 x i8] c"**Diag\00" +@tn.str.292 = private constant [9 x i8] c"**Sha256\00" +@tn.str.293 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.294 = private constant [8 x i8] c"***void\00" +@tn.str.295 = private constant [9 x i8] c"**string\00" +@tn.str.296 = private constant [6 x i8] c"**Any\00" +@tn.str.297 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.298 = private constant [8 x i8] c"**[]Any\00" +@tn.str.299 = private constant [7 x i8] c"**bool\00" +@tn.str.300 = private constant [9 x i8] c"**[3]Any\00" +@tn.str.301 = private constant [7 x i8] c"*?File\00" +@tn.str.302 = private constant [9 x i8] c"*?string\00" +@tn.str.303 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.304 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [162 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 12 }, { ptr, i64 } { ptr @tn.str.237, i64 6 }, { ptr, i64 } { ptr @tn.str.238, i64 7 }, { ptr, i64 } { ptr @tn.str.239, i64 5 }, { ptr, i64 } { ptr @tn.str.240, i64 4 }, { ptr, i64 } { ptr @tn.str.241, i64 6 }, { ptr, i64 } { ptr @tn.str.242, i64 7 }, { ptr, i64 } { ptr @tn.str.243, i64 6 }, { ptr, i64 } { ptr @tn.str.244, i64 5 }, { ptr, i64 } { ptr @tn.str.245, i64 6 }, { ptr, i64 } { ptr @tn.str.246, i64 7 }, { ptr, i64 } { ptr @tn.str.247, i64 7 }, { ptr, i64 } { ptr @tn.str.248, i64 4 }, { ptr, i64 } { ptr @tn.str.249, i64 16 }, { ptr, i64 } { ptr @tn.str.250, i64 10 }, { ptr, i64 } { ptr @tn.str.251, i64 8 }, { ptr, i64 } { ptr @tn.str.252, i64 11 }, { ptr, i64 } { ptr @tn.str.253, i64 14 }, { ptr, i64 } { ptr @tn.str.254, i64 7 }, { ptr, i64 } { ptr @tn.str.255, i64 13 }, { ptr, i64 } { ptr @tn.str.256, i64 9 }, { ptr, i64 } { ptr @tn.str.257, i64 8 }, { ptr, i64 } { ptr @tn.str.258, i64 10 }, { ptr, i64 } { ptr @tn.str.259, i64 9 }, { ptr, i64 } { ptr @tn.str.260, i64 9 }, { ptr, i64 } { ptr @tn.str.261, i64 6 }, { ptr, i64 } { ptr @tn.str.262, i64 16 }, { ptr, i64 } { ptr @tn.str.263, i64 13 }, { ptr, i64 } { ptr @tn.str.264, i64 14 }, { ptr, i64 } { ptr @tn.str.265, i64 7 }, { ptr, i64 } { ptr @tn.str.266, i64 7 }, { ptr, i64 } { ptr @tn.str.267, i64 8 }, { ptr, i64 } { ptr @tn.str.268, i64 9 }, { ptr, i64 } { ptr @tn.str.269, i64 5 }, { ptr, i64 } { ptr @tn.str.270, i64 11 }, { ptr, i64 } { ptr @tn.str.271, i64 10 }, { ptr, i64 } { ptr @tn.str.272, i64 5 }, { ptr, i64 } { ptr @tn.str.273, i64 12 }, { ptr, i64 } { ptr @tn.str.274, i64 7 }, { ptr, i64 } { ptr @tn.str.275, i64 6 }, { ptr, i64 } { ptr @tn.str.276, i64 10 }, { ptr, i64 } { ptr @tn.str.277, i64 19 }, { ptr, i64 } { ptr @tn.str.278, i64 6 }, { ptr, i64 } { ptr @tn.str.279, i64 4 }, { ptr, i64 } { ptr @tn.str.280, i64 5 }, { ptr, i64 } { ptr @tn.str.281, i64 10 }, { ptr, i64 } { ptr @tn.str.282, i64 5 }, { ptr, i64 } { ptr @tn.str.283, i64 9 }, { ptr, i64 } { ptr @tn.str.284, i64 7 }, { ptr, i64 } { ptr @tn.str.285, i64 10 }, { ptr, i64 } { ptr @tn.str.286, i64 8 }, { ptr, i64 } { ptr @tn.str.287, i64 6 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 5 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 6 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 13 }, { ptr, i64 } { ptr @tn.str.294, i64 7 }, { ptr, i64 } { ptr @tn.str.295, i64 8 }, { ptr, i64 } { ptr @tn.str.296, i64 5 }, { ptr, i64 } { ptr @tn.str.297, i64 8 }, { ptr, i64 } { ptr @tn.str.298, i64 7 }, { ptr, i64 } { ptr @tn.str.299, i64 6 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 6 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }, { ptr, i64 } { ptr @tn.str.303, i64 15 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }] +@str.305 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.306 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.307 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.311 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.312 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.313 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.314 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.315 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.316 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.317 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.318 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.319 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.320 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.321 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.322 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.323 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.324 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.325 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.326 = private unnamed_addr constant [2 x i8] c"v\00", align 1 +@str.327 = private unnamed_addr constant [2 x i8] c"!\00", align 1 +@str.328 = private unnamed_addr constant [2 x i8] c"x\00", align 1 +@str.329 = private unnamed_addr constant [2 x i8] c"!\00", align 1 +@str.330 = private unnamed_addr constant [2 x i8] c"y\00", align 1 +@str.331 = private unnamed_addr constant [2 x i8] c"?\00", align 1 +@str.332 = private unnamed_addr constant [13 x i8] c"default: {}\0A\00", align 1 +@str.333 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.334 = private unnamed_addr constant [13 x i8] c"default: {}\0A\00", align 1 +@str.335 = private unnamed_addr constant [14 x i8] c"explicit: {}\0A\00", align 1 +@str.336 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.337 = private unnamed_addr constant [14 x i8] c"explicit: {}\0A\00", align 1 +@str.338 = private unnamed_addr constant [8 x i8] c"{}{}{}\0A\00", align 1 +@str.339 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.340 = private unnamed_addr constant [8 x i8] c"{}{}{}\0A\00", align 1 +@str.341 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.342 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.343 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.344 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.138 = private constant [5 x i8] c"line\00" -@fld.str.139 = private constant [4 x i8] c"col\00" -@fld.str.140 = 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.138, i64 4 }, { ptr, i64 } { ptr @fld.str.139, i64 3 }, { ptr, i64 } { ptr @fld.str.140, i64 4 }] -@str.141 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.142 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.144 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.145 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.146 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.147 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.148 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.149 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.151 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.152 = private constant [12 x i8] c"alloc_count\00" -@field_names.153 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.152, i64 11 }] -@str.154 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.155 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.156 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.157 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.158 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.159 = private constant [5 x i8] c"next\00" -@fld.str.160 = private constant [4 x i8] c"cap\00" -@field_names.161 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.159, i64 4 }, { ptr, i64 } { ptr @fld.str.160, i64 3 }] -@str.162 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.163 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.164 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.165 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.166 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.167 = private constant [4 x i8] c"ctx\00" -@fld.str.168 = private constant [6 x i8] c"alloc\00" -@fld.str.169 = private constant [8 x i8] c"dealloc\00" -@field_names.170 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.167, i64 3 }, { ptr, i64 } { ptr @fld.str.168, i64 5 }, { ptr, i64 } { ptr @fld.str.169, i64 7 }] -@str.171 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.172 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.173 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.174 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.176 = private constant [6 x i8] c"first\00" -@fld.str.177 = private constant [10 x i8] c"end_index\00" -@fld.str.178 = private constant [7 x i8] c"parent\00" -@field_names.179 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.176, i64 5 }, { ptr, i64 } { ptr @fld.str.177, i64 9 }, { ptr, i64 } { ptr @fld.str.178, i64 6 }] -@str.180 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.181 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.182 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.183 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.184 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.185 = private constant [4 x i8] c"buf\00" -@fld.str.186 = private constant [4 x i8] c"len\00" -@fld.str.187 = private constant [4 x i8] c"pos\00" -@field_names.188 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.185, i64 3 }, { ptr, i64 } { ptr @fld.str.186, i64 3 }, { ptr, i64 } { ptr @fld.str.187, i64 3 }] -@str.189 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.190 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.191 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.192 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.193 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.194 = private constant [7 x i8] c"parent\00" -@fld.str.195 = private constant [12 x i8] c"alloc_count\00" -@fld.str.196 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.197 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.198 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.194, i64 6 }, { ptr, i64 } { ptr @fld.str.195, i64 11 }, { ptr, i64 } { ptr @fld.str.196, i64 13 }, { ptr, i64 } { ptr @fld.str.197, i64 17 }] -@str.199 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.200 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.201 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.203 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.204 = private constant [10 x i8] c"allocator\00" -@fld.str.205 = private constant [5 x i8] c"data\00" -@field_names.206 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.204, i64 9 }, { ptr, i64 } { ptr @fld.str.205, i64 4 }] -@str.207 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.209 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.210 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.212 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.213 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.214 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.215 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.216 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.217 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.218 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.219 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.220 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.221 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.222 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.223 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.224 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.225 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.226 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.227 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.228 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.229 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.230 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.231 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.232 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.233 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.234 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.235 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.236 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.237 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.238 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.239 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.240 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.241 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.242 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.243 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.244 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.245 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.246 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.247 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.248 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.249 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.250 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.251 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.252 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.253 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.254 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.255 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.256 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.257 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.258 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.259 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.260 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.261 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.262 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.263 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.264 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.265 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.266 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.267 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.268 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.269 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.270 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.271 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.272 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.273 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.274 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.275 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.276 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.277 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.278 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 -@str.279 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.345 = private constant [5 x i8] c"line\00" +@fld.str.346 = private constant [4 x i8] c"col\00" +@fld.str.347 = 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.345, i64 4 }, { ptr, i64 } { ptr @fld.str.346, i64 3 }, { ptr, i64 } { ptr @fld.str.347, i64 4 }] +@str.348 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.349 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.350 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.352 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.353 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.354 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.355 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.356 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.357 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.358 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.359 = private constant [12 x i8] c"alloc_count\00" +@field_names.360 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.359, i64 11 }] +@str.361 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.362 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.363 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.364 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.365 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.366 = private constant [5 x i8] c"next\00" +@fld.str.367 = private constant [4 x i8] c"cap\00" +@field_names.368 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.366, i64 4 }, { ptr, i64 } { ptr @fld.str.367, i64 3 }] +@str.369 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.370 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.371 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.372 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.373 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.374 = private constant [4 x i8] c"ctx\00" +@fld.str.375 = private constant [6 x i8] c"alloc\00" +@fld.str.376 = private constant [8 x i8] c"dealloc\00" +@field_names.377 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.374, i64 3 }, { ptr, i64 } { ptr @fld.str.375, i64 5 }, { ptr, i64 } { ptr @fld.str.376, i64 7 }] +@str.378 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.379 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.380 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.381 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.382 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.383 = private constant [6 x i8] c"first\00" +@fld.str.384 = private constant [10 x i8] c"end_index\00" +@fld.str.385 = private constant [7 x i8] c"parent\00" +@field_names.386 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.383, i64 5 }, { ptr, i64 } { ptr @fld.str.384, i64 9 }, { ptr, i64 } { ptr @fld.str.385, i64 6 }] +@str.387 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.388 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.389 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.390 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.391 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.392 = private constant [4 x i8] c"buf\00" +@fld.str.393 = private constant [4 x i8] c"len\00" +@fld.str.394 = private constant [4 x i8] c"pos\00" +@field_names.395 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.392, i64 3 }, { ptr, i64 } { ptr @fld.str.393, i64 3 }, { ptr, i64 } { ptr @fld.str.394, i64 3 }] +@str.396 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.397 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.398 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.399 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.400 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.401 = private constant [7 x i8] c"parent\00" +@fld.str.402 = private constant [12 x i8] c"alloc_count\00" +@fld.str.403 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.404 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.405 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.401, i64 6 }, { ptr, i64 } { ptr @fld.str.402, i64 11 }, { ptr, i64 } { ptr @fld.str.403, i64 13 }, { ptr, i64 } { ptr @fld.str.404, i64 17 }] +@str.406 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.407 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.408 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.409 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.410 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.411 = private constant [10 x i8] c"allocator\00" +@fld.str.412 = private constant [5 x i8] c"data\00" +@field_names.413 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.411, i64 9 }, { ptr, i64 } { ptr @fld.str.412, i64 4 }] +@str.414 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.415 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.416 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.417 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.418 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.419 = private constant [3 x i8] c"fd\00" +@field_names.420 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.419, i64 2 }] +@str.421 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.422 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.423 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.424 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.425 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.426 = private constant [5 x i8] c"file\00" +@fld.str.427 = private constant [5 x i8] c"line\00" +@fld.str.428 = private constant [4 x i8] c"col\00" +@fld.str.429 = private constant [5 x i8] c"func\00" +@fld.str.430 = private constant [10 x i8] c"line_text\00" +@field_names.431 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.426, i64 4 }, { ptr, i64 } { ptr @fld.str.427, i64 4 }, { ptr, i64 } { ptr @fld.str.428, i64 3 }, { ptr, i64 } { ptr @fld.str.429, i64 4 }, { ptr, i64 } { ptr @fld.str.430, i64 9 }] +@str.432 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.433 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.434 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.435 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.436 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.437 = private constant [10 x i8] c"exit_code\00" +@fld.str.438 = private constant [7 x i8] c"stdout\00" +@field_names.439 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.437, i64 9 }, { ptr, i64 } { ptr @fld.str.438, i64 6 }] +@str.440 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.441 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.442 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.443 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.444 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.445 = private constant [8 x i8] c"sin_len\00" +@fld.str.446 = private constant [11 x i8] c"sin_family\00" +@fld.str.447 = private constant [9 x i8] c"sin_port\00" +@fld.str.448 = private constant [9 x i8] c"sin_addr\00" +@fld.str.449 = private constant [9 x i8] c"sin_zero\00" +@field_names.450 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.445, i64 7 }, { ptr, i64 } { ptr @fld.str.446, i64 10 }, { ptr, i64 } { ptr @fld.str.447, i64 8 }, { ptr, i64 } { ptr @fld.str.448, i64 8 }, { ptr, i64 } { ptr @fld.str.449, i64 8 }] +@str.451 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.452 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.453 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.454 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.455 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.456 = private constant [6 x i8] c"items\00" +@fld.str.457 = private constant [4 x i8] c"len\00" +@fld.str.458 = private constant [4 x i8] c"cap\00" +@field_names.459 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.456, i64 5 }, { ptr, i64 } { ptr @fld.str.457, i64 3 }, { ptr, i64 } { ptr @fld.str.458, i64 3 }] +@str.460 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.461 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.462 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.463 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.464 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.465 = private constant [6 x i8] c"items\00" +@fld.str.466 = private constant [4 x i8] c"len\00" +@fld.str.467 = private constant [4 x i8] c"cap\00" +@field_names.468 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.465, i64 5 }, { ptr, i64 } { ptr @fld.str.466, i64 3 }, { ptr, i64 } { ptr @fld.str.467, i64 3 }] +@str.469 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.470 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.471 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.472 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.473 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.474 = private constant [4 x i8] c"key\00" +@fld.str.475 = private constant [4 x i8] c"val\00" +@field_names.476 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.474, i64 3 }, { ptr, i64 } { ptr @fld.str.475, i64 3 }] +@str.477 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.478 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.479 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.480 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.481 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.482 = private constant [4 x i8] c"dst\00" +@fld.str.483 = private constant [4 x i8] c"pos\00" +@fld.str.484 = private constant [5 x i8] c"file\00" +@field_names.485 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.482, i64 3 }, { ptr, i64 } { ptr @fld.str.483, i64 3 }, { ptr, i64 } { ptr @fld.str.484, i64 4 }] +@str.486 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.487 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.488 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.489 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.490 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.491 = private constant [4 x i8] c"src\00" +@fld.str.492 = private constant [4 x i8] c"pos\00" +@fld.str.493 = private constant [6 x i8] c"alloc\00" +@field_names.494 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.491, i64 3 }, { ptr, i64 } { ptr @fld.str.492, i64 3 }, { ptr, i64 } { ptr @fld.str.493, i64 5 }] +@str.495 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.496 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.497 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.498 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.499 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.500 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.501 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.502 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.503 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.504 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.505 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.506 = private constant [5 x i8] c"name\00" +@fld.str.507 = private constant [12 x i8] c"takes_value\00" +@fld.str.508 = private constant [9 x i8] c"required\00" +@field_names.509 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.506, i64 4 }, { ptr, i64 } { ptr @fld.str.507, i64 11 }, { ptr, i64 } { ptr @fld.str.508, i64 8 }] +@str.510 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.511 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.512 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.513 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.514 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.515 = private constant [6 x i8] c"group\00" +@fld.str.516 = private constant [8 x i8] c"command\00" +@fld.str.517 = private constant [6 x i8] c"flags\00" +@field_names.518 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.515, i64 5 }, { ptr, i64 } { ptr @fld.str.516, i64 7 }, { ptr, i64 } { ptr @fld.str.517, i64 5 }] +@str.519 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.520 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.521 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.522 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.523 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.524 = private constant [4 x i8] c"set\00" +@fld.str.525 = private constant [6 x i8] c"value\00" +@field_names.526 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.524, i64 3 }, { ptr, i64 } { ptr @fld.str.525, i64 5 }] +@str.527 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.528 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.529 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.530 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.531 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.532 = private constant [6 x i8] c"index\00" +@fld.str.533 = private constant [6 x i8] c"token\00" +@field_names.534 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.532, i64 5 }, { ptr, i64 } { ptr @fld.str.533, i64 5 }] +@str.535 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.536 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.537 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.538 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.539 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.540 = private constant [6 x i8] c"group\00" +@fld.str.541 = private constant [8 x i8] c"command\00" +@fld.str.542 = private constant [10 x i8] c"cmd_index\00" +@fld.str.543 = private constant [5 x i8] c"json\00" +@fld.str.544 = private constant [5 x i8] c"rest\00" +@fld.str.545 = private constant [5 x i8] c"spec\00" +@fld.str.546 = private constant [7 x i8] c"values\00" +@field_names.547 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.540, i64 5 }, { ptr, i64 } { ptr @fld.str.541, i64 7 }, { ptr, i64 } { ptr @fld.str.542, i64 9 }, { ptr, i64 } { ptr @fld.str.543, i64 4 }, { ptr, i64 } { ptr @fld.str.544, i64 4 }, { ptr, i64 } { ptr @fld.str.545, i64 4 }, { ptr, i64 } { ptr @fld.str.546, i64 6 }] +@str.548 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.549 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.550 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.551 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.552 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.553 = private constant [2 x i8] c"h\00" +@fld.str.554 = private constant [4 x i8] c"buf\00" +@fld.str.555 = private constant [8 x i8] c"buf_len\00" +@fld.str.556 = private constant [10 x i8] c"total_len\00" +@field_names.557 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.553, i64 1 }, { ptr, i64 } { ptr @fld.str.554, i64 3 }, { ptr, i64 } { ptr @fld.str.555, i64 7 }, { ptr, i64 } { ptr @fld.str.556, i64 9 }] +@str.558 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.559 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.560 = private constant [5 x i8] c"read\00" +@fld.str.561 = private constant [6 x i8] c"write\00" +@fld.str.562 = private constant [7 x i8] c"append\00" +@fld.str.563 = private constant [11 x i8] c"read_write\00" +@field_names.564 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.560, i64 4 }, { ptr, i64 } { ptr @fld.str.561, i64 5 }, { ptr, i64 } { ptr @fld.str.562, i64 6 }, { ptr, i64 } { ptr @fld.str.563, i64 10 }] +@str.565 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.566 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.567 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.568 = private constant [4 x i8] c"set\00" +@fld.str.569 = private constant [8 x i8] c"current\00" +@fld.str.570 = private constant [4 x i8] c"end\00" +@field_names.571 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.568, i64 3 }, { ptr, i64 } { ptr @fld.str.569, i64 7 }, { ptr, i64 } { ptr @fld.str.570, i64 3 }] +@str.572 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.573 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.574 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.575 = private constant [6 x i8] c"null_\00" +@fld.str.576 = private constant [6 x i8] c"bool_\00" +@fld.str.577 = private constant [5 x i8] c"int_\00" +@fld.str.578 = private constant [4 x i8] c"str\00" +@fld.str.579 = private constant [6 x i8] c"array\00" +@fld.str.580 = private constant [7 x i8] c"object\00" +@field_names.581 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.575, i64 5 }, { ptr, i64 } { ptr @fld.str.576, i64 5 }, { ptr, i64 } { ptr @fld.str.577, i64 4 }, { ptr, i64 } { ptr @fld.str.578, i64 3 }, { ptr, i64 } { ptr @fld.str.579, i64 5 }, { ptr, i64 } { ptr @fld.str.580, i64 6 }] +@str.582 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.583 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.584 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.585 = private constant [6 x i8] c"macos\00" +@fld.str.586 = private constant [6 x i8] c"linux\00" +@fld.str.587 = private constant [8 x i8] c"windows\00" +@fld.str.588 = private constant [5 x i8] c"wasm\00" +@fld.str.589 = private constant [4 x i8] c"ios\00" +@fld.str.590 = private constant [8 x i8] c"android\00" +@fld.str.591 = private constant [8 x i8] c"unknown\00" +@field_names.592 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.585, i64 5 }, { ptr, i64 } { ptr @fld.str.586, i64 5 }, { ptr, i64 } { ptr @fld.str.587, i64 7 }, { ptr, i64 } { ptr @fld.str.588, i64 4 }, { ptr, i64 } { ptr @fld.str.589, i64 3 }, { ptr, i64 } { ptr @fld.str.590, i64 7 }, { ptr, i64 } { ptr @fld.str.591, i64 7 }] +@str.593 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.594 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.595 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.596 = private constant [8 x i8] c"aarch64\00" +@fld.str.597 = private constant [7 x i8] c"x86_64\00" +@fld.str.598 = private constant [7 x i8] c"wasm32\00" +@fld.str.599 = private constant [7 x i8] c"wasm64\00" +@fld.str.600 = private constant [8 x i8] c"unknown\00" +@field_names.601 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.596, i64 7 }, { ptr, i64 } { ptr @fld.str.597, i64 6 }, { ptr, i64 } { ptr @fld.str.598, i64 6 }, { ptr, i64 } { ptr @fld.str.599, i64 6 }, { ptr, i64 } { ptr @fld.str.600, i64 7 }] +@str.602 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.603 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.604 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.606 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.609 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.612 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.615 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.618 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.621 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.624 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.627 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.628 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.629 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.630 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.631 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.632 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.633 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.634 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.635 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.636 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.637 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.638 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.639 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.640 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.641 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.642 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.643 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.644 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.645 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.646 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.647 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.648 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.649 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.650 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.651 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.652 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.653 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.654 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.655 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.656 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.657 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.658 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.659 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.660 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.661 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.662 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.663 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.664 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.665 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.666 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.667 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.668 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.669 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.670 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.671 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.672 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.673 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.674 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.675 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.677 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.678 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.679 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.680 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.681 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.682 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.683 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.684 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.685 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.686 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.687 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.688 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.689 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.690 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.691 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.692 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.693 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.694 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.695 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.696 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.698 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.699 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.700 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.701 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.702 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.703 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.704 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.705 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.706 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.707 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.708 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.709 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.710 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.711 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.712 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.713 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.714 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.715 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.716 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.717 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.718 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.719 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.720 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.722 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.723 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.724 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.725 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.726 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.727 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.728 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.729 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.730 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.731 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 +@str.732 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.733 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.734 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.735 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.736 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -496,7 +851,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -623,7 +978,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -792,38 +1147,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.210 + br label %while.hdr.377 -while.hdr.210: ; preds = %if.merge.215, %entry +while.hdr.377: ; preds = %if.merge.382, %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.211, label %while.exit.212 + br i1 %icmp, label %while.body.378, label %while.exit.379 -while.body.211: ; preds = %while.hdr.210 +while.body.378: ; preds = %while.hdr.377 %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.213, label %if.else.214 + br i1 %icmpN, label %if.then.380, label %if.else.381 -while.exit.212: ; preds = %while.hdr.210 +while.exit.379: ; preds = %while.hdr.377 ret void -if.then.213: ; preds = %while.body.211 +if.then.380: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.215 + br label %if.merge.382 -if.else.214: ; preds = %while.body.211 +if.else.381: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.215 + br label %if.merge.382 -if.merge.215: ; preds = %if.else.214, %if.then.213 - %bp = phi i64 [ %addN, %if.then.213 ], [ %addN, %if.else.214 ] +if.merge.382: ; preds = %if.else.381, %if.then.380 + %bp = phi i64 [ %addN, %if.then.380 ], [ %addN, %if.else.381 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -836,7 +1191,7 @@ if.merge.215: ; preds = %if.else.214, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.210 + br label %while.hdr.377 } ; Function Attrs: nounwind @@ -954,12 +1309,12 @@ entry: 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.208, label %if.merge.209 + br i1 %icmp, label %if.then.375, label %if.merge.376 -if.then.208: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.375: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.209: ; preds = %entry +if.merge.376: ; 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 @@ -990,14 +1345,14 @@ if.merge.209: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.216 + br label %while.hdr.383 -while.hdr.216: ; preds = %if.merge.220, %if.merge.209 +while.hdr.383: ; preds = %if.merge.387, %if.merge.376 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.217, label %while.exit.218 + br i1 %icmpN, label %while.body.384, label %while.exit.385 -while.body.217: ; preds = %while.hdr.216 +while.body.384: ; preds = %while.hdr.383 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1005,9 +1360,9 @@ while.body.217: ; preds = %while.hdr.216 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.219, label %if.merge.220 + br i1 %icmpN, label %if.then.386, label %if.merge.387 -while.exit.218: ; preds = %if.then.219, %while.hdr.216 +while.exit.385: ; preds = %if.then.386, %while.hdr.383 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1015,14 +1370,14 @@ while.exit.218: ; preds = %if.then.219, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.219: ; preds = %while.body.217 - br label %while.exit.218 +if.then.386: ; preds = %while.body.384 + br label %while.exit.385 -if.merge.220: ; preds = %while.body.217 +if.merge.387: ; preds = %while.body.384 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.216 + br label %while.hdr.383 } ; Function Attrs: nounwind @@ -1100,11 +1455,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1137,11 +1495,42 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 + i64 39, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 44, label %match.arm.47 - i64 49, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 98, label %match.arm.47 + i64 102, label %match.arm.47 i64 36, label %match.arm.48 - i64 42, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 96, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1150,26 +1539,42 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 37, label %match.arm.49 - i64 38, label %match.arm.49 - i64 39, label %match.arm.49 i64 40, label %match.arm.49 - i64 41, label %match.arm.49 - i64 43, label %match.arm.49 - i64 45, label %match.arm.49 - i64 46, label %match.arm.49 + i64 44, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 + i64 49, label %match.arm.49 i64 50, label %match.arm.49 + i64 56, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 93, label %match.arm.49 + i64 94, label %match.arm.49 + i64 95, label %match.arm.49 + i64 97, label %match.arm.49 + i64 99, label %match.arm.49 + i64 100, label %match.arm.49 + i64 101, label %match.arm.49 + i64 103, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.184, %dispatch.merge.170, %dispatch.merge.150, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.478, %dispatch.merge.339, %dispatch.merge.307, %dispatch.merge.263, %dispatch.merge.246, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1178,7 +1583,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [74 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [162 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1206,7 +1611,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1220,72 +1625,133 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.247 [ + i64 37, label %dispatch.case.248 + i64 38, label %dispatch.case.249 + i64 54, label %dispatch.case.250 + i64 70, label %dispatch.case.251 + i64 71, label %dispatch.case.252 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.151 [ - i64 35, label %dispatch.case.152 - i64 44, label %dispatch.case.153 - i64 49, label %dispatch.case.154 + switch i64 %ua.raw29, label %dispatch.default.264 [ + i64 35, label %dispatch.case.265 + i64 81, label %dispatch.case.266 + i64 87, label %dispatch.case.267 + i64 88, label %dispatch.case.268 + i64 92, label %dispatch.case.269 + i64 98, label %dispatch.case.270 + i64 102, label %dispatch.case.271 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.171 [ - i64 36, label %dispatch.case.172 - i64 42, label %dispatch.case.173 + switch i64 %ua.raw33, label %dispatch.default.308 [ + i64 36, label %dispatch.case.309 + i64 60, label %dispatch.case.310 + i64 77, label %dispatch.case.311 + i64 85, label %dispatch.case.312 + i64 96, label %dispatch.case.313 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.185 [ - i64 18, label %dispatch.case.186 - i64 21, label %dispatch.case.187 - i64 23, label %dispatch.case.188 - i64 25, label %dispatch.case.189 - i64 28, label %dispatch.case.190 - i64 29, label %dispatch.case.191 - i64 31, label %dispatch.case.192 - i64 33, label %dispatch.case.193 - i64 37, label %dispatch.case.194 - i64 38, label %dispatch.case.195 - i64 39, label %dispatch.case.196 - i64 40, label %dispatch.case.197 - i64 41, label %dispatch.case.198 - i64 43, label %dispatch.case.199 - i64 45, label %dispatch.case.200 - i64 46, label %dispatch.case.201 - i64 47, label %dispatch.case.202 - i64 48, label %dispatch.case.203 - i64 50, label %dispatch.case.204 + switch i64 %ua.raw37, label %dispatch.default.340 [ + i64 18, label %dispatch.case.341 + i64 21, label %dispatch.case.342 + i64 23, label %dispatch.case.343 + i64 25, label %dispatch.case.344 + i64 28, label %dispatch.case.345 + i64 29, label %dispatch.case.346 + i64 31, label %dispatch.case.347 + i64 33, label %dispatch.case.348 + i64 40, label %dispatch.case.349 + i64 44, label %dispatch.case.350 + i64 47, label %dispatch.case.351 + i64 49, label %dispatch.case.352 + i64 50, label %dispatch.case.353 + i64 56, label %dispatch.case.354 + i64 57, label %dispatch.case.355 + i64 58, label %dispatch.case.356 + i64 59, label %dispatch.case.357 + i64 62, label %dispatch.case.358 + i64 67, label %dispatch.case.359 + i64 74, label %dispatch.case.360 + i64 83, label %dispatch.case.361 + i64 86, label %dispatch.case.362 + i64 90, label %dispatch.case.363 + i64 93, label %dispatch.case.364 + i64 94, label %dispatch.case.365 + i64 95, label %dispatch.case.366 + i64 97, label %dispatch.case.367 + i64 99, label %dispatch.case.368 + i64 100, label %dispatch.case.369 + i64 101, label %dispatch.case.370 + i64 103, label %dispatch.case.371 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.479 [ + i64 41, label %dispatch.case.480 + i64 42, label %dispatch.case.481 + i64 46, label %dispatch.case.482 + i64 91, label %dispatch.case.483 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [74 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [162 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1295,15 +1761,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1311,16 +1777,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1330,286 +1796,636 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.100, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.305, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.150: ; preds = %dispatch.case.154, %dispatch.case.153, %dispatch.case.152, %dispatch.default.151 +dispatch.case.105: ; preds = %match.arm.43 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.106: ; preds = %match.arm.43 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.107: ; preds = %match.arm.43 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.246: ; preds = %dispatch.case.252, %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.default.247 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.151: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.101, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.150 +dispatch.default.247: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.306, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.246 -dispatch.case.152: ; preds = %match.arm.47 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86) +dispatch.case.248: ; preds = %match.arm.44 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.case.153: ; preds = %match.arm.47 - %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr - %ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90) +dispatch.case.249: ; preds = %match.arm.44 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.case.154: ; preds = %match.arm.47 - %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr - %ua.load94 = load [3 x { i64, i64 }], ptr %ua.ptr93, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load94) +dispatch.case.250: ; preds = %match.arm.44 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.merge.170: ; preds = %dispatch.case.173, %dispatch.case.172, %dispatch.default.171 +dispatch.case.251: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.252: ; preds = %match.arm.44 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.merge.263: ; preds = %dispatch.case.271, %dispatch.case.270, %dispatch.case.269, %dispatch.case.268, %dispatch.case.267, %dispatch.case.266, %dispatch.case.265, %dispatch.default.264 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.171: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.102, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.170 +dispatch.default.264: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.307, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.263 -dispatch.case.172: ; preds = %match.arm.48 - %ua.raw97 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr98 = inttoptr i64 %ua.raw97 to ptr - %ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load99) +dispatch.case.265: ; preds = %match.arm.47 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.170 + br label %dispatch.merge.263 -dispatch.case.173: ; preds = %match.arm.48 - %ua.raw101 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr102 = inttoptr i64 %ua.raw101 to ptr - %ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load103) +dispatch.case.266: ; preds = %match.arm.47 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.170 + br label %dispatch.merge.263 -dispatch.merge.184: ; preds = %dispatch.case.204, %dispatch.case.203, %dispatch.case.202, %dispatch.case.201, %dispatch.case.200, %dispatch.case.199, %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.case.189, %dispatch.case.188, %dispatch.case.187, %dispatch.case.186, %dispatch.default.185 +dispatch.case.267: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.268: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.269: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.270: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.271: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [3 x { i64, i64 }], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.merge.307: ; preds = %dispatch.case.313, %dispatch.case.312, %dispatch.case.311, %dispatch.case.310, %dispatch.case.309, %dispatch.default.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.185: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.103, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.184 +dispatch.default.308: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.307 -dispatch.case.186: ; preds = %match.arm.49 - %ua.raw106 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw106 to ptr +dispatch.case.309: ; preds = %match.arm.48 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.310: ; preds = %match.arm.48 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.311: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.312: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.313: ; preds = %match.arm.48 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.merge.339: ; preds = %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.default.340 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.340: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.341: ; preds = %match.arm.49 + %ua.raw224 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw224 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.187: ; preds = %match.arm.49 - %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 - %iNp109 = inttoptr i64 %ua.raw108 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp109) +dispatch.case.342: ; preds = %match.arm.49 + %ua.raw226 = extractvalue { i64, i64 } %loadN, 1 + %iNp227 = inttoptr i64 %ua.raw226 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp227) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.188: ; preds = %match.arm.49 - %ua.raw111 = extractvalue { i64, i64 } %loadN, 1 - %iNp112 = inttoptr i64 %ua.raw111 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp112) +dispatch.case.343: ; preds = %match.arm.49 + %ua.raw229 = extractvalue { i64, i64 } %loadN, 1 + %iNp230 = inttoptr i64 %ua.raw229 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp230) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.189: ; preds = %match.arm.49 - %ua.raw114 = extractvalue { i64, i64 } %loadN, 1 - %iNp115 = inttoptr i64 %ua.raw114 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp115) +dispatch.case.344: ; preds = %match.arm.49 + %ua.raw232 = extractvalue { i64, i64 } %loadN, 1 + %iNp233 = inttoptr i64 %ua.raw232 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp233) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.190: ; preds = %match.arm.49 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %iNp118 = inttoptr i64 %ua.raw117 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp118) +dispatch.case.345: ; preds = %match.arm.49 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %iNp236 = inttoptr i64 %ua.raw235 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp236) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.191: ; preds = %match.arm.49 - %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 - %iNp121 = inttoptr i64 %ua.raw120 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp121) +dispatch.case.346: ; preds = %match.arm.49 + %ua.raw238 = extractvalue { i64, i64 } %loadN, 1 + %iNp239 = inttoptr i64 %ua.raw238 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp239) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.192: ; preds = %match.arm.49 - %ua.raw123 = extractvalue { i64, i64 } %loadN, 1 - %iNp124 = inttoptr i64 %ua.raw123 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp124) +dispatch.case.347: ; preds = %match.arm.49 + %ua.raw241 = extractvalue { i64, i64 } %loadN, 1 + %iNp242 = inttoptr i64 %ua.raw241 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp242) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.193: ; preds = %match.arm.49 - %ua.raw126 = extractvalue { i64, i64 } %loadN, 1 - %iNp127 = inttoptr i64 %ua.raw126 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp127) +dispatch.case.348: ; preds = %match.arm.49 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp245 = inttoptr i64 %ua.raw244 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp245) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.194: ; preds = %match.arm.49 - %ua.raw129 = extractvalue { i64, i64 } %loadN, 1 - %iNp130 = inttoptr i64 %ua.raw129 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp130) +dispatch.case.349: ; preds = %match.arm.49 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %iNp248 = inttoptr i64 %ua.raw247 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp248) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.195: ; preds = %match.arm.49 - %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 - %iNp133 = inttoptr i64 %ua.raw132 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp133) +dispatch.case.350: ; preds = %match.arm.49 + %ua.raw250 = extractvalue { i64, i64 } %loadN, 1 + %iNp251 = inttoptr i64 %ua.raw250 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp251) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.196: ; preds = %match.arm.49 - %ua.raw135 = extractvalue { i64, i64 } %loadN, 1 - %iNp136 = inttoptr i64 %ua.raw135 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp136) +dispatch.case.351: ; preds = %match.arm.49 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %iNp254 = inttoptr i64 %ua.raw253 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp254) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.197: ; preds = %match.arm.49 - %ua.raw138 = extractvalue { i64, i64 } %loadN, 1 - %iNp139 = inttoptr i64 %ua.raw138 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp139) +dispatch.case.352: ; preds = %match.arm.49 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %iNp257 = inttoptr i64 %ua.raw256 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp257) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.198: ; preds = %match.arm.49 - %ua.raw141 = extractvalue { i64, i64 } %loadN, 1 - %iNp142 = inttoptr i64 %ua.raw141 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp142) +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %iNp260 = inttoptr i64 %ua.raw259 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp260) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.199: ; preds = %match.arm.49 - %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 - %iNp145 = inttoptr i64 %ua.raw144 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp145) +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %iNp263 = inttoptr i64 %ua.raw262 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp263) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.200: ; preds = %match.arm.49 - %ua.raw147 = extractvalue { i64, i64 } %loadN, 1 - %iNp148 = inttoptr i64 %ua.raw147 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp148) +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp266 = inttoptr i64 %ua.raw265 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp266) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.201: ; preds = %match.arm.49 - %ua.raw150 = extractvalue { i64, i64 } %loadN, 1 - %iNp151 = inttoptr i64 %ua.raw150 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp151) +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %iNp269 = inttoptr i64 %ua.raw268 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp269) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.202: ; preds = %match.arm.49 - %ua.raw153 = extractvalue { i64, i64 } %loadN, 1 - %iNp154 = inttoptr i64 %ua.raw153 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154) +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw271 = extractvalue { i64, i64 } %loadN, 1 + %iNp272 = inttoptr i64 %ua.raw271 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp272) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.203: ; preds = %match.arm.49 - %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 - %iNp157 = inttoptr i64 %ua.raw156 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157) +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw274 = extractvalue { i64, i64 } %loadN, 1 + %iNp275 = inttoptr i64 %ua.raw274 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp275) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.204: ; preds = %match.arm.49 - %ua.raw159 = extractvalue { i64, i64 } %loadN, 1 - %iNp160 = inttoptr i64 %ua.raw159 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp160) +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw277 = extractvalue { i64, i64 } %loadN, 1 + %iNp278 = inttoptr i64 %ua.raw277 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp278) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 + +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw280 = extractvalue { i64, i64 } %loadN, 1 + %iNp281 = inttoptr i64 %ua.raw280 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp281) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw283 = extractvalue { i64, i64 } %loadN, 1 + %iNp284 = inttoptr i64 %ua.raw283 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp284) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw286 = extractvalue { i64, i64 } %loadN, 1 + %iNp287 = inttoptr i64 %ua.raw286 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp287) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp290) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw292 = extractvalue { i64, i64 } %loadN, 1 + %iNp293 = inttoptr i64 %ua.raw292 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp293) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw295 = extractvalue { i64, i64 } %loadN, 1 + %iNp296 = inttoptr i64 %ua.raw295 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp296) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.366: ; preds = %match.arm.49 + %ua.raw298 = extractvalue { i64, i64 } %loadN, 1 + %iNp299 = inttoptr i64 %ua.raw298 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp299) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.367: ; preds = %match.arm.49 + %ua.raw301 = extractvalue { i64, i64 } %loadN, 1 + %iNp302 = inttoptr i64 %ua.raw301 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp302) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.368: ; preds = %match.arm.49 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp305) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.369: ; preds = %match.arm.49 + %ua.raw307 = extractvalue { i64, i64 } %loadN, 1 + %iNp308 = inttoptr i64 %ua.raw307 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp308) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.370: ; preds = %match.arm.49 + %ua.raw310 = extractvalue { i64, i64 } %loadN, 1 + %iNp311 = inttoptr i64 %ua.raw310 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp311) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %iNp314 = inttoptr i64 %ua.raw313 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp314) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.merge.478: ; preds = %dispatch.case.483, %dispatch.case.482, %dispatch.case.481, %dispatch.case.480, %dispatch.default.479 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.479: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.310, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.480: ; preds = %match.arm.50 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { i32 }, i1 }, ptr %ua.ptr318, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.481: ; preds = %match.arm.50 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { ptr, i64 }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.482: ; preds = %match.arm.50 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr326, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.483: ; preds = %match.arm.50 + %ua.raw329 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr330 = inttoptr i64 %ua.raw329 to ptr + %ua.load331 = load { [64 x i8], i1 }, ptr %ua.ptr330, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load331) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 } ; Function Attrs: nounwind @@ -1618,7 +2434,7 @@ 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.104, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.311, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1714,7 +2530,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.105, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, 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 @@ -1722,7 +2538,7 @@ if.then.12: ; preds = %if.then.9 %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.106, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.313, 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 @@ -1732,13 +2548,13 @@ if.then.12: ; preds = %if.then.9 %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.107, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.314, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.108, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, 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 @@ -1746,7 +2562,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.109, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1760,7 +2576,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, 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 @@ -1768,7 +2584,7 @@ if.then.23: ; preds = %if.else.10 %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.111, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, 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 @@ -1779,7 +2595,7 @@ if.then.23: ; preds = %if.else.10 %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.112, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1836,7 +2652,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, 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 @@ -1844,7 +2660,7 @@ if.then.32: ; preds = %if.then.29 %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.114, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1855,7 +2671,7 @@ if.then.32: ; preds = %if.then.29 %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.115, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1875,7 +2691,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, 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 @@ -1883,7 +2699,7 @@ if.then.35: ; preds = %while.exit.2 %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.117, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, 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 @@ -1894,7 +2710,7 @@ if.then.35: ; preds = %while.exit.2 %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.118, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -1971,6 +2787,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i32 @scale(ptr %0, i32 %1, i32 %2) #0 { entry: @@ -2008,9 +3562,9 @@ entry: call void @print__ct_sc20f1d9fe3bc82ac__pack_s32(ptr @__sx_default_context, i32 %call) %callN = call i32 @scale(ptr @__sx_default_context, i32 5, i32 3) call void @print__ct_sfb0b0da1195bd991__pack_s32(ptr @__sx_default_context, i32 %callN) - %callN = call i32 @label(ptr @__sx_default_context, i32 1, { ptr, i64 } { ptr @str.119, i64 1 }, { ptr, i64 } { ptr @str.120, i64 1 }) - %callN = call i32 @label(ptr @__sx_default_context, i32 2, { ptr, i64 } { ptr @str.121, i64 1 }, { ptr, i64 } { ptr @str.122, i64 1 }) - %callN = call i32 @label(ptr @__sx_default_context, i32 3, { ptr, i64 } { ptr @str.123, i64 1 }, { ptr, i64 } { ptr @str.124, i64 1 }) + %callN = call i32 @label(ptr @__sx_default_context, i32 1, { ptr, i64 } { ptr @str.326, i64 1 }, { ptr, i64 } { ptr @str.327, i64 1 }) + %callN = call i32 @label(ptr @__sx_default_context, i32 2, { ptr, i64 } { ptr @str.328, i64 1 }, { ptr, i64 } { ptr @str.329, i64 1 }) + %callN = call i32 @label(ptr @__sx_default_context, i32 3, { ptr, i64 } { ptr @str.330, i64 1 }, { ptr, i64 } { ptr @str.331, i64 1 }) ret i32 0 } @@ -2032,7 +3586,7 @@ entry: define internal void @print__ct_sc20f1d9fe3bc82ac__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.125, i64 12 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.332, i64 12 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2048,7 +3602,7 @@ entry: %gepN = getelementptr inbounds { 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.126, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.333, 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 9) @@ -2076,7 +3630,7 @@ entry: ; 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.127, i64 12 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.334, i64 12 }) ret { ptr, i64 } %call } @@ -2084,7 +3638,7 @@ entry: define internal void @print__ct_sfb0b0da1195bd991__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.128, i64 13 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.335, i64 13 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2100,7 +3654,7 @@ entry: %gepN = getelementptr inbounds { 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.129, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.336, 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 10) @@ -2128,7 +3682,7 @@ entry: ; 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.130, i64 13 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.337, i64 13 }) ret { ptr, i64 } %call } @@ -2136,7 +3690,7 @@ entry: define internal void @print__ct_s7d5f90608c43cc01__pack_string_s32_string(ptr %0, { ptr, i64 } %1, i32 %2, { ptr, i64 } %3) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.131, i64 7 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.338, i64 7 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %1, ptr %allocaN, align 8 %allocaN = alloca i32, align 4 @@ -2170,7 +3724,7 @@ entry: %gepN = getelementptr inbounds { 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.132, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.339, i64 0 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %ba.tmp19 = alloca { ptr, i64 }, align 8 @@ -2211,7 +3765,7 @@ entry: ; 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.133, i64 7 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.340, i64 7 }) ret { ptr, i64 } %call } @@ -2222,35 +3776,35 @@ entry: %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.134, i64 15 }, { ptr, i64 } { ptr @str.135, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.341, i64 15 }, { ptr, i64 } { ptr @str.342, 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.105 + br label %while.hdr.121 -while.hdr.105: ; preds = %fv.merge, %entry +while.hdr.121: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.106, label %while.exit.107 + br i1 %icmp, label %while.body.122, label %while.exit.123 -while.body.106: ; preds = %while.hdr.105 +while.body.122: ; preds = %while.hdr.121 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.108, label %if.merge.109 + br i1 %icmpN, label %if.then.124, label %if.merge.125 -while.exit.107: ; preds = %while.hdr.105 +while.exit.123: ; preds = %while.hdr.121 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, i64 1 }) ret { ptr, i64 } %callN -if.then.108: ; preds = %while.body.106 +if.then.124: ; preds = %while.body.122 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.344, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.109 + br label %if.merge.125 -if.merge.109: ; preds = %if.then.108, %while.body.106 +if.merge.125: ; preds = %if.then.124, %while.body.122 %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 @@ -2258,7 +3812,7 @@ if.merge.109: ; preds = %if.then.108, %while %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.141, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.348, 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 @@ -2278,31 +3832,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.105 + br label %while.hdr.121 -fv.default: ; preds = %if.merge.109 +fv.default: ; preds = %if.merge.125 br label %fv.merge -fv.case: ; preds = %if.merge.109 +fv.case: ; preds = %if.merge.125 %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.109 +fv.case17: ; preds = %if.merge.125 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.109 +fv.case20: ; preds = %if.merge.125 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.109 +fv.case24: ; preds = %if.merge.125 %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 @@ -2315,43 +3869,43 @@ 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.142, i64 10 }, { ptr, i64 } { ptr @str.143, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.349, i64 10 }, { ptr, i64 } { ptr @str.350, 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.110 + br label %while.hdr.126 -while.hdr.110: ; preds = %if.merge.114, %entry +while.hdr.126: ; preds = %if.merge.130, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.111, label %while.exit.112 + br i1 %icmp, label %while.body.127, label %while.exit.128 -while.body.111: ; preds = %while.hdr.110 +while.body.127: ; preds = %while.hdr.126 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.113, label %if.merge.114 + br i1 %icmpN, label %if.then.129, label %if.merge.130 -while.exit.112: ; preds = %while.hdr.110 +while.exit.128: ; preds = %while.hdr.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.351, i64 1 }) ret { ptr, i64 } %callN -if.then.113: ; preds = %while.body.111 +if.then.129: ; preds = %while.body.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.145, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.114 + br label %if.merge.130 -if.merge.114: ; preds = %if.then.113, %while.body.111 +if.merge.130: ; preds = %if.then.129, %while.body.127 %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.146, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.353, 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.147, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.354, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2362,7 +3916,7 @@ if.merge.114: ; preds = %if.then.113, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.110 + br label %while.hdr.126 } ; Function Attrs: nounwind @@ -2370,43 +3924,43 @@ 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.148, i64 3 }, { ptr, i64 } { ptr @str.149, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.355, i64 3 }, { ptr, i64 } { ptr @str.356, 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.115 + br label %while.hdr.131 -while.hdr.115: ; preds = %fv.merge, %entry +while.hdr.131: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.116: ; preds = %while.hdr.115 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.117: ; preds = %while.hdr.115 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.150, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.357, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.135 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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.153, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.360, 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.154, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, 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 @@ -2423,12 +3977,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.131 -fv.default: ; preds = %if.merge.119 +fv.default: ; preds = %if.merge.135 br label %fv.merge -fv.case: ; preds = %if.merge.119 +fv.case: ; preds = %if.merge.135 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2439,43 +3993,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.155, i64 10 }, { ptr, i64 } { ptr @str.156, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.362, i64 10 }, { ptr, i64 } { ptr @str.363, 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.120 + br label %while.hdr.136 -while.hdr.120: ; preds = %fv.merge, %entry +while.hdr.136: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.121: ; preds = %while.hdr.120 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.122: ; preds = %while.hdr.120 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.157, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.364, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.365, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.124 + br label %if.merge.140 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.161, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.368, 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.162, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.369, 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 @@ -2493,18 +4047,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.136 -fv.default: ; preds = %if.merge.124 +fv.default: ; preds = %if.merge.140 br label %fv.merge -fv.case: ; preds = %if.merge.124 +fv.case: ; preds = %if.merge.140 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.124 +fv.case17: ; preds = %if.merge.140 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2515,43 +4069,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.163, i64 9 }, { ptr, i64 } { ptr @str.164, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.370, i64 9 }, { ptr, i64 } { ptr @str.371, 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.125 + br label %while.hdr.141 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.126: ; preds = %while.hdr.125 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.127: ; preds = %while.hdr.125 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.372, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.145 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.170, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.377, 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.171, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.378, 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 @@ -2570,24 +4124,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.129 +fv.case17: ; preds = %if.merge.145 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.129 +fv.case21: ; preds = %if.merge.145 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2600,43 +4154,43 @@ 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.172, i64 5 }, { ptr, i64 } { ptr @str.173, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.379, i64 5 }, { ptr, i64 } { ptr @str.380, 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.130 + br label %while.hdr.146 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.131: ; preds = %while.hdr.130 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.132: ; preds = %while.hdr.130 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.381, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.150 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.179, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.386, 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.180, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.387, 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 @@ -2655,23 +4209,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.150 %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.134 +fv.case20: ; preds = %if.merge.150 %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 @@ -2684,43 +4238,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.181, i64 8 }, { ptr, i64 } { ptr @str.182, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.388, i64 8 }, { ptr, i64 } { ptr @str.389, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.183, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.390, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.184, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.188, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.395, 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.189, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.396, 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 @@ -2739,23 +4293,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.155 %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.139 +fv.case20: ; preds = %if.merge.155 %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 @@ -2767,43 +4321,43 @@ 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.190, i64 17 }, { ptr, i64 } { ptr @str.191, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.397, i64 17 }, { ptr, i64 } { ptr @str.398, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.192, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.399, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.193, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.400, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.198, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.405, 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.199, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.406, 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 @@ -2823,29 +4377,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.160 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.160 %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.144 +fv.case20: ; preds = %if.merge.160 %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.144 +fv.case23: ; preds = %if.merge.160 %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 @@ -2857,43 +4411,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.200, i64 7 }, { ptr, i64 } { ptr @str.201, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.407, i64 7 }, { ptr, i64 } { ptr @str.408, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.202, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.409, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.410, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.206, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.413, 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.207, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.414, 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 %alloca, align 8 @@ -2911,25 +4465,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.165 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.415, i64 4 }, { ptr, i64 } { ptr @str.416, 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.166 + +while.hdr.166: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.167, label %while.exit.168 + +while.body.167: ; preds = %while.hdr.166 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.169, label %if.merge.170 + +while.exit.168: ; preds = %while.hdr.166 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.417, i64 1 }) + ret { ptr, i64 } %callN + +if.then.169: ; preds = %while.body.167 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.418, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.170 + +if.merge.170: ; preds = %if.then.169, %while.body.167 + %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.420, 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.421, 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.166 + +fv.default: ; preds = %if.merge.170 + br label %fv.merge + +fv.case: ; preds = %if.merge.170 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.422, i64 10 }, { ptr, i64 } { ptr @str.423, 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.171 + +while.hdr.171: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.172, label %while.exit.173 + +while.body.172: ; preds = %while.hdr.171 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.174, label %if.merge.175 + +while.exit.173: ; preds = %while.hdr.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.424, i64 1 }) + ret { ptr, i64 } %callN + +if.then.174: ; preds = %while.body.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.425, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.175 + +if.merge.175: ; preds = %if.then.174, %while.body.172 + %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.431, 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.432, 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.171 + +fv.default: ; preds = %if.merge.175 + br label %fv.merge + +fv.case: ; preds = %if.merge.175 + %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.175 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.175 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.175 + %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.175 + %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.433, i64 13 }, { ptr, i64 } { ptr @str.434, 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.176 + +while.hdr.176: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.177, label %while.exit.178 + +while.body.177: ; preds = %while.hdr.176 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.179, label %if.merge.180 + +while.exit.178: ; preds = %while.hdr.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.435, i64 1 }) + ret { ptr, i64 } %callN + +if.then.179: ; preds = %while.body.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.436, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.180 + +if.merge.180: ; preds = %if.then.179, %while.body.177 + %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.439, 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.440, 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.176 + +fv.default: ; preds = %if.merge.180 + br label %fv.merge + +fv.case: ; preds = %if.merge.180 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.180 + %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.441, i64 8 }, { ptr, i64 } { ptr @str.442, 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.181 + +while.hdr.181: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.182, label %while.exit.183 + +while.body.182: ; preds = %while.hdr.181 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.184, label %if.merge.185 + +while.exit.183: ; preds = %while.hdr.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.443, i64 1 }) + ret { ptr, i64 } %callN + +if.then.184: ; preds = %while.body.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.444, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.185 + +if.merge.185: ; preds = %if.then.184, %while.body.182 + %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.450, 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.451, 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.181 + +fv.default: ; preds = %if.merge.185 + br label %fv.merge + +fv.case: ; preds = %if.merge.185 + %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.185 + %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.185 + %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.185 + %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.185 + %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.452, i64 5 }, { ptr, i64 } { ptr @str.453, 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.186 + +while.hdr.186: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.187, label %while.exit.188 + +while.body.187: ; preds = %while.hdr.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 + +while.exit.188: ; preds = %while.hdr.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.454, i64 1 }) + ret { ptr, i64 } %callN + +if.then.189: ; preds = %while.body.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.455, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.190 + +if.merge.190: ; preds = %if.then.189, %while.body.187 + %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.459, 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.460, 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.186 + +fv.default: ; preds = %if.merge.190 + br label %fv.merge + +fv.case: ; preds = %if.merge.190 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.190 + %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.190 + %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.461, i64 6 }, { ptr, i64 } { ptr @str.462, 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.191 + +while.hdr.191: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.192, label %while.exit.193 + +while.body.192: ; preds = %while.hdr.191 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.194, label %if.merge.195 + +while.exit.193: ; preds = %while.hdr.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.463, i64 1 }) + ret { ptr, i64 } %callN + +if.then.194: ; preds = %while.body.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.464, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.195 + +if.merge.195: ; preds = %if.then.194, %while.body.192 + %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.468, 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.469, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.195 + %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.195 + %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.470, i64 6 }, { ptr, i64 } { ptr @str.471, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.472, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.473, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.476, 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.477, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %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.200 + %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 54, 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.478, i64 4 }, { ptr, i64 } { ptr @str.479, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.480, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.481, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.485, 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.486, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.205 + %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.205 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.487, i64 6 }, { ptr, i64 } { ptr @str.488, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.489, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.490, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.494, 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.495, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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.210 + %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.210 + %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 26, i64 undef }, i64 %ba.p2i23, 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.496, i64 12 }, { ptr, i64 } { ptr @str.497, 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.211 + +while.hdr.211: ; preds = %if.merge.215, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.498, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.499, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.500, 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.501, 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.211 +} + +; 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.502, i64 8 }, { ptr, i64 } { ptr @str.503, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.504, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.505, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.509, 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.510, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %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.220 + %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.220 + %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.511, i64 7 }, { ptr, i64 } { ptr @str.512, 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.221 + +while.hdr.221: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.513, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.514, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.518, 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.519, 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.221 + +fv.default: ; preds = %if.merge.225 + br label %fv.merge + +fv.case: ; preds = %if.merge.225 + %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.225 + %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.225 + %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 77, 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.520, i64 9 }, { ptr, i64 } { ptr @str.521, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.522, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.523, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.526, 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.527, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.528, i64 4 }, { ptr, i64 } { ptr @str.529, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.530, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.531, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.534, 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.535, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.536, i64 6 }, { ptr, i64 } { ptr @str.537, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.538, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.539, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.547, 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.548, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.240 + %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.240 + %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.240 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.240 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.240 + %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 81, 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.549, i64 6 }, { ptr, i64 } { ptr @str.550, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.551, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.552, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.557, 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.558, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.245 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.245 + %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.245 + %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 } @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.564, 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.559, 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.253, label %if.merge.254 + +if.then.253: ; 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.566, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.565, 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.254 + +if.merge.254: ; preds = %if.then.253, %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.571, 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.567, 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.255, label %if.merge.256 + +if.then.255: ; 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.573, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.572, 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.256 + +if.merge.256: ; preds = %if.then.255, %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.581, 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.574, 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.257: ; 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.583, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.582, 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.258 + +if.merge.258: ; preds = %if.then.257, %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.257, label %if.merge.258 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.592, 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.584, 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.259, label %if.merge.260 + +if.then.259: ; 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.594, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.593, 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.260 + +if.merge.260: ; preds = %if.then.259, %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.601, 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.595, 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.261, label %if.merge.262 + +if.then.261: ; 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.603, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.602, 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.262 + +if.merge.262: ; preds = %if.then.261, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2937,33 +6133,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.208, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.604, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.155 + br label %while.hdr.272 -while.hdr.155: ; preds = %if.merge.159, %entry +while.hdr.272: ; preds = %if.merge.276, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.156, label %while.exit.157 + br i1 %icmp, label %while.body.273, label %while.exit.274 -while.body.156: ; preds = %while.hdr.155 +while.body.273: ; preds = %while.hdr.272 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.158, label %if.merge.159 + br i1 %icmpN, label %if.then.275, label %if.merge.276 -while.exit.157: ; preds = %while.hdr.155 +while.exit.274: ; preds = %while.hdr.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.605, i64 1 }) ret { ptr, i64 } %call -if.then.158: ; preds = %while.body.156 +if.then.275: ; preds = %while.body.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.210, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.159 + br label %if.merge.276 -if.merge.159: ; preds = %if.then.158, %while.body.156 +if.merge.276: ; preds = %if.then.275, %while.body.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2977,7 +6173,211 @@ if.merge.159: ; preds = %if.then.158, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.155 + br label %while.hdr.272 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.607, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.277 + +while.hdr.277: ; preds = %if.merge.281, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.278, label %while.exit.279 + +while.body.278: ; preds = %while.hdr.277 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.280, label %if.merge.281 + +while.exit.279: ; preds = %while.hdr.277 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 1 }) + ret { ptr, i64 } %call + +if.then.280: ; preds = %while.body.278 + %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 + br label %if.merge.281 + +if.merge.281: ; preds = %if.then.280, %while.body.278 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.277 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.610, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.282 + +while.hdr.282: ; preds = %if.merge.286, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.283, label %while.exit.284 + +while.body.283: ; preds = %while.hdr.282 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.285, label %if.merge.286 + +while.exit.284: ; preds = %while.hdr.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 1 }) + ret { ptr, i64 } %call + +if.then.285: ; preds = %while.body.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.286 + +if.merge.286: ; preds = %if.then.285, %while.body.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.282 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.613, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.287 + +while.hdr.287: ; preds = %if.merge.291, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.288, label %while.exit.289 + +while.body.288: ; preds = %while.hdr.287 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.290, label %if.merge.291 + +while.exit.289: ; preds = %while.hdr.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 1 }) + ret { ptr, i64 } %call + +if.then.290: ; preds = %while.body.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.291 + +if.merge.291: ; preds = %if.then.290, %while.body.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.287 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.616, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.292 + +while.hdr.292: ; preds = %if.merge.296, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.293, label %while.exit.294 + +while.body.293: ; preds = %while.hdr.292 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.295, label %if.merge.296 + +while.exit.294: ; preds = %while.hdr.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 1 }) + ret { ptr, i64 } %call + +if.then.295: ; preds = %while.body.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.296 + +if.merge.296: ; preds = %if.then.295, %while.body.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.292 } ; Function Attrs: nounwind @@ -2988,33 +6388,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.211, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.619, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.297 -while.hdr.160: ; preds = %if.merge.164, %entry +while.hdr.297: ; preds = %if.merge.301, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.161, label %while.exit.162 + br i1 %icmp, label %while.body.298, label %while.exit.299 -while.body.161: ; preds = %while.hdr.160 +while.body.298: ; preds = %while.hdr.297 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.163, label %if.merge.164 + br i1 %icmpN, label %if.then.300, label %if.merge.301 -while.exit.162: ; preds = %while.hdr.160 +while.exit.299: ; preds = %while.hdr.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 1 }) ret { ptr, i64 } %call -if.then.163: ; preds = %while.body.161 +if.then.300: ; preds = %while.body.298 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.213, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.164 + br label %if.merge.301 -if.merge.164: ; preds = %if.then.163, %while.body.161 +if.merge.301: ; preds = %if.then.300, %while.body.298 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3030,7 +6430,7 @@ if.merge.164: ; preds = %if.then.163, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.297 } ; Function Attrs: nounwind @@ -3041,33 +6441,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [3 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.214, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.622, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.302 -while.hdr.165: ; preds = %if.merge.169, %entry +while.hdr.302: ; preds = %if.merge.306, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.166, label %while.exit.167 + br i1 %icmp, label %while.body.303, label %while.exit.304 -while.body.166: ; preds = %while.hdr.165 +while.body.303: ; preds = %while.hdr.302 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.168, label %if.merge.169 + br i1 %icmpN, label %if.then.305, label %if.merge.306 -while.exit.167: ; preds = %while.hdr.165 +while.exit.304: ; preds = %while.hdr.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.215, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 1 }) ret { ptr, i64 } %call -if.then.168: ; preds = %while.body.166 +if.then.305: ; preds = %while.body.303 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.216, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.169 + br label %if.merge.306 -if.merge.169: ; preds = %if.then.168, %while.body.166 +if.merge.306: ; preds = %if.then.305, %while.body.303 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [3 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3083,7 +6483,7 @@ if.merge.169: ; preds = %if.then.168, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.302 } ; Function Attrs: nounwind @@ -3093,35 +6493,35 @@ entry: %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.217, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.625, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.174 + br label %while.hdr.314 -while.hdr.174: ; preds = %if.merge.178, %entry +while.hdr.314: ; preds = %if.merge.318, %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.175, label %while.exit.176 + br i1 %icmp, label %while.body.315, label %while.exit.316 -while.body.175: ; preds = %while.hdr.174 +while.body.315: ; preds = %while.hdr.314 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.177, label %if.merge.178 + br i1 %icmpN, label %if.then.317, label %if.merge.318 -while.exit.176: ; preds = %while.hdr.174 +while.exit.316: ; preds = %while.hdr.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.218, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.626, i64 1 }) ret { ptr, i64 } %call -if.then.177: ; preds = %while.body.175 +if.then.317: ; preds = %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.219, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.627, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.178 + br label %if.merge.318 -if.merge.178: ; preds = %if.then.177, %while.body.175 +if.merge.318: ; preds = %if.then.317, %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3137,7 +6537,167 @@ if.merge.178: ; preds = %if.then.177, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.174 + br label %while.hdr.314 +} + +; 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.628, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.319 + +while.hdr.319: ; preds = %if.merge.323, %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.320, label %while.exit.321 + +while.body.320: ; preds = %while.hdr.319 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.322, label %if.merge.323 + +while.exit.321: ; preds = %while.hdr.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.629, i64 1 }) + ret { ptr, i64 } %call + +if.then.322: ; preds = %while.body.320 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.630, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.323 + +if.merge.323: ; preds = %if.then.322, %while.body.320 + %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.319 +} + +; 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.631, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.324 + +while.hdr.324: ; preds = %if.merge.328, %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.325, label %while.exit.326 + +while.body.325: ; preds = %while.hdr.324 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.327, label %if.merge.328 + +while.exit.326: ; preds = %while.hdr.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.632, i64 1 }) + ret { ptr, i64 } %call + +if.then.327: ; preds = %while.body.325 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.633, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.328 + +if.merge.328: ; preds = %if.then.327, %while.body.325 + %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 76, 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.324 +} + +; 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.634, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.329 + +while.hdr.329: ; preds = %if.merge.333, %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.330, label %while.exit.331 + +while.body.330: ; preds = %while.hdr.329 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.332, label %if.merge.333 + +while.exit.331: ; preds = %while.hdr.329 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.635, i64 1 }) + ret { ptr, i64 } %call + +if.then.332: ; preds = %while.body.330 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.636, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.333 + +if.merge.333: ; preds = %if.then.332, %while.body.330 + %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 78, 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.329 } ; Function Attrs: nounwind @@ -3147,35 +6707,35 @@ entry: %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.220, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.637, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.334 -while.hdr.179: ; preds = %if.merge.183, %entry +while.hdr.334: ; preds = %if.merge.338, %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.180, label %while.exit.181 + br i1 %icmp, label %while.body.335, label %while.exit.336 -while.body.180: ; preds = %while.hdr.179 +while.body.335: ; preds = %while.hdr.334 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.182, label %if.merge.183 + br i1 %icmpN, label %if.then.337, label %if.merge.338 -while.exit.181: ; preds = %while.hdr.179 +while.exit.336: ; preds = %while.hdr.334 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.221, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.638, i64 1 }) ret { ptr, i64 } %call -if.then.182: ; preds = %while.body.180 +if.then.337: ; preds = %while.body.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.222, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.639, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.183 + br label %if.merge.338 -if.merge.183: ; preds = %if.then.182, %while.body.180 +if.merge.338: ; preds = %if.then.337, %while.body.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3191,7 +6751,7 @@ if.merge.183: ; preds = %if.then.182, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.334 } ; Function Attrs: nounwind @@ -3205,20 +6765,20 @@ entry: 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.205, label %if.else.206 + br i1 %icmp, label %if.then.372, label %if.else.373 -if.then.205: ; preds = %entry - br label %if.merge.207 +if.then.372: ; preds = %entry + br label %if.merge.374 -if.else.206: ; preds = %entry +if.else.373: ; 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.225, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.224, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.207 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.374 -if.merge.207: ; preds = %if.else.206, %if.then.205 - %bp = phi { ptr, i64 } [ { ptr @str.223, i64 4 }, %if.then.205 ], [ %callN, %if.else.206 ] +if.merge.374: ; preds = %if.else.373, %if.then.372 + %bp = phi { ptr, i64 } [ { ptr @str.640, i64 4 }, %if.then.372 ], [ %callN, %if.else.373 ] ret { ptr, i64 } %bp } @@ -3233,20 +6793,20 @@ entry: 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.221, label %if.else.222 + br i1 %icmp, label %if.then.388, label %if.else.389 -if.then.221: ; preds = %entry - br label %if.merge.223 +if.then.388: ; preds = %entry + br label %if.merge.390 -if.else.222: ; preds = %entry +if.else.389: ; 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.228, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.227, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.223 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.644, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.390 -if.merge.223: ; preds = %if.else.222, %if.then.221 - %bp = phi { ptr, i64 } [ { ptr @str.226, i64 4 }, %if.then.221 ], [ %callN, %if.else.222 ] +if.merge.390: ; preds = %if.else.389, %if.then.388 + %bp = phi { ptr, i64 } [ { ptr @str.643, i64 4 }, %if.then.388 ], [ %callN, %if.else.389 ] ret { ptr, i64 } %bp } @@ -3261,20 +6821,20 @@ entry: 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.224, label %if.else.225 + br i1 %icmp, label %if.then.391, label %if.else.392 -if.then.224: ; preds = %entry - br label %if.merge.226 +if.then.391: ; preds = %entry + br label %if.merge.393 -if.else.225: ; preds = %entry +if.else.392: ; 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.231, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.230, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.226 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.393 -if.merge.226: ; preds = %if.else.225, %if.then.224 - %bp = phi { ptr, i64 } [ { ptr @str.229, i64 4 }, %if.then.224 ], [ %callN, %if.else.225 ] +if.merge.393: ; preds = %if.else.392, %if.then.391 + %bp = phi { ptr, i64 } [ { ptr @str.646, i64 4 }, %if.then.391 ], [ %callN, %if.else.392 ] ret { ptr, i64 } %bp } @@ -3289,20 +6849,20 @@ entry: 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.227, label %if.else.228 + br i1 %icmp, label %if.then.394, label %if.else.395 -if.then.227: ; preds = %entry - br label %if.merge.229 +if.then.394: ; preds = %entry + br label %if.merge.396 -if.else.228: ; preds = %entry +if.else.395: ; 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.234, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.233, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.229 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.396 -if.merge.229: ; preds = %if.else.228, %if.then.227 - %bp = phi { ptr, i64 } [ { ptr @str.232, i64 4 }, %if.then.227 ], [ %callN, %if.else.228 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi { ptr, i64 } [ { ptr @str.649, i64 4 }, %if.then.394 ], [ %callN, %if.else.395 ] ret { ptr, i64 } %bp } @@ -3317,20 +6877,20 @@ entry: 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.230, label %if.else.231 + br i1 %icmp, label %if.then.397, label %if.else.398 -if.then.230: ; preds = %entry - br label %if.merge.232 +if.then.397: ; preds = %entry + br label %if.merge.399 -if.else.231: ; preds = %entry +if.else.398: ; 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.237, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.236, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.232 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.399 -if.merge.232: ; preds = %if.else.231, %if.then.230 - %bp = phi { ptr, i64 } [ { ptr @str.235, i64 4 }, %if.then.230 ], [ %callN, %if.else.231 ] +if.merge.399: ; preds = %if.else.398, %if.then.397 + %bp = phi { ptr, i64 } [ { ptr @str.652, i64 4 }, %if.then.397 ], [ %callN, %if.else.398 ] ret { ptr, i64 } %bp } @@ -3344,20 +6904,20 @@ entry: 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.233, label %if.else.234 + br i1 %icmp, label %if.then.400, label %if.else.401 -if.then.233: ; preds = %entry - br label %if.merge.235 +if.then.400: ; preds = %entry + br label %if.merge.402 -if.else.234: ; preds = %entry +if.else.401: ; 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.240, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.239, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.235 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.402 -if.merge.235: ; preds = %if.else.234, %if.then.233 - %bp = phi { ptr, i64 } [ { ptr @str.238, i64 4 }, %if.then.233 ], [ %callN, %if.else.234 ] +if.merge.402: ; preds = %if.else.401, %if.then.400 + %bp = phi { ptr, i64 } [ { ptr @str.655, i64 4 }, %if.then.400 ], [ %callN, %if.else.401 ] ret { ptr, i64 } %bp } @@ -3372,20 +6932,20 @@ entry: 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.236, label %if.else.237 + br i1 %icmp, label %if.then.403, label %if.else.404 -if.then.236: ; preds = %entry - br label %if.merge.238 +if.then.403: ; preds = %entry + br label %if.merge.405 -if.else.237: ; preds = %entry +if.else.404: ; 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.243, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.242, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.238 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.660, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.659, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.405 -if.merge.238: ; preds = %if.else.237, %if.then.236 - %bp = phi { ptr, i64 } [ { ptr @str.241, i64 4 }, %if.then.236 ], [ %callN, %if.else.237 ] +if.merge.405: ; preds = %if.else.404, %if.then.403 + %bp = phi { ptr, i64 } [ { ptr @str.658, i64 4 }, %if.then.403 ], [ %callN, %if.else.404 ] ret { ptr, i64 } %bp } @@ -3400,25 +6960,25 @@ entry: 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.239, label %if.else.240 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.239: ; preds = %entry - br label %if.merge.241 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.240: ; preds = %entry +if.else.407: ; 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.246, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.245, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.241 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.663, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.662, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.241: ; preds = %if.else.240, %if.then.239 - %bp = phi { ptr, i64 } [ { ptr @str.244, i64 4 }, %if.then.239 ], [ %callN, %if.else.240 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.661, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3428,216 +6988,20 @@ entry: 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.242, label %if.else.243 + br i1 %icmp, label %if.then.409, label %if.else.410 -if.then.242: ; preds = %entry - br label %if.merge.244 +if.then.409: ; preds = %entry + br label %if.merge.411 -if.else.243: ; preds = %entry +if.else.410: ; 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.249, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.248, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.244 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.666, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.665, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.411 -if.merge.244: ; preds = %if.else.243, %if.then.242 - %bp = phi { ptr, i64 } [ { ptr @str.247, i64 4 }, %if.then.242 ], [ %callN, %if.else.243 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.245, label %if.else.246 - -if.then.245: ; preds = %entry - br label %if.merge.247 - -if.else.246: ; 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.252, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.251, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.247 - -if.merge.247: ; preds = %if.else.246, %if.then.245 - %bp = phi { ptr, i64 } [ { ptr @str.250, i64 4 }, %if.then.245 ], [ %callN, %if.else.246 ] - 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.248, label %if.else.249 - -if.then.248: ; preds = %entry - br label %if.merge.250 - -if.else.249: ; 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.255, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.254, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.250 - -if.merge.250: ; preds = %if.else.249, %if.then.248 - %bp = phi { ptr, i64 } [ { ptr @str.253, i64 4 }, %if.then.248 ], [ %callN, %if.else.249 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.251, label %if.else.252 - -if.then.251: ; preds = %entry - br label %if.merge.253 - -if.else.252: ; 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.258, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.257, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.253 - -if.merge.253: ; preds = %if.else.252, %if.then.251 - %bp = phi { ptr, i64 } [ { ptr @str.256, i64 4 }, %if.then.251 ], [ %callN, %if.else.252 ] - 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.254, label %if.else.255 - -if.then.254: ; preds = %entry - br label %if.merge.256 - -if.else.255: ; 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.261, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.260, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.256 - -if.merge.256: ; preds = %if.else.255, %if.then.254 - %bp = phi { ptr, i64 } [ { ptr @str.259, i64 4 }, %if.then.254 ], [ %callN, %if.else.255 ] - 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.257, label %if.else.258 - -if.then.257: ; preds = %entry - br label %if.merge.259 - -if.else.258: ; 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.264, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.263, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.259 - -if.merge.259: ; preds = %if.else.258, %if.then.257 - %bp = phi { ptr, i64 } [ { ptr @str.262, i64 4 }, %if.then.257 ], [ %callN, %if.else.258 ] - 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.260, label %if.else.261 - -if.then.260: ; preds = %entry - br label %if.merge.262 - -if.else.261: ; 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.267, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.266, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.262 - -if.merge.262: ; preds = %if.else.261, %if.then.260 - %bp = phi { ptr, i64 } [ { ptr @str.265, i64 4 }, %if.then.260 ], [ %callN, %if.else.261 ] - 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.263, label %if.else.264 - -if.then.263: ; preds = %entry - br label %if.merge.265 - -if.else.264: ; 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.270, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.269, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.265 - -if.merge.265: ; preds = %if.else.264, %if.then.263 - %bp = phi { ptr, i64 } [ { ptr @str.268, i64 4 }, %if.then.263 ], [ %callN, %if.else.264 ] +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.664, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] ret { ptr, i64 } %bp } @@ -3652,20 +7016,550 @@ entry: 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.266, label %if.else.267 + br i1 %icmp, label %if.then.412, label %if.else.413 -if.then.266: ; preds = %entry - br label %if.merge.268 +if.then.412: ; preds = %entry + br label %if.merge.414 -if.else.267: ; preds = %entry +if.else.413: ; 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.273, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.272, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.268 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.669, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.668, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.414 -if.merge.268: ; preds = %if.else.267, %if.then.266 - %bp = phi { ptr, i64 } [ { ptr @str.271, i64 4 }, %if.then.266 ], [ %callN, %if.else.267 ] +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.667, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.415, label %if.else.416 + +if.then.415: ; preds = %entry + br label %if.merge.417 + +if.else.416: ; 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.672, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.671, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.417 + +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.670, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] + 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.418, label %if.else.419 + +if.then.418: ; preds = %entry + br label %if.merge.420 + +if.else.419: ; 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.675, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.674, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.420 + +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.673, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] + 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.421, label %if.else.422 + +if.then.421: ; preds = %entry + br label %if.merge.423 + +if.else.422: ; 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.678, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.677, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.423 + +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.676, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] + 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.424, label %if.else.425 + +if.then.424: ; preds = %entry + br label %if.merge.426 + +if.else.425: ; 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.681, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.680, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.426 + +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.679, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] + 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.427, label %if.else.428 + +if.then.427: ; preds = %entry + br label %if.merge.429 + +if.else.428: ; 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.684, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.683, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.429 + +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.682, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] + 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.430, label %if.else.431 + +if.then.430: ; preds = %entry + br label %if.merge.432 + +if.else.431: ; 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.687, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.686, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.432 + +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.685, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] + 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.433, label %if.else.434 + +if.then.433: ; preds = %entry + br label %if.merge.435 + +if.else.434: ; 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.690, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.689, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.435 + +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.688, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] + 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.436, label %if.else.437 + +if.then.436: ; preds = %entry + br label %if.merge.438 + +if.else.437: ; 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.693, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.692, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.438 + +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.691, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + 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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.696, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.695, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.694, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.699, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.698, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.697, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.702, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.701, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.700, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + 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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.705, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.704, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.703, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.708, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.707, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.706, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.711, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.709, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.714, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.712, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + 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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.717, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.715, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.720, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.718, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + 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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.723, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.722, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.721, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] + 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.469, label %if.else.470 + +if.then.469: ; preds = %entry + br label %if.merge.471 + +if.else.470: ; 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.726, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.725, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.471 + +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.724, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] ret { ptr, i64 } %bp } @@ -3680,20 +7574,20 @@ entry: 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.269, label %if.else.270 + br i1 %icmp, label %if.then.472, label %if.else.473 -if.then.269: ; preds = %entry - br label %if.merge.271 +if.then.472: ; preds = %entry + br label %if.merge.474 -if.else.270: ; preds = %entry +if.else.473: ; 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.276, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.275, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.271 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.729, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.728, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.474 -if.merge.271: ; preds = %if.else.270, %if.then.269 - %bp = phi { ptr, i64 } [ { ptr @str.274, i64 4 }, %if.then.269 ], [ %callN, %if.else.270 ] +if.merge.474: ; preds = %if.else.473, %if.then.472 + %bp = phi { ptr, i64 } [ { ptr @str.727, i64 4 }, %if.then.472 ], [ %callN, %if.else.473 ] ret { ptr, i64 } %bp } @@ -3708,19 +7602,115 @@ entry: 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.272, label %if.else.273 + br i1 %icmp, label %if.then.475, label %if.else.476 -if.then.272: ; preds = %entry - br label %if.merge.274 +if.then.475: ; preds = %entry + br label %if.merge.477 -if.else.273: ; preds = %entry +if.else.476: ; 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.279, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.278, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.274 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.732, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.731, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.477 -if.merge.274: ; preds = %if.else.273, %if.then.272 - %bp = phi { ptr, i64 } [ { ptr @str.277, i64 4 }, %if.then.272 ], [ %callN, %if.else.273 ] +if.merge.477: ; preds = %if.else.476, %if.then.475 + %bp = phi { ptr, i64 } [ { ptr @str.730, i64 4 }, %if.then.475 ], [ %callN, %if.else.476 ] 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.484, label %if.merge.485 + +if.then.484: ; preds = %entry + ret { ptr, i64 } { ptr @str.733, i64 4 } + +if.merge.485: ; 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 39, 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.486, label %if.merge.487 + +if.then.486: ; preds = %entry + ret { ptr, i64 } { ptr @str.734, i64 4 } + +if.merge.487: ; 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_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.488, label %if.merge.489 + +if.then.488: ; preds = %entry + ret { ptr, i64 } { ptr @str.735, i64 4 } + +if.merge.489: ; 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 45, 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.490, label %if.merge.491 + +if.then.490: ; preds = %entry + ret { ptr, i64 } { ptr @str.736, i64 4 } + +if.merge.491: ; 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 88, 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/0044-basic-default-arg-expansion.stderr b/examples/expected/0044-basic-default-arg-expansion.stderr index e69de29..8b13789 100644 --- a/examples/expected/0044-basic-default-arg-expansion.stderr +++ b/examples/expected/0044-basic-default-arg-expansion.stderr @@ -0,0 +1 @@ + diff --git a/examples/expected/0107-types-int-cmp-in-float-ternary.ir b/examples/expected/0107-types-int-cmp-in-float-ternary.ir index 76620a0..b030b1c 100644 --- a/examples/expected/0107-types-int-cmp-in-float-ternary.ir +++ b/examples/expected/0107-types-int-cmp-in-float-ternary.ir @@ -1,250 +1,610 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [71 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [161 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.64 = private constant [5 x i8] c"*s64\00" -@tn.str.65 = private constant [7 x i8] c"**void\00" -@tn.str.66 = private constant [5 x i8] c"*f32\00" -@tn.str.67 = private constant [8 x i8] c"*string\00" -@tn.str.68 = private constant [6 x i8] c"[]Any\00" -@tn.str.69 = private constant [5 x i8] c"*Any\00" -@tn.str.70 = private constant [7 x i8] c"[1]Any\00" -@tn.str.71 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.72 = private constant [7 x i8] c"*[]Any\00" -@tn.str.73 = private constant [4 x i8] c"*u8\00" -@tn.str.74 = private constant [6 x i8] c"*bool\00" -@tn.str.75 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.76 = private constant [5 x i8] c"*f64\00" -@tn.str.77 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.78 = private constant [11 x i8] c"*Allocator\00" -@tn.str.79 = private constant [9 x i8] c"*Context\00" -@tn.str.80 = private constant [10 x i8] c"*[]string\00" -@tn.str.81 = private constant [6 x i8] c"**GPA\00" -@tn.str.82 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.83 = private constant [8 x i8] c"**Arena\00" -@tn.str.84 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.85 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.86 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.87 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.88 = private constant [6 x i8] c"**s64\00" -@tn.str.89 = private constant [8 x i8] c"***void\00" -@tn.str.90 = private constant [6 x i8] c"**f32\00" -@tn.str.91 = private constant [9 x i8] c"**string\00" -@tn.str.92 = private constant [6 x i8] c"**Any\00" -@tn.str.93 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.94 = private constant [8 x i8] c"**[]Any\00" -@tn.str.95 = private constant [5 x i8] c"**u8\00" -@tn.str.96 = private constant [7 x i8] c"**bool\00" -@__sx_type_names = private constant [71 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 12 }, { ptr, i64 } { ptr @tn.str.64, i64 4 }, { ptr, i64 } { ptr @tn.str.65, i64 6 }, { ptr, i64 } { ptr @tn.str.66, i64 4 }, { ptr, i64 } { ptr @tn.str.67, i64 7 }, { ptr, i64 } { ptr @tn.str.68, i64 5 }, { ptr, i64 } { ptr @tn.str.69, i64 4 }, { ptr, i64 } { ptr @tn.str.70, i64 6 }, { ptr, i64 } { ptr @tn.str.71, i64 7 }, { ptr, i64 } { ptr @tn.str.72, i64 6 }, { ptr, i64 } { ptr @tn.str.73, i64 3 }, { ptr, i64 } { ptr @tn.str.74, i64 5 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 4 }, { ptr, i64 } { ptr @tn.str.77, i64 16 }, { ptr, i64 } { ptr @tn.str.78, i64 10 }, { ptr, i64 } { ptr @tn.str.79, i64 8 }, { ptr, i64 } { ptr @tn.str.80, i64 9 }, { ptr, i64 } { ptr @tn.str.81, i64 5 }, { ptr, i64 } { ptr @tn.str.82, i64 12 }, { ptr, i64 } { ptr @tn.str.83, i64 7 }, { ptr, i64 } { ptr @tn.str.84, i64 6 }, { ptr, i64 } { ptr @tn.str.85, i64 10 }, { ptr, i64 } { ptr @tn.str.86, i64 19 }, { ptr, i64 } { ptr @tn.str.87, i64 13 }, { ptr, i64 } { ptr @tn.str.88, i64 5 }, { ptr, i64 } { ptr @tn.str.89, i64 7 }, { ptr, i64 } { ptr @tn.str.90, i64 5 }, { ptr, i64 } { ptr @tn.str.91, i64 8 }, { ptr, i64 } { ptr @tn.str.92, i64 5 }, { ptr, i64 } { ptr @tn.str.93, i64 8 }, { ptr, i64 } { ptr @tn.str.94, i64 7 }, { ptr, i64 } { ptr @tn.str.95, i64 4 }, { ptr, i64 } { ptr @tn.str.96, i64 6 }] -@str.97 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.98 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.99 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.100 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.101 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.102 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.103 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.104 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.105 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.106 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.107 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.108 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.109 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.110 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.111 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.112 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.113 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.114 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.115 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.116 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.117 = private unnamed_addr constant [13 x i8] c"result = {}\0A\00", align 1 -@str.118 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.119 = private unnamed_addr constant [13 x i8] c"result = {}\0A\00", align 1 -@str.120 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.121 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.122 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.123 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.237 = private constant [7 x i8] c"**void\00" +@tn.str.238 = private constant [5 x i8] c"*f32\00" +@tn.str.239 = private constant [8 x i8] c"*string\00" +@tn.str.240 = private constant [6 x i8] c"[]Any\00" +@tn.str.241 = private constant [5 x i8] c"*Any\00" +@tn.str.242 = private constant [7 x i8] c"[1]Any\00" +@tn.str.243 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.244 = private constant [7 x i8] c"*[]Any\00" +@tn.str.245 = private constant [6 x i8] c"*bool\00" +@tn.str.246 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.247 = private constant [5 x i8] c"*f64\00" +@tn.str.248 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.249 = private constant [11 x i8] c"*Allocator\00" +@tn.str.250 = private constant [9 x i8] c"*Context\00" +@tn.str.251 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.252 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.253 = private constant [8 x i8] c"*Member\00" +@tn.str.254 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.255 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.256 = private constant [9 x i8] c"*Command\00" +@tn.str.257 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.258 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.259 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.260 = private constant [7 x i8] c"*Value\00" +@tn.str.261 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.262 = private constant [14 x i8] c"*Architecture\00" +@tn.str.263 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.264 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.265 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.266 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.267 = private constant [10 x i8] c"*[]string\00" +@tn.str.268 = private constant [6 x i8] c"*[]u8\00" +@tn.str.269 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.270 = private constant [11 x i8] c"*[]Command\00" +@tn.str.271 = private constant [6 x i8] c"**GPA\00" +@tn.str.272 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.273 = private constant [8 x i8] c"**Arena\00" +@tn.str.274 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.275 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.276 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.277 = private constant [7 x i8] c"**File\00" +@tn.str.278 = private constant [5 x i8] c"**u8\00" +@tn.str.279 = private constant [6 x i8] c"**s32\00" +@tn.str.280 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.281 = private constant [6 x i8] c"**u32\00" +@tn.str.282 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.283 = private constant [8 x i8] c"**Array\00" +@tn.str.284 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.285 = private constant [9 x i8] c"**Object\00" +@tn.str.286 = private constant [7 x i8] c"**Sink\00" +@tn.str.287 = private constant [9 x i8] c"**Parser\00" +@tn.str.288 = private constant [6 x i8] c"**s64\00" +@tn.str.289 = private constant [9 x i8] c"**Parsed\00" +@tn.str.290 = private constant [7 x i8] c"**Diag\00" +@tn.str.291 = private constant [9 x i8] c"**Sha256\00" +@tn.str.292 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.293 = private constant [8 x i8] c"***void\00" +@tn.str.294 = private constant [6 x i8] c"**f32\00" +@tn.str.295 = private constant [9 x i8] c"**string\00" +@tn.str.296 = private constant [6 x i8] c"**Any\00" +@tn.str.297 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.298 = private constant [8 x i8] c"**[]Any\00" +@tn.str.299 = private constant [7 x i8] c"**bool\00" +@tn.str.300 = private constant [7 x i8] c"*?File\00" +@tn.str.301 = private constant [9 x i8] c"*?string\00" +@tn.str.302 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.303 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [161 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 12 }, { ptr, i64 } { ptr @tn.str.237, i64 6 }, { ptr, i64 } { ptr @tn.str.238, i64 4 }, { ptr, i64 } { ptr @tn.str.239, i64 7 }, { ptr, i64 } { ptr @tn.str.240, i64 5 }, { ptr, i64 } { ptr @tn.str.241, i64 4 }, { ptr, i64 } { ptr @tn.str.242, i64 6 }, { ptr, i64 } { ptr @tn.str.243, i64 7 }, { ptr, i64 } { ptr @tn.str.244, i64 6 }, { ptr, i64 } { ptr @tn.str.245, i64 5 }, { ptr, i64 } { ptr @tn.str.246, i64 7 }, { ptr, i64 } { ptr @tn.str.247, i64 4 }, { ptr, i64 } { ptr @tn.str.248, i64 16 }, { ptr, i64 } { ptr @tn.str.249, i64 10 }, { ptr, i64 } { ptr @tn.str.250, i64 8 }, { ptr, i64 } { ptr @tn.str.251, i64 11 }, { ptr, i64 } { ptr @tn.str.252, i64 14 }, { ptr, i64 } { ptr @tn.str.253, i64 7 }, { ptr, i64 } { ptr @tn.str.254, i64 13 }, { ptr, i64 } { ptr @tn.str.255, i64 9 }, { ptr, i64 } { ptr @tn.str.256, i64 8 }, { ptr, i64 } { ptr @tn.str.257, i64 10 }, { ptr, i64 } { ptr @tn.str.258, i64 9 }, { ptr, i64 } { ptr @tn.str.259, i64 9 }, { ptr, i64 } { ptr @tn.str.260, i64 6 }, { ptr, i64 } { ptr @tn.str.261, i64 16 }, { ptr, i64 } { ptr @tn.str.262, i64 13 }, { ptr, i64 } { ptr @tn.str.263, i64 14 }, { ptr, i64 } { ptr @tn.str.264, i64 7 }, { ptr, i64 } { ptr @tn.str.265, i64 7 }, { ptr, i64 } { ptr @tn.str.266, i64 8 }, { ptr, i64 } { ptr @tn.str.267, i64 9 }, { ptr, i64 } { ptr @tn.str.268, i64 5 }, { ptr, i64 } { ptr @tn.str.269, i64 11 }, { ptr, i64 } { ptr @tn.str.270, i64 10 }, { ptr, i64 } { ptr @tn.str.271, i64 5 }, { ptr, i64 } { ptr @tn.str.272, i64 12 }, { ptr, i64 } { ptr @tn.str.273, i64 7 }, { ptr, i64 } { ptr @tn.str.274, i64 6 }, { ptr, i64 } { ptr @tn.str.275, i64 10 }, { ptr, i64 } { ptr @tn.str.276, i64 19 }, { ptr, i64 } { ptr @tn.str.277, i64 6 }, { ptr, i64 } { ptr @tn.str.278, i64 4 }, { ptr, i64 } { ptr @tn.str.279, i64 5 }, { ptr, i64 } { ptr @tn.str.280, i64 10 }, { ptr, i64 } { ptr @tn.str.281, i64 5 }, { ptr, i64 } { ptr @tn.str.282, i64 9 }, { ptr, i64 } { ptr @tn.str.283, i64 7 }, { ptr, i64 } { ptr @tn.str.284, i64 10 }, { ptr, i64 } { ptr @tn.str.285, i64 8 }, { ptr, i64 } { ptr @tn.str.286, i64 6 }, { ptr, i64 } { ptr @tn.str.287, i64 8 }, { ptr, i64 } { ptr @tn.str.288, i64 5 }, { ptr, i64 } { ptr @tn.str.289, i64 8 }, { ptr, i64 } { ptr @tn.str.290, i64 6 }, { ptr, i64 } { ptr @tn.str.291, i64 8 }, { ptr, i64 } { ptr @tn.str.292, i64 13 }, { ptr, i64 } { ptr @tn.str.293, i64 7 }, { ptr, i64 } { ptr @tn.str.294, i64 5 }, { ptr, i64 } { ptr @tn.str.295, i64 8 }, { ptr, i64 } { ptr @tn.str.296, i64 5 }, { ptr, i64 } { ptr @tn.str.297, i64 8 }, { ptr, i64 } { ptr @tn.str.298, i64 7 }, { ptr, i64 } { ptr @tn.str.299, i64 6 }, { ptr, i64 } { ptr @tn.str.300, i64 6 }, { ptr, i64 } { ptr @tn.str.301, i64 8 }, { ptr, i64 } { ptr @tn.str.302, i64 15 }, { ptr, i64 } { ptr @tn.str.303, i64 8 }] +@str.304 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.305 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.306 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.307 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.311 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.312 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.313 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.314 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.315 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.316 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.317 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.318 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.319 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.320 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.321 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.322 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.323 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.324 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.325 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.326 = private unnamed_addr constant [13 x i8] c"result = {}\0A\00", align 1 +@str.327 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.328 = private unnamed_addr constant [13 x i8] c"result = {}\0A\00", align 1 +@str.329 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.330 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.331 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.332 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.124 = private constant [5 x i8] c"line\00" -@fld.str.125 = private constant [4 x i8] c"col\00" -@fld.str.126 = 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.124, i64 4 }, { ptr, i64 } { ptr @fld.str.125, i64 3 }, { ptr, i64 } { ptr @fld.str.126, i64 4 }] -@str.127 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.128 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.129 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.130 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.132 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.133 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.134 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.135 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.136 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.138 = private constant [12 x i8] c"alloc_count\00" -@field_names.139 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.138, i64 11 }] -@str.140 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.141 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.142 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.144 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.145 = private constant [5 x i8] c"next\00" -@fld.str.146 = private constant [4 x i8] c"cap\00" -@field_names.147 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.145, i64 4 }, { ptr, i64 } { ptr @fld.str.146, i64 3 }] -@str.148 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.149 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.152 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.153 = private constant [4 x i8] c"ctx\00" -@fld.str.154 = private constant [6 x i8] c"alloc\00" -@fld.str.155 = private constant [8 x i8] c"dealloc\00" -@field_names.156 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.153, i64 3 }, { ptr, i64 } { ptr @fld.str.154, i64 5 }, { ptr, i64 } { ptr @fld.str.155, i64 7 }] -@str.157 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.158 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.159 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.160 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.161 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.162 = private constant [6 x i8] c"first\00" -@fld.str.163 = private constant [10 x i8] c"end_index\00" -@fld.str.164 = private constant [7 x i8] c"parent\00" -@field_names.165 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.162, i64 5 }, { ptr, i64 } { ptr @fld.str.163, i64 9 }, { ptr, i64 } { ptr @fld.str.164, i64 6 }] -@str.166 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.167 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.168 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.169 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.170 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.171 = private constant [4 x i8] c"buf\00" -@fld.str.172 = private constant [4 x i8] c"len\00" -@fld.str.173 = private constant [4 x i8] c"pos\00" -@field_names.174 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.171, i64 3 }, { ptr, i64 } { ptr @fld.str.172, i64 3 }, { ptr, i64 } { ptr @fld.str.173, i64 3 }] -@str.175 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.176 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.177 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.178 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.179 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.180 = private constant [7 x i8] c"parent\00" -@fld.str.181 = private constant [12 x i8] c"alloc_count\00" -@fld.str.182 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.183 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.184 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.180, i64 6 }, { ptr, i64 } { ptr @fld.str.181, i64 11 }, { ptr, i64 } { ptr @fld.str.182, i64 13 }, { ptr, i64 } { ptr @fld.str.183, i64 17 }] -@str.185 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.186 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.187 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.188 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.189 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.190 = private constant [10 x i8] c"allocator\00" -@fld.str.191 = private constant [5 x i8] c"data\00" -@field_names.192 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.190, i64 9 }, { ptr, i64 } { ptr @fld.str.191, i64 4 }] -@str.193 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.194 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.195 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.196 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.197 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.198 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.199 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.200 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.201 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.202 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.203 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.204 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.205 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.206 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.207 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.208 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.209 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.210 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.211 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.212 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.213 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.214 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.215 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.216 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.217 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.218 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.219 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.220 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.221 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.222 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.223 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.224 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.225 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.226 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.227 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.228 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.229 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.230 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.231 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.232 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.233 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.234 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.235 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.236 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.237 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.238 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.239 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.240 = private unnamed_addr constant [5 x i8] c"*f32\00", align 1 -@str.241 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.242 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.243 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.244 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.245 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.246 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.247 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.248 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.249 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.250 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.251 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.252 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.253 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.254 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.255 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.256 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.257 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.258 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.259 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.333 = private constant [5 x i8] c"line\00" +@fld.str.334 = private constant [4 x i8] c"col\00" +@fld.str.335 = 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.333, i64 4 }, { ptr, i64 } { ptr @fld.str.334, i64 3 }, { ptr, i64 } { ptr @fld.str.335, i64 4 }] +@str.336 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.337 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.338 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.339 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.340 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.341 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.342 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.343 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.344 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.345 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.346 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.347 = private constant [12 x i8] c"alloc_count\00" +@field_names.348 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.347, i64 11 }] +@str.349 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.350 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.353 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.354 = private constant [5 x i8] c"next\00" +@fld.str.355 = private constant [4 x i8] c"cap\00" +@field_names.356 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.354, i64 4 }, { ptr, i64 } { ptr @fld.str.355, i64 3 }] +@str.357 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.358 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.360 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.361 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.362 = private constant [4 x i8] c"ctx\00" +@fld.str.363 = private constant [6 x i8] c"alloc\00" +@fld.str.364 = private constant [8 x i8] c"dealloc\00" +@field_names.365 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.362, i64 3 }, { ptr, i64 } { ptr @fld.str.363, i64 5 }, { ptr, i64 } { ptr @fld.str.364, i64 7 }] +@str.366 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.367 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.368 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.369 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.370 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.371 = private constant [6 x i8] c"first\00" +@fld.str.372 = private constant [10 x i8] c"end_index\00" +@fld.str.373 = private constant [7 x i8] c"parent\00" +@field_names.374 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.371, i64 5 }, { ptr, i64 } { ptr @fld.str.372, i64 9 }, { ptr, i64 } { ptr @fld.str.373, i64 6 }] +@str.375 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.376 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.377 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.378 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.379 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.380 = private constant [4 x i8] c"buf\00" +@fld.str.381 = private constant [4 x i8] c"len\00" +@fld.str.382 = private constant [4 x i8] c"pos\00" +@field_names.383 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.380, i64 3 }, { ptr, i64 } { ptr @fld.str.381, i64 3 }, { ptr, i64 } { ptr @fld.str.382, i64 3 }] +@str.384 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.385 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.386 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.387 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.388 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.389 = private constant [7 x i8] c"parent\00" +@fld.str.390 = private constant [12 x i8] c"alloc_count\00" +@fld.str.391 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.392 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.393 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.389, i64 6 }, { ptr, i64 } { ptr @fld.str.390, i64 11 }, { ptr, i64 } { ptr @fld.str.391, i64 13 }, { ptr, i64 } { ptr @fld.str.392, i64 17 }] +@str.394 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.395 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.396 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.397 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.398 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.399 = private constant [10 x i8] c"allocator\00" +@fld.str.400 = private constant [5 x i8] c"data\00" +@field_names.401 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.399, i64 9 }, { ptr, i64 } { ptr @fld.str.400, i64 4 }] +@str.402 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.403 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.404 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.405 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.406 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.407 = private constant [3 x i8] c"fd\00" +@field_names.408 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.407, i64 2 }] +@str.409 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.410 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.412 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.413 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.414 = private constant [5 x i8] c"file\00" +@fld.str.415 = private constant [5 x i8] c"line\00" +@fld.str.416 = private constant [4 x i8] c"col\00" +@fld.str.417 = private constant [5 x i8] c"func\00" +@fld.str.418 = private constant [10 x i8] c"line_text\00" +@field_names.419 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.414, i64 4 }, { ptr, i64 } { ptr @fld.str.415, i64 4 }, { ptr, i64 } { ptr @fld.str.416, i64 3 }, { ptr, i64 } { ptr @fld.str.417, i64 4 }, { ptr, i64 } { ptr @fld.str.418, i64 9 }] +@str.420 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.421 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.422 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.423 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.424 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.425 = private constant [10 x i8] c"exit_code\00" +@fld.str.426 = private constant [7 x i8] c"stdout\00" +@field_names.427 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.425, i64 9 }, { ptr, i64 } { ptr @fld.str.426, i64 6 }] +@str.428 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.429 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.430 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.431 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.432 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.433 = private constant [8 x i8] c"sin_len\00" +@fld.str.434 = private constant [11 x i8] c"sin_family\00" +@fld.str.435 = private constant [9 x i8] c"sin_port\00" +@fld.str.436 = private constant [9 x i8] c"sin_addr\00" +@fld.str.437 = private constant [9 x i8] c"sin_zero\00" +@field_names.438 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.433, i64 7 }, { ptr, i64 } { ptr @fld.str.434, i64 10 }, { ptr, i64 } { ptr @fld.str.435, i64 8 }, { ptr, i64 } { ptr @fld.str.436, i64 8 }, { ptr, i64 } { ptr @fld.str.437, i64 8 }] +@str.439 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.440 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.441 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.442 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.443 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.444 = private constant [6 x i8] c"items\00" +@fld.str.445 = private constant [4 x i8] c"len\00" +@fld.str.446 = private constant [4 x i8] c"cap\00" +@field_names.447 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.444, i64 5 }, { ptr, i64 } { ptr @fld.str.445, i64 3 }, { ptr, i64 } { ptr @fld.str.446, i64 3 }] +@str.448 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.449 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.450 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.451 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.452 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.453 = private constant [6 x i8] c"items\00" +@fld.str.454 = private constant [4 x i8] c"len\00" +@fld.str.455 = private constant [4 x i8] c"cap\00" +@field_names.456 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.453, i64 5 }, { ptr, i64 } { ptr @fld.str.454, i64 3 }, { ptr, i64 } { ptr @fld.str.455, i64 3 }] +@str.457 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.458 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.459 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.460 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.461 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.462 = private constant [4 x i8] c"key\00" +@fld.str.463 = private constant [4 x i8] c"val\00" +@field_names.464 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.462, i64 3 }, { ptr, i64 } { ptr @fld.str.463, i64 3 }] +@str.465 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.466 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.467 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.468 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.469 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.470 = private constant [4 x i8] c"dst\00" +@fld.str.471 = private constant [4 x i8] c"pos\00" +@fld.str.472 = private constant [5 x i8] c"file\00" +@field_names.473 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.470, i64 3 }, { ptr, i64 } { ptr @fld.str.471, i64 3 }, { ptr, i64 } { ptr @fld.str.472, i64 4 }] +@str.474 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.475 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.476 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.477 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.478 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.479 = private constant [4 x i8] c"src\00" +@fld.str.480 = private constant [4 x i8] c"pos\00" +@fld.str.481 = private constant [6 x i8] c"alloc\00" +@field_names.482 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.479, i64 3 }, { ptr, i64 } { ptr @fld.str.480, i64 3 }, { ptr, i64 } { ptr @fld.str.481, i64 5 }] +@str.483 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.484 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.485 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.486 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.487 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.488 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.489 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.490 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.491 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.493 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.494 = private constant [5 x i8] c"name\00" +@fld.str.495 = private constant [12 x i8] c"takes_value\00" +@fld.str.496 = private constant [9 x i8] c"required\00" +@field_names.497 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.494, i64 4 }, { ptr, i64 } { ptr @fld.str.495, i64 11 }, { ptr, i64 } { ptr @fld.str.496, i64 8 }] +@str.498 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.499 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.500 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.501 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.502 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.503 = private constant [6 x i8] c"group\00" +@fld.str.504 = private constant [8 x i8] c"command\00" +@fld.str.505 = private constant [6 x i8] c"flags\00" +@field_names.506 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.503, i64 5 }, { ptr, i64 } { ptr @fld.str.504, i64 7 }, { ptr, i64 } { ptr @fld.str.505, i64 5 }] +@str.507 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.508 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.509 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.510 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.511 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.512 = private constant [4 x i8] c"set\00" +@fld.str.513 = private constant [6 x i8] c"value\00" +@field_names.514 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.512, i64 3 }, { ptr, i64 } { ptr @fld.str.513, i64 5 }] +@str.515 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.516 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.517 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.518 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.519 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.520 = private constant [6 x i8] c"index\00" +@fld.str.521 = private constant [6 x i8] c"token\00" +@field_names.522 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.520, i64 5 }, { ptr, i64 } { ptr @fld.str.521, i64 5 }] +@str.523 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.524 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.525 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.526 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.527 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.528 = private constant [6 x i8] c"group\00" +@fld.str.529 = private constant [8 x i8] c"command\00" +@fld.str.530 = private constant [10 x i8] c"cmd_index\00" +@fld.str.531 = private constant [5 x i8] c"json\00" +@fld.str.532 = private constant [5 x i8] c"rest\00" +@fld.str.533 = private constant [5 x i8] c"spec\00" +@fld.str.534 = private constant [7 x i8] c"values\00" +@field_names.535 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.528, i64 5 }, { ptr, i64 } { ptr @fld.str.529, i64 7 }, { ptr, i64 } { ptr @fld.str.530, i64 9 }, { ptr, i64 } { ptr @fld.str.531, i64 4 }, { ptr, i64 } { ptr @fld.str.532, i64 4 }, { ptr, i64 } { ptr @fld.str.533, i64 4 }, { ptr, i64 } { ptr @fld.str.534, i64 6 }] +@str.536 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.537 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.538 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.539 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.540 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.541 = private constant [2 x i8] c"h\00" +@fld.str.542 = private constant [4 x i8] c"buf\00" +@fld.str.543 = private constant [8 x i8] c"buf_len\00" +@fld.str.544 = private constant [10 x i8] c"total_len\00" +@field_names.545 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.541, i64 1 }, { ptr, i64 } { ptr @fld.str.542, i64 3 }, { ptr, i64 } { ptr @fld.str.543, i64 7 }, { ptr, i64 } { ptr @fld.str.544, i64 9 }] +@str.546 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.547 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.548 = private constant [5 x i8] c"read\00" +@fld.str.549 = private constant [6 x i8] c"write\00" +@fld.str.550 = private constant [7 x i8] c"append\00" +@fld.str.551 = private constant [11 x i8] c"read_write\00" +@field_names.552 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.548, i64 4 }, { ptr, i64 } { ptr @fld.str.549, i64 5 }, { ptr, i64 } { ptr @fld.str.550, i64 6 }, { ptr, i64 } { ptr @fld.str.551, i64 10 }] +@str.553 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.554 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.555 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.556 = private constant [4 x i8] c"set\00" +@fld.str.557 = private constant [8 x i8] c"current\00" +@fld.str.558 = private constant [4 x i8] c"end\00" +@field_names.559 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.556, i64 3 }, { ptr, i64 } { ptr @fld.str.557, i64 7 }, { ptr, i64 } { ptr @fld.str.558, i64 3 }] +@str.560 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.562 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.563 = private constant [6 x i8] c"null_\00" +@fld.str.564 = private constant [6 x i8] c"bool_\00" +@fld.str.565 = private constant [5 x i8] c"int_\00" +@fld.str.566 = private constant [4 x i8] c"str\00" +@fld.str.567 = private constant [6 x i8] c"array\00" +@fld.str.568 = private constant [7 x i8] c"object\00" +@field_names.569 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.563, i64 5 }, { ptr, i64 } { ptr @fld.str.564, i64 5 }, { ptr, i64 } { ptr @fld.str.565, i64 4 }, { ptr, i64 } { ptr @fld.str.566, i64 3 }, { ptr, i64 } { ptr @fld.str.567, i64 5 }, { ptr, i64 } { ptr @fld.str.568, i64 6 }] +@str.570 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.571 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.572 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.573 = private constant [6 x i8] c"macos\00" +@fld.str.574 = private constant [6 x i8] c"linux\00" +@fld.str.575 = private constant [8 x i8] c"windows\00" +@fld.str.576 = private constant [5 x i8] c"wasm\00" +@fld.str.577 = private constant [4 x i8] c"ios\00" +@fld.str.578 = private constant [8 x i8] c"android\00" +@fld.str.579 = private constant [8 x i8] c"unknown\00" +@field_names.580 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.573, i64 5 }, { ptr, i64 } { ptr @fld.str.574, i64 5 }, { ptr, i64 } { ptr @fld.str.575, i64 7 }, { ptr, i64 } { ptr @fld.str.576, i64 4 }, { ptr, i64 } { ptr @fld.str.577, i64 3 }, { ptr, i64 } { ptr @fld.str.578, i64 7 }, { ptr, i64 } { ptr @fld.str.579, i64 7 }] +@str.581 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.582 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.583 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.584 = private constant [8 x i8] c"aarch64\00" +@fld.str.585 = private constant [7 x i8] c"x86_64\00" +@fld.str.586 = private constant [7 x i8] c"wasm32\00" +@fld.str.587 = private constant [7 x i8] c"wasm64\00" +@fld.str.588 = private constant [8 x i8] c"unknown\00" +@field_names.589 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.584, i64 7 }, { ptr, i64 } { ptr @fld.str.585, i64 6 }, { ptr, i64 } { ptr @fld.str.586, i64 6 }, { ptr, i64 } { ptr @fld.str.587, i64 6 }, { ptr, i64 } { ptr @fld.str.588, i64 7 }] +@str.590 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.591 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.592 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.593 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.594 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.595 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.596 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.597 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.600 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.601 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.602 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.603 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.604 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.606 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.609 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.612 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.615 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.618 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.621 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.624 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.625 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.626 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.627 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.628 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.629 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.630 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.631 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.632 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.633 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.634 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.635 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.636 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.637 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.638 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.639 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.640 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.641 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.642 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.643 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.644 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.645 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.646 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.647 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.648 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.649 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.650 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.651 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.652 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.653 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.654 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.655 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.656 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.657 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.658 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.659 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.660 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.661 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.662 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.663 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.664 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.665 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.666 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.667 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.668 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.669 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.670 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.671 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.672 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.673 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.674 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.675 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.677 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.678 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.679 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.680 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.681 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.682 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.683 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.684 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.685 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.686 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.687 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.688 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.689 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.690 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.691 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.692 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.693 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.694 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.695 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.696 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.698 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.699 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.700 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.701 = private unnamed_addr constant [5 x i8] c"*f32\00", align 1 +@str.702 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.703 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.704 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.705 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.706 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.707 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.708 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.709 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.710 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.711 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.712 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.713 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.714 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.715 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.716 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.717 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.718 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.719 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -476,7 +836,7 @@ entry: br i1 %icmp, label %if.then.61, label %if.merge.62 if.then.61: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.62: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -603,7 +963,7 @@ if.else.84: ; preds = %entry br label %if.merge.85 if.merge.85: ; preds = %if.else.84, %if.then.83 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.83 ], [ { ptr @str.23, i64 5 }, %if.else.84 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.83 ], [ { ptr @str.127, i64 5 }, %if.else.84 ] ret { ptr, i64 } %bp } @@ -772,38 +1132,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.208 + br label %while.hdr.376 -while.hdr.208: ; preds = %if.merge.213, %entry +while.hdr.376: ; preds = %if.merge.381, %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.209, label %while.exit.210 + br i1 %icmp, label %while.body.377, label %while.exit.378 -while.body.209: ; preds = %while.hdr.208 +while.body.377: ; preds = %while.hdr.376 %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.211, label %if.else.212 + br i1 %icmpN, label %if.then.379, label %if.else.380 -while.exit.210: ; preds = %while.hdr.208 +while.exit.378: ; preds = %while.hdr.376 ret void -if.then.211: ; preds = %while.body.209 +if.then.379: ; preds = %while.body.377 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.213 + br label %if.merge.381 -if.else.212: ; preds = %while.body.209 +if.else.380: ; preds = %while.body.377 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.213 + br label %if.merge.381 -if.merge.213: ; preds = %if.else.212, %if.then.211 - %bp = phi i64 [ %addN, %if.then.211 ], [ %addN, %if.else.212 ] +if.merge.381: ; preds = %if.else.380, %if.then.379 + %bp = phi i64 [ %addN, %if.then.379 ], [ %addN, %if.else.380 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -816,7 +1176,7 @@ if.merge.213: ; preds = %if.else.212, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.208 + br label %while.hdr.376 } ; Function Attrs: nounwind @@ -934,12 +1294,12 @@ entry: 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.206, label %if.merge.207 + br i1 %icmp, label %if.then.374, label %if.merge.375 -if.then.206: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.374: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.207: ; preds = %entry +if.merge.375: ; 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 @@ -970,14 +1330,14 @@ if.merge.207: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.214 + br label %while.hdr.382 -while.hdr.214: ; preds = %if.merge.218, %if.merge.207 +while.hdr.382: ; preds = %if.merge.386, %if.merge.375 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.215, label %while.exit.216 + br i1 %icmpN, label %while.body.383, label %while.exit.384 -while.body.215: ; preds = %while.hdr.214 +while.body.383: ; preds = %while.hdr.382 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -985,9 +1345,9 @@ while.body.215: ; preds = %while.hdr.214 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.217, label %if.merge.218 + br i1 %icmpN, label %if.then.385, label %if.merge.386 -while.exit.216: ; preds = %if.then.217, %while.hdr.214 +while.exit.384: ; preds = %if.then.385, %while.hdr.382 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -995,14 +1355,14 @@ while.exit.216: ; preds = %if.then.217, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.217: ; preds = %while.body.215 - br label %while.exit.216 +if.then.385: ; preds = %while.body.383 + br label %while.exit.384 -if.merge.218: ; preds = %while.body.215 +if.merge.386: ; preds = %while.body.383 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.214 + br label %while.hdr.382 } ; Function Attrs: nounwind @@ -1080,11 +1440,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1117,10 +1480,41 @@ entry: i64 30, label %match.arm.48 i64 32, label %match.arm.48 i64 34, label %match.arm.48 + i64 39, label %match.arm.48 + i64 43, label %match.arm.48 + i64 45, label %match.arm.48 + i64 48, label %match.arm.48 + i64 52, label %match.arm.48 + i64 53, label %match.arm.48 + i64 55, label %match.arm.48 + i64 61, label %match.arm.48 + i64 66, label %match.arm.48 + i64 72, label %match.arm.48 + i64 76, label %match.arm.48 + i64 78, label %match.arm.48 + i64 79, label %match.arm.48 + i64 80, label %match.arm.48 + i64 82, label %match.arm.48 + i64 89, label %match.arm.48 + i64 37, label %match.arm.49 + i64 38, label %match.arm.49 + i64 54, label %match.arm.49 + i64 70, label %match.arm.49 + i64 71, label %match.arm.49 + i64 51, label %match.arm.50 + i64 64, label %match.arm.50 + i64 75, label %match.arm.50 i64 35, label %match.arm.52 - i64 44, label %match.arm.52 + i64 81, label %match.arm.52 + i64 87, label %match.arm.52 + i64 88, label %match.arm.52 + i64 92, label %match.arm.52 + i64 99, label %match.arm.52 i64 36, label %match.arm.53 - i64 42, label %match.arm.53 + i64 60, label %match.arm.53 + i64 77, label %match.arm.53 + i64 85, label %match.arm.53 + i64 97, label %match.arm.53 i64 18, label %match.arm.54 i64 21, label %match.arm.54 i64 23, label %match.arm.54 @@ -1129,25 +1523,42 @@ entry: i64 29, label %match.arm.54 i64 31, label %match.arm.54 i64 33, label %match.arm.54 - i64 37, label %match.arm.54 - i64 38, label %match.arm.54 - i64 39, label %match.arm.54 i64 40, label %match.arm.54 - i64 41, label %match.arm.54 - i64 43, label %match.arm.54 - i64 45, label %match.arm.54 - i64 46, label %match.arm.54 + i64 44, label %match.arm.54 i64 47, label %match.arm.54 - i64 48, label %match.arm.54 + i64 49, label %match.arm.54 + i64 50, label %match.arm.54 + i64 56, label %match.arm.54 + i64 57, label %match.arm.54 + i64 58, label %match.arm.54 + i64 59, label %match.arm.54 + i64 62, label %match.arm.54 + i64 67, label %match.arm.54 + i64 74, label %match.arm.54 + i64 83, label %match.arm.54 + i64 86, label %match.arm.54 + i64 90, label %match.arm.54 + i64 93, label %match.arm.54 + i64 94, label %match.arm.54 + i64 95, label %match.arm.54 + i64 96, label %match.arm.54 + i64 98, label %match.arm.54 + i64 100, label %match.arm.54 + i64 101, label %match.arm.54 + i64 102, label %match.arm.54 + i64 41, label %match.arm.55 + i64 42, label %match.arm.55 + i64 46, label %match.arm.55 + i64 91, label %match.arm.55 i64 13, label %match.arm.56 ] -match.merge.42: ; preds = %dispatch.merge.183, %dispatch.merge.169, %dispatch.merge.155, %dispatch.merge.99, %float.merge.88, %if.merge.60, %match.unr.57, %match.arm.56, %match.arm.46, %match.arm.45, %match.arm.43 +match.merge.42: ; preds = %dispatch.merge.477, %dispatch.merge.338, %dispatch.merge.306, %dispatch.merge.268, %dispatch.merge.251, %dispatch.merge.99, %float.merge.88, %if.merge.60, %match.unr.57, %match.arm.56, %match.arm.50, %match.arm.46, %match.arm.45, %match.arm.43 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.43: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.42 match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1156,7 +1567,7 @@ match.arm.44: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [71 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [161 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.58, label %if.else.59 @@ -1184,7 +1595,7 @@ match.arm.47: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.86, label %fN.unbox.87 -match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.48: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1198,70 +1609,132 @@ match.arm.48: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.107 i64 32, label %dispatch.case.108 i64 34, label %dispatch.case.109 + i64 39, label %dispatch.case.110 + i64 43, label %dispatch.case.111 + i64 45, label %dispatch.case.112 + i64 48, label %dispatch.case.113 + i64 52, label %dispatch.case.114 + i64 53, label %dispatch.case.115 + i64 55, label %dispatch.case.116 + i64 61, label %dispatch.case.117 + i64 66, label %dispatch.case.118 + i64 72, label %dispatch.case.119 + i64 76, label %dispatch.case.120 + i64 78, label %dispatch.case.121 + i64 79, label %dispatch.case.122 + i64 80, label %dispatch.case.123 + i64 82, label %dispatch.case.124 + i64 89, label %dispatch.case.125 ] -match.arm.49: ; No predecessors! - unreachable +match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.252 [ + i64 37, label %dispatch.case.253 + i64 38, label %dispatch.case.254 + i64 54, label %dispatch.case.255 + i64 70, label %dispatch.case.256 + i64 71, label %dispatch.case.257 + ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.42 match.arm.51: ; No predecessors! unreachable -match.arm.52: ; preds = %entry, %entry +match.arm.52: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.156 [ - i64 35, label %dispatch.case.157 - i64 44, label %dispatch.case.158 + switch i64 %ua.raw29, label %dispatch.default.269 [ + i64 35, label %dispatch.case.270 + i64 81, label %dispatch.case.271 + i64 87, label %dispatch.case.272 + i64 88, label %dispatch.case.273 + i64 92, label %dispatch.case.274 + i64 99, label %dispatch.case.275 ] -match.arm.53: ; preds = %entry, %entry +match.arm.53: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.170 [ - i64 36, label %dispatch.case.171 - i64 42, label %dispatch.case.172 + switch i64 %ua.raw33, label %dispatch.default.307 [ + i64 36, label %dispatch.case.308 + i64 60, label %dispatch.case.309 + i64 77, label %dispatch.case.310 + i64 85, label %dispatch.case.311 + i64 97, label %dispatch.case.312 ] -match.arm.54: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.54: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.184 [ - i64 18, label %dispatch.case.185 - i64 21, label %dispatch.case.186 - i64 23, label %dispatch.case.187 - i64 25, label %dispatch.case.188 - i64 28, label %dispatch.case.189 - i64 29, label %dispatch.case.190 - i64 31, label %dispatch.case.191 - i64 33, label %dispatch.case.192 - i64 37, label %dispatch.case.193 - i64 38, label %dispatch.case.194 - i64 39, label %dispatch.case.195 - i64 40, label %dispatch.case.196 - i64 41, label %dispatch.case.197 - i64 43, label %dispatch.case.198 - i64 45, label %dispatch.case.199 - i64 46, label %dispatch.case.200 - i64 47, label %dispatch.case.201 - i64 48, label %dispatch.case.202 + switch i64 %ua.raw37, label %dispatch.default.339 [ + i64 18, label %dispatch.case.340 + i64 21, label %dispatch.case.341 + i64 23, label %dispatch.case.342 + i64 25, label %dispatch.case.343 + i64 28, label %dispatch.case.344 + i64 29, label %dispatch.case.345 + i64 31, label %dispatch.case.346 + i64 33, label %dispatch.case.347 + i64 40, label %dispatch.case.348 + i64 44, label %dispatch.case.349 + i64 47, label %dispatch.case.350 + i64 49, label %dispatch.case.351 + i64 50, label %dispatch.case.352 + i64 56, label %dispatch.case.353 + i64 57, label %dispatch.case.354 + i64 58, label %dispatch.case.355 + i64 59, label %dispatch.case.356 + i64 62, label %dispatch.case.357 + i64 67, label %dispatch.case.358 + i64 74, label %dispatch.case.359 + i64 83, label %dispatch.case.360 + i64 86, label %dispatch.case.361 + i64 90, label %dispatch.case.362 + i64 93, label %dispatch.case.363 + i64 94, label %dispatch.case.364 + i64 95, label %dispatch.case.365 + i64 96, label %dispatch.case.366 + i64 98, label %dispatch.case.367 + i64 100, label %dispatch.case.368 + i64 101, label %dispatch.case.369 + i64 102, label %dispatch.case.370 ] -match.arm.55: ; No predecessors! - unreachable +match.arm.55: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.478 [ + i64 41, label %dispatch.case.479 + i64 42, label %dispatch.case.480 + i64 46, label %dispatch.case.481 + i64 91, label %dispatch.case.482 + ] match.arm.56: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [71 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [161 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.42 @@ -1271,15 +1744,15 @@ match.unr.57: ; preds = %entry if.then.58: ; preds = %match.arm.44 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.60 if.else.59: ; preds = %match.arm.44 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.60 @@ -1287,16 +1760,16 @@ if.merge.60: ; preds = %if.else.59, %if.the br label %match.merge.42 f32.unbox.86: ; preds = %match.arm.47 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.88 f64.unbox.87: ; preds = %match.arm.47 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.88 @@ -1306,271 +1779,628 @@ float.merge.88: ; preds = %fN.unbox.87, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.42 -dispatch.merge.99: ; preds = %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.default.100 +dispatch.merge.99: ; preds = %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.default.100 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.42 dispatch.default.100: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.97, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.304, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.101: ; preds = %match.arm.48 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.102: ; preds = %match.arm.48 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.103: ; preds = %match.arm.48 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.104: ; preds = %match.arm.48 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.105: ; preds = %match.arm.48 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.106: ; preds = %match.arm.48 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.107: ; preds = %match.arm.48 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.108: ; preds = %match.arm.48 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 dispatch.case.109: ; preds = %match.arm.48 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.99 -dispatch.merge.155: ; preds = %dispatch.case.158, %dispatch.case.157, %dispatch.default.156 +dispatch.case.110: ; preds = %match.arm.48 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.111: ; preds = %match.arm.48 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.112: ; preds = %match.arm.48 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.113: ; preds = %match.arm.48 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.114: ; preds = %match.arm.48 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.115: ; preds = %match.arm.48 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.116: ; preds = %match.arm.48 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.117: ; preds = %match.arm.48 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.118: ; preds = %match.arm.48 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.119: ; preds = %match.arm.48 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.120: ; preds = %match.arm.48 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.121: ; preds = %match.arm.48 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.122: ; preds = %match.arm.48 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.123: ; preds = %match.arm.48 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.124: ; preds = %match.arm.48 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.case.125: ; preds = %match.arm.48 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.99 + +dispatch.merge.251: ; preds = %dispatch.case.257, %dispatch.case.256, %dispatch.case.255, %dispatch.case.254, %dispatch.case.253, %dispatch.default.252 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.42 -dispatch.default.156: ; preds = %match.arm.52 - store { ptr, i64 } { ptr @str.98, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.155 +dispatch.default.252: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.305, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.251 -dispatch.case.157: ; preds = %match.arm.52 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86) +dispatch.case.253: ; preds = %match.arm.49 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.155 + br label %dispatch.merge.251 -dispatch.case.158: ; preds = %match.arm.52 - %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr - %ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90) +dispatch.case.254: ; preds = %match.arm.49 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.155 + br label %dispatch.merge.251 -dispatch.merge.169: ; preds = %dispatch.case.172, %dispatch.case.171, %dispatch.default.170 +dispatch.case.255: ; preds = %match.arm.49 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.251 + +dispatch.case.256: ; preds = %match.arm.49 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.251 + +dispatch.case.257: ; preds = %match.arm.49 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.251 + +dispatch.merge.268: ; preds = %dispatch.case.275, %dispatch.case.274, %dispatch.case.273, %dispatch.case.272, %dispatch.case.271, %dispatch.case.270, %dispatch.default.269 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.42 -dispatch.default.170: ; preds = %match.arm.53 - store { ptr, i64 } { ptr @str.99, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.169 +dispatch.default.269: ; preds = %match.arm.52 + store { ptr, i64 } { ptr @str.306, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.268 -dispatch.case.171: ; preds = %match.arm.53 - %ua.raw93 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr94 = inttoptr i64 %ua.raw93 to ptr - %ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95) +dispatch.case.270: ; preds = %match.arm.52 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.169 + br label %dispatch.merge.268 -dispatch.case.172: ; preds = %match.arm.53 - %ua.raw97 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr98 = inttoptr i64 %ua.raw97 to ptr - %ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99) +dispatch.case.271: ; preds = %match.arm.52 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.169 + br label %dispatch.merge.268 -dispatch.merge.183: ; preds = %dispatch.case.202, %dispatch.case.201, %dispatch.case.200, %dispatch.case.199, %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.case.189, %dispatch.case.188, %dispatch.case.187, %dispatch.case.186, %dispatch.case.185, %dispatch.default.184 +dispatch.case.272: ; preds = %match.arm.52 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.268 + +dispatch.case.273: ; preds = %match.arm.52 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.268 + +dispatch.case.274: ; preds = %match.arm.52 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.268 + +dispatch.case.275: ; preds = %match.arm.52 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.268 + +dispatch.merge.306: ; preds = %dispatch.case.312, %dispatch.case.311, %dispatch.case.310, %dispatch.case.309, %dispatch.case.308, %dispatch.default.307 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.42 -dispatch.default.184: ; preds = %match.arm.54 - store { ptr, i64 } { ptr @str.100, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.183 +dispatch.default.307: ; preds = %match.arm.53 + store { ptr, i64 } { ptr @str.307, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.306 -dispatch.case.185: ; preds = %match.arm.54 - %ua.raw102 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw102 to ptr +dispatch.case.308: ; preds = %match.arm.53 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr200 = inttoptr i64 %ua.raw199 to ptr + %ua.load201 = load { ptr, i64 }, ptr %ua.ptr200, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load201) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.306 + +dispatch.case.309: ; preds = %match.arm.53 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.306 + +dispatch.case.310: ; preds = %match.arm.53 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.306 + +dispatch.case.311: ; preds = %match.arm.53 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.306 + +dispatch.case.312: ; preds = %match.arm.53 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.306 + +dispatch.merge.338: ; preds = %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.case.340, %dispatch.default.339 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.42 + +dispatch.default.339: ; preds = %match.arm.54 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.340: ; preds = %match.arm.54 + %ua.raw220 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw220 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.186: ; preds = %match.arm.54 - %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 - %iNp105 = inttoptr i64 %ua.raw104 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105) +dispatch.case.341: ; preds = %match.arm.54 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %iNp223 = inttoptr i64 %ua.raw222 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp223) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.187: ; preds = %match.arm.54 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %iNp108 = inttoptr i64 %ua.raw107 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108) +dispatch.case.342: ; preds = %match.arm.54 + %ua.raw225 = extractvalue { i64, i64 } %loadN, 1 + %iNp226 = inttoptr i64 %ua.raw225 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp226) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.188: ; preds = %match.arm.54 - %ua.raw110 = extractvalue { i64, i64 } %loadN, 1 - %iNp111 = inttoptr i64 %ua.raw110 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111) +dispatch.case.343: ; preds = %match.arm.54 + %ua.raw228 = extractvalue { i64, i64 } %loadN, 1 + %iNp229 = inttoptr i64 %ua.raw228 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp229) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.189: ; preds = %match.arm.54 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %iNp114 = inttoptr i64 %ua.raw113 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114) +dispatch.case.344: ; preds = %match.arm.54 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %iNp232 = inttoptr i64 %ua.raw231 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp232) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.190: ; preds = %match.arm.54 - %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 - %iNp117 = inttoptr i64 %ua.raw116 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117) +dispatch.case.345: ; preds = %match.arm.54 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.191: ; preds = %match.arm.54 - %ua.raw119 = extractvalue { i64, i64 } %loadN, 1 - %iNp120 = inttoptr i64 %ua.raw119 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120) +dispatch.case.346: ; preds = %match.arm.54 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.192: ; preds = %match.arm.54 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %iNp123 = inttoptr i64 %ua.raw122 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123) +dispatch.case.347: ; preds = %match.arm.54 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.193: ; preds = %match.arm.54 - %ua.raw125 = extractvalue { i64, i64 } %loadN, 1 - %iNp126 = inttoptr i64 %ua.raw125 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126) +dispatch.case.348: ; preds = %match.arm.54 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.194: ; preds = %match.arm.54 - %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 - %iNp129 = inttoptr i64 %ua.raw128 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129) +dispatch.case.349: ; preds = %match.arm.54 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.195: ; preds = %match.arm.54 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp132 = inttoptr i64 %ua.raw131 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132) +dispatch.case.350: ; preds = %match.arm.54 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.196: ; preds = %match.arm.54 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %iNp135 = inttoptr i64 %ua.raw134 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp135) +dispatch.case.351: ; preds = %match.arm.54 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.197: ; preds = %match.arm.54 - %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 - %iNp138 = inttoptr i64 %ua.raw137 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp138) +dispatch.case.352: ; preds = %match.arm.54 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.198: ; preds = %match.arm.54 - %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 - %iNp141 = inttoptr i64 %ua.raw140 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp141) +dispatch.case.353: ; preds = %match.arm.54 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.199: ; preds = %match.arm.54 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %iNp144 = inttoptr i64 %ua.raw143 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp144) +dispatch.case.354: ; preds = %match.arm.54 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.200: ; preds = %match.arm.54 - %ua.raw146 = extractvalue { i64, i64 } %loadN, 1 - %iNp147 = inttoptr i64 %ua.raw146 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp147) +dispatch.case.355: ; preds = %match.arm.54 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.201: ; preds = %match.arm.54 - %ua.raw149 = extractvalue { i64, i64 } %loadN, 1 - %iNp150 = inttoptr i64 %ua.raw149 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp150) +dispatch.case.356: ; preds = %match.arm.54 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 -dispatch.case.202: ; preds = %match.arm.54 - %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 - %iNp153 = inttoptr i64 %ua.raw152 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp153) +dispatch.case.357: ; preds = %match.arm.54 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.183 + br label %dispatch.merge.338 + +dispatch.case.358: ; preds = %match.arm.54 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp274) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.359: ; preds = %match.arm.54 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.360: ; preds = %match.arm.54 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp280) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.361: ; preds = %match.arm.54 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp283) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.362: ; preds = %match.arm.54 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp286) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.363: ; preds = %match.arm.54 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp289) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.364: ; preds = %match.arm.54 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.365: ; preds = %match.arm.54 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.366: ; preds = %match.arm.54 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.367: ; preds = %match.arm.54 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.368: ; preds = %match.arm.54 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.369: ; preds = %match.arm.54 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.case.370: ; preds = %match.arm.54 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.338 + +dispatch.merge.477: ; preds = %dispatch.case.482, %dispatch.case.481, %dispatch.case.480, %dispatch.case.479, %dispatch.default.478 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.42 + +dispatch.default.478: ; preds = %match.arm.55 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.477 + +dispatch.case.479: ; preds = %match.arm.55 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr314 = inttoptr i64 %ua.raw313 to ptr + %ua.load315 = load { { i32 }, i1 }, ptr %ua.ptr314, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load315) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.477 + +dispatch.case.480: ; preds = %match.arm.55 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { ptr, i64 }, i1 }, ptr %ua.ptr318, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.477 + +dispatch.case.481: ; preds = %match.arm.55 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.477 + +dispatch.case.482: ; preds = %match.arm.55 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { [64 x i8], i1 }, ptr %ua.ptr326, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.477 } ; Function Attrs: nounwind @@ -1579,7 +2409,7 @@ 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.101, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.310, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1675,7 +2505,7 @@ if.merge.16: ; preds = %if.merge.30, %if.me if.then.17: ; preds = %if.then.14 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.102, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.311, 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 @@ -1683,7 +2513,7 @@ if.then.17: ; preds = %if.then.14 %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.103, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, 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 @@ -1693,13 +2523,13 @@ if.then.17: ; preds = %if.then.14 %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.104, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.313, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.18 if.merge.18: ; preds = %if.then.17, %if.then.14 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.105, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.314, 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 @@ -1707,7 +2537,7 @@ if.merge.18: ; preds = %if.then.17, %if.the %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.106, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1721,7 +2551,7 @@ if.merge.18: ; preds = %if.then.17, %if.the if.then.28: ; preds = %if.else.15 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.107, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, 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 @@ -1729,7 +2559,7 @@ if.then.28: ; preds = %if.else.15 %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.108, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, 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 @@ -1740,7 +2570,7 @@ if.then.28: ; preds = %if.else.15 %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.109, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1797,7 +2627,7 @@ if.merge.36: ; preds = %if.merge.39, %if.el if.then.37: ; preds = %if.then.34 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, 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 @@ -1805,7 +2635,7 @@ if.then.37: ; preds = %if.then.34 %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.111, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, 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 @@ -1816,7 +2646,7 @@ if.then.37: ; preds = %if.then.34 %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.112, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1836,7 +2666,7 @@ if.merge.39: ; preds = %if.else.38, %if.the if.then.40: ; preds = %while.exit.7 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, 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 @@ -1844,7 +2674,7 @@ if.then.40: ; preds = %while.exit.7 %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.114, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, 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 @@ -1855,7 +2685,7 @@ if.then.40: ; preds = %while.exit.7 %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.115, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.41 @@ -1932,6 +2762,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define i32 @main() #0 { entry: @@ -1943,7 +3511,7 @@ entry: br i1 %icmp, label %if.then.0, label %if.merge.1 if.then.0: ; preds = %entry - %0 = call i64 @write(i32 1, ptr @str.116, i64 3) + %0 = call i64 @write(i32 1, ptr @str.325, i64 3) br label %if.merge.1 if.merge.1: ; preds = %if.then.0, %entry @@ -1984,7 +3552,7 @@ entry: define internal void @print__ct_sb195ea381495f949__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.117, i64 12 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.326, i64 12 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2001,7 +3569,7 @@ entry: %gepN = getelementptr inbounds { 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.118, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.327, 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 9) @@ -2030,7 +3598,7 @@ entry: ; 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.119, i64 12 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.328, i64 12 }) ret { ptr, i64 } %call } @@ -2041,35 +3609,35 @@ entry: %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.120, i64 15 }, { ptr, i64 } { ptr @str.121, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.329, i64 15 }, { ptr, i64 } { ptr @str.330, 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.110 + br label %while.hdr.126 -while.hdr.110: ; preds = %fv.merge, %entry +while.hdr.126: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.111, label %while.exit.112 + br i1 %icmp, label %while.body.127, label %while.exit.128 -while.body.111: ; preds = %while.hdr.110 +while.body.127: ; preds = %while.hdr.126 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.113, label %if.merge.114 + br i1 %icmpN, label %if.then.129, label %if.merge.130 -while.exit.112: ; preds = %while.hdr.110 +while.exit.128: ; preds = %while.hdr.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.331, i64 1 }) ret { ptr, i64 } %callN -if.then.113: ; preds = %while.body.111 +if.then.129: ; preds = %while.body.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.123, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.332, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.114 + br label %if.merge.130 -if.merge.114: ; preds = %if.then.113, %while.body.111 +if.merge.130: ; preds = %if.then.129, %while.body.127 %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 @@ -2077,7 +3645,7 @@ if.merge.114: ; preds = %if.then.113, %while %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.127, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.336, 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 @@ -2097,31 +3665,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.110 + br label %while.hdr.126 -fv.default: ; preds = %if.merge.114 +fv.default: ; preds = %if.merge.130 br label %fv.merge -fv.case: ; preds = %if.merge.114 +fv.case: ; preds = %if.merge.130 %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.114 +fv.case17: ; preds = %if.merge.130 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.114 +fv.case20: ; preds = %if.merge.130 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.114 +fv.case24: ; preds = %if.merge.130 %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 @@ -2134,43 +3702,43 @@ 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.128, i64 10 }, { ptr, i64 } { ptr @str.129, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.337, i64 10 }, { ptr, i64 } { ptr @str.338, 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.115 + br label %while.hdr.131 -while.hdr.115: ; preds = %if.merge.119, %entry +while.hdr.131: ; preds = %if.merge.135, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.116: ; preds = %while.hdr.115 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.117: ; preds = %while.hdr.115 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.135 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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.132, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.341, 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.133, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.342, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2181,7 +3749,7 @@ if.merge.119: ; preds = %if.then.118, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.131 } ; Function Attrs: nounwind @@ -2189,43 +3757,43 @@ 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.134, i64 3 }, { ptr, i64 } { ptr @str.135, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.343, i64 3 }, { ptr, i64 } { ptr @str.344, 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.120 + br label %while.hdr.136 -while.hdr.120: ; preds = %fv.merge, %entry +while.hdr.136: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.121: ; preds = %while.hdr.120 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.122: ; preds = %while.hdr.120 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.124 + br label %if.merge.140 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.139, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.348, 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.140, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.349, 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 @@ -2242,12 +3810,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.136 -fv.default: ; preds = %if.merge.124 +fv.default: ; preds = %if.merge.140 br label %fv.merge -fv.case: ; preds = %if.merge.124 +fv.case: ; preds = %if.merge.140 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2258,43 +3826,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.141, i64 10 }, { ptr, i64 } { ptr @str.142, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.350, i64 10 }, { ptr, i64 } { ptr @str.351, 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.125 + br label %while.hdr.141 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.126: ; preds = %while.hdr.125 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.127: ; preds = %while.hdr.125 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.143, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.145 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.147, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.356, 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.148, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.357, 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 @@ -2312,18 +3880,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.129 +fv.case17: ; preds = %if.merge.145 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2334,43 +3902,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.149, i64 9 }, { ptr, i64 } { ptr @str.150, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.358, i64 9 }, { ptr, i64 } { ptr @str.359, 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.130 + br label %while.hdr.146 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.131: ; preds = %while.hdr.130 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.132: ; preds = %while.hdr.130 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.150 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.156, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.365, 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.157, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, 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 @@ -2389,24 +3957,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.150 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.134 +fv.case21: ; preds = %if.merge.150 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2419,43 +3987,43 @@ 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.158, i64 5 }, { ptr, i64 } { ptr @str.159, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.367, i64 5 }, { ptr, i64 } { ptr @str.368, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.160, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.369, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.161, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.370, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.165, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.374, 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.166, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, 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 @@ -2474,23 +4042,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.155 %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.139 +fv.case20: ; preds = %if.merge.155 %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 @@ -2503,43 +4071,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.167, i64 8 }, { ptr, i64 } { ptr @str.168, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.376, i64 8 }, { ptr, i64 } { ptr @str.377, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.378, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.379, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.174, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.383, 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.175, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.384, 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 @@ -2558,23 +4126,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.160 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.160 %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.144 +fv.case20: ; preds = %if.merge.160 %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 @@ -2586,43 +4154,43 @@ 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.176, i64 17 }, { ptr, i64 } { ptr @str.177, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.385, i64 17 }, { ptr, i64 } { ptr @str.386, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.387, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.179, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.388, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.184, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.393, 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.185, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.394, 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 @@ -2642,29 +4210,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.165 %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.149 +fv.case20: ; preds = %if.merge.165 %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.149 +fv.case23: ; preds = %if.merge.165 %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 @@ -2676,43 +4244,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.186, i64 7 }, { ptr, i64 } { ptr @str.187, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.395, i64 7 }, { ptr, i64 } { ptr @str.396, 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.150 + br label %while.hdr.166 -while.hdr.150: ; preds = %fv.merge, %entry +while.hdr.166: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.151, label %while.exit.152 + br i1 %icmp, label %while.body.167, label %while.exit.168 -while.body.151: ; preds = %while.hdr.150 +while.body.167: ; preds = %while.hdr.166 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.153, label %if.merge.154 + br i1 %icmpN, label %if.then.169, label %if.merge.170 -while.exit.152: ; preds = %while.hdr.150 +while.exit.168: ; preds = %while.hdr.166 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.188, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.397, i64 1 }) ret { ptr, i64 } %callN -if.then.153: ; preds = %while.body.151 +if.then.169: ; preds = %while.body.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.189, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.398, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.154 + br label %if.merge.170 -if.merge.154: ; preds = %if.then.153, %while.body.151 +if.merge.170: ; preds = %if.then.169, %while.body.167 %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.192, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.401, 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.193, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.402, 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 %alloca, align 8 @@ -2730,25 +4298,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.150 + br label %while.hdr.166 -fv.default: ; preds = %if.merge.154 +fv.default: ; preds = %if.merge.170 br label %fv.merge -fv.case: ; preds = %if.merge.154 +fv.case: ; preds = %if.merge.170 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.154 +fv.case17: ; preds = %if.merge.170 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.403, i64 4 }, { ptr, i64 } { ptr @str.404, 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.171 + +while.hdr.171: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.172, label %while.exit.173 + +while.body.172: ; preds = %while.hdr.171 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.174, label %if.merge.175 + +while.exit.173: ; preds = %while.hdr.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.405, i64 1 }) + ret { ptr, i64 } %callN + +if.then.174: ; preds = %while.body.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.406, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.175 + +if.merge.175: ; preds = %if.then.174, %while.body.172 + %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.408, 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.409, 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.171 + +fv.default: ; preds = %if.merge.175 + br label %fv.merge + +fv.case: ; preds = %if.merge.175 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.410, i64 10 }, { ptr, i64 } { ptr @str.411, 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.176 + +while.hdr.176: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.177, label %while.exit.178 + +while.body.177: ; preds = %while.hdr.176 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.179, label %if.merge.180 + +while.exit.178: ; preds = %while.hdr.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 1 }) + ret { ptr, i64 } %callN + +if.then.179: ; preds = %while.body.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.413, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.180 + +if.merge.180: ; preds = %if.then.179, %while.body.177 + %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.419, 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.420, 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.176 + +fv.default: ; preds = %if.merge.180 + br label %fv.merge + +fv.case: ; preds = %if.merge.180 + %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.180 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.180 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.180 + %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.180 + %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.421, i64 13 }, { ptr, i64 } { ptr @str.422, 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.181 + +while.hdr.181: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.182, label %while.exit.183 + +while.body.182: ; preds = %while.hdr.181 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.184, label %if.merge.185 + +while.exit.183: ; preds = %while.hdr.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.423, i64 1 }) + ret { ptr, i64 } %callN + +if.then.184: ; preds = %while.body.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.424, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.185 + +if.merge.185: ; preds = %if.then.184, %while.body.182 + %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.427, 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.428, 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.181 + +fv.default: ; preds = %if.merge.185 + br label %fv.merge + +fv.case: ; preds = %if.merge.185 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.185 + %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.429, i64 8 }, { ptr, i64 } { ptr @str.430, 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.186 + +while.hdr.186: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.187, label %while.exit.188 + +while.body.187: ; preds = %while.hdr.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 + +while.exit.188: ; preds = %while.hdr.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.431, i64 1 }) + ret { ptr, i64 } %callN + +if.then.189: ; preds = %while.body.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.432, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.190 + +if.merge.190: ; preds = %if.then.189, %while.body.187 + %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.438, 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.439, 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.186 + +fv.default: ; preds = %if.merge.190 + br label %fv.merge + +fv.case: ; preds = %if.merge.190 + %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.190 + %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.190 + %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.190 + %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.190 + %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.440, i64 5 }, { ptr, i64 } { ptr @str.441, 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.191 + +while.hdr.191: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.192, label %while.exit.193 + +while.body.192: ; preds = %while.hdr.191 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.194, label %if.merge.195 + +while.exit.193: ; preds = %while.hdr.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.442, i64 1 }) + ret { ptr, i64 } %callN + +if.then.194: ; preds = %while.body.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.443, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.195 + +if.merge.195: ; preds = %if.then.194, %while.body.192 + %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.447, 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.448, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.195 + %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.195 + %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.449, i64 6 }, { ptr, i64 } { ptr @str.450, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.451, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.452, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.456, 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.457, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.200 + %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.200 + %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.458, i64 6 }, { ptr, i64 } { ptr @str.459, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.460, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.461, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.464, 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.465, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %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.205 + %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 54, 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.466, i64 4 }, { ptr, i64 } { ptr @str.467, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.468, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.469, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.473, 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.474, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.210 + %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.210 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.475, i64 6 }, { ptr, i64 } { ptr @str.476, 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.211 + +while.hdr.211: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.477, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.478, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.482, 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.483, 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.211 + +fv.default: ; preds = %if.merge.215 + br label %fv.merge + +fv.case: ; preds = %if.merge.215 + %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.215 + %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.215 + %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 26, i64 undef }, i64 %ba.p2i23, 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.484, i64 12 }, { ptr, i64 } { ptr @str.485, 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.216 + +while.hdr.216: ; preds = %if.merge.220, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.486, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.487, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.488, 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.489, 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.216 +} + +; 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.490, i64 8 }, { ptr, i64 } { ptr @str.491, 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.221 + +while.hdr.221: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.492, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.497, 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.498, 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.221 + +fv.default: ; preds = %if.merge.225 + br label %fv.merge + +fv.case: ; preds = %if.merge.225 + %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.225 + %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.225 + %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.499, i64 7 }, { ptr, i64 } { ptr @str.500, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.501, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.502, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.506, 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.507, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.230 + %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 77, 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.508, i64 9 }, { ptr, i64 } { ptr @str.509, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.510, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.511, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.514, 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.515, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.516, i64 4 }, { ptr, i64 } { ptr @str.517, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.518, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.519, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.522, 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.523, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.524, i64 6 }, { ptr, i64 } { ptr @str.525, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.526, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.527, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.535, 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.536, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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.245 + %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.245 + %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.245 + %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.245 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.245 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.245 + %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 81, 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.537, i64 6 }, { ptr, i64 } { ptr @str.538, 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.246 + +while.hdr.246: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.247, label %while.exit.248 + +while.body.247: ; preds = %while.hdr.246 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.249, label %if.merge.250 + +while.exit.248: ; preds = %while.hdr.246 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.539, i64 1 }) + ret { ptr, i64 } %callN + +if.then.249: ; preds = %while.body.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.540, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.250 + +if.merge.250: ; preds = %if.then.249, %while.body.247 + %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.545, 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.546, 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.246 + +fv.default: ; preds = %if.merge.250 + br label %fv.merge + +fv.case: ; preds = %if.merge.250 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.250 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.250 + %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.250 + %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 } @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.552, 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.547, 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.258, label %if.merge.259 + +if.then.258: ; 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.554, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.553, 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.259 + +if.merge.259: ; preds = %if.then.258, %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.559, 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.555, 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.260, label %if.merge.261 + +if.then.260: ; 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.561, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.560, 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.261 + +if.merge.261: ; preds = %if.then.260, %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.569, 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.562, 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.262: ; 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.571, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.570, 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.263 + +if.merge.263: ; preds = %if.then.262, %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.262, label %if.merge.263 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.580, 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.572, 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.264, label %if.merge.265 + +if.then.264: ; 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.582, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.581, 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.265 + +if.merge.265: ; preds = %if.then.264, %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.589, 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.583, 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.266, label %if.merge.267 + +if.then.266: ; 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.591, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.590, 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.267 + +if.merge.267: ; preds = %if.then.266, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2756,33 +5966,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.194, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.592, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.276 -while.hdr.159: ; preds = %if.merge.163, %entry +while.hdr.276: ; preds = %if.merge.280, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.160, label %while.exit.161 + br i1 %icmp, label %while.body.277, label %while.exit.278 -while.body.160: ; preds = %while.hdr.159 +while.body.277: ; preds = %while.hdr.276 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.162, label %if.merge.163 + br i1 %icmpN, label %if.then.279, label %if.merge.280 -while.exit.161: ; preds = %while.hdr.159 +while.exit.278: ; preds = %while.hdr.276 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.195, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.593, i64 1 }) ret { ptr, i64 } %call -if.then.162: ; preds = %while.body.160 +if.then.279: ; preds = %while.body.277 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.196, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.594, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.163 + br label %if.merge.280 -if.merge.163: ; preds = %if.then.162, %while.body.160 +if.merge.280: ; preds = %if.then.279, %while.body.277 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2796,7 +6006,211 @@ if.merge.163: ; preds = %if.then.162, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.276 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.595, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.281 + +while.hdr.281: ; preds = %if.merge.285, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.282, label %while.exit.283 + +while.body.282: ; preds = %while.hdr.281 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.284, label %if.merge.285 + +while.exit.283: ; preds = %while.hdr.281 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.596, i64 1 }) + ret { ptr, i64 } %call + +if.then.284: ; preds = %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.597, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.285 + +if.merge.285: ; preds = %if.then.284, %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.281 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.598, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.286 + +while.hdr.286: ; preds = %if.merge.290, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.287, label %while.exit.288 + +while.body.287: ; preds = %while.hdr.286 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.289, label %if.merge.290 + +while.exit.288: ; preds = %while.hdr.286 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.599, i64 1 }) + ret { ptr, i64 } %call + +if.then.289: ; preds = %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.290 + +if.merge.290: ; preds = %if.then.289, %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.286 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.601, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.291 + +while.hdr.291: ; preds = %if.merge.295, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.292, label %while.exit.293 + +while.body.292: ; preds = %while.hdr.291 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.294, label %if.merge.295 + +while.exit.293: ; preds = %while.hdr.291 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.602, i64 1 }) + ret { ptr, i64 } %call + +if.then.294: ; preds = %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.295 + +if.merge.295: ; preds = %if.then.294, %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.291 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.604, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.296 + +while.hdr.296: ; preds = %if.merge.300, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.297, label %while.exit.298 + +while.body.297: ; preds = %while.hdr.296 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.299, label %if.merge.300 + +while.exit.298: ; preds = %while.hdr.296 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.605, i64 1 }) + ret { ptr, i64 } %call + +if.then.299: ; preds = %while.body.297 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.300 + +if.merge.300: ; preds = %if.then.299, %while.body.297 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.296 } ; Function Attrs: nounwind @@ -2807,33 +6221,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.197, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.607, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.164 + br label %while.hdr.301 -while.hdr.164: ; preds = %if.merge.168, %entry +while.hdr.301: ; preds = %if.merge.305, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.165, label %while.exit.166 + br i1 %icmp, label %while.body.302, label %while.exit.303 -while.body.165: ; preds = %while.hdr.164 +while.body.302: ; preds = %while.hdr.301 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.167, label %if.merge.168 + br i1 %icmpN, label %if.then.304, label %if.merge.305 -while.exit.166: ; preds = %while.hdr.164 +while.exit.303: ; preds = %while.hdr.301 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.198, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 1 }) ret { ptr, i64 } %call -if.then.167: ; preds = %while.body.165 +if.then.304: ; preds = %while.body.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.199, i64 2 }) + %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 - br label %if.merge.168 + br label %if.merge.305 -if.merge.168: ; preds = %if.then.167, %while.body.165 +if.merge.305: ; preds = %if.then.304, %while.body.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2849,7 +6263,7 @@ if.merge.168: ; preds = %if.then.167, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.164 + br label %while.hdr.301 } ; Function Attrs: nounwind @@ -2859,35 +6273,35 @@ entry: %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.200, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.610, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.173 + br label %while.hdr.313 -while.hdr.173: ; preds = %if.merge.177, %entry +while.hdr.313: ; preds = %if.merge.317, %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.174, label %while.exit.175 + br i1 %icmp, label %while.body.314, label %while.exit.315 -while.body.174: ; preds = %while.hdr.173 +while.body.314: ; preds = %while.hdr.313 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.176, label %if.merge.177 + br i1 %icmpN, label %if.then.316, label %if.merge.317 -while.exit.175: ; preds = %while.hdr.173 +while.exit.315: ; preds = %while.hdr.313 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.201, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 1 }) ret { ptr, i64 } %call -if.then.176: ; preds = %while.body.174 +if.then.316: ; preds = %while.body.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.202, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.177 + br label %if.merge.317 -if.merge.177: ; preds = %if.then.176, %while.body.174 +if.merge.317: ; preds = %if.then.316, %while.body.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2903,7 +6317,167 @@ if.merge.177: ; preds = %if.then.176, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.173 + br label %while.hdr.313 +} + +; 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.613, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.318 + +while.hdr.318: ; preds = %if.merge.322, %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.319, label %while.exit.320 + +while.body.319: ; preds = %while.hdr.318 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.321, label %if.merge.322 + +while.exit.320: ; preds = %while.hdr.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 1 }) + ret { ptr, i64 } %call + +if.then.321: ; preds = %while.body.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.322 + +if.merge.322: ; preds = %if.then.321, %while.body.319 + %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.318 +} + +; 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.616, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.323 + +while.hdr.323: ; preds = %if.merge.327, %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.324, label %while.exit.325 + +while.body.324: ; preds = %while.hdr.323 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.326, label %if.merge.327 + +while.exit.325: ; preds = %while.hdr.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 1 }) + ret { ptr, i64 } %call + +if.then.326: ; preds = %while.body.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.327 + +if.merge.327: ; preds = %if.then.326, %while.body.324 + %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 76, 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.323 +} + +; 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.619, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.328 + +while.hdr.328: ; preds = %if.merge.332, %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.329, label %while.exit.330 + +while.body.329: ; preds = %while.hdr.328 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.331, label %if.merge.332 + +while.exit.330: ; preds = %while.hdr.328 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 1 }) + ret { ptr, i64 } %call + +if.then.331: ; preds = %while.body.329 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.332 + +if.merge.332: ; preds = %if.then.331, %while.body.329 + %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 78, 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.328 } ; Function Attrs: nounwind @@ -2913,35 +6487,35 @@ entry: %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.203, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.622, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.178 + br label %while.hdr.333 -while.hdr.178: ; preds = %if.merge.182, %entry +while.hdr.333: ; preds = %if.merge.337, %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.179, label %while.exit.180 + br i1 %icmp, label %while.body.334, label %while.exit.335 -while.body.179: ; preds = %while.hdr.178 +while.body.334: ; preds = %while.hdr.333 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.181, label %if.merge.182 + br i1 %icmpN, label %if.then.336, label %if.merge.337 -while.exit.180: ; preds = %while.hdr.178 +while.exit.335: ; preds = %while.hdr.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.204, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 1 }) ret { ptr, i64 } %call -if.then.181: ; preds = %while.body.179 +if.then.336: ; preds = %while.body.334 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.182 + br label %if.merge.337 -if.merge.182: ; preds = %if.then.181, %while.body.179 +if.merge.337: ; preds = %if.then.336, %while.body.334 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2957,7 +6531,7 @@ if.merge.182: ; preds = %if.then.181, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.178 + br label %while.hdr.333 } ; Function Attrs: nounwind @@ -2971,20 +6545,20 @@ entry: 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.203, label %if.else.204 + br i1 %icmp, label %if.then.371, label %if.else.372 -if.then.203: ; preds = %entry - br label %if.merge.205 +if.then.371: ; preds = %entry + br label %if.merge.373 -if.else.204: ; preds = %entry +if.else.372: ; 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.208, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.207, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.205 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.627, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.626, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.373 -if.merge.205: ; preds = %if.else.204, %if.then.203 - %bp = phi { ptr, i64 } [ { ptr @str.206, i64 4 }, %if.then.203 ], [ %callN, %if.else.204 ] +if.merge.373: ; preds = %if.else.372, %if.then.371 + %bp = phi { ptr, i64 } [ { ptr @str.625, i64 4 }, %if.then.371 ], [ %callN, %if.else.372 ] ret { ptr, i64 } %bp } @@ -2999,20 +6573,20 @@ entry: 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.219, label %if.else.220 + br i1 %icmp, label %if.then.387, label %if.else.388 -if.then.219: ; preds = %entry - br label %if.merge.221 +if.then.387: ; preds = %entry + br label %if.merge.389 -if.else.220: ; preds = %entry +if.else.388: ; 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.211, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.210, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.221 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.630, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.629, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.389 -if.merge.221: ; preds = %if.else.220, %if.then.219 - %bp = phi { ptr, i64 } [ { ptr @str.209, i64 4 }, %if.then.219 ], [ %callN, %if.else.220 ] +if.merge.389: ; preds = %if.else.388, %if.then.387 + %bp = phi { ptr, i64 } [ { ptr @str.628, i64 4 }, %if.then.387 ], [ %callN, %if.else.388 ] ret { ptr, i64 } %bp } @@ -3027,20 +6601,20 @@ entry: 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.222, label %if.else.223 + br i1 %icmp, label %if.then.390, label %if.else.391 -if.then.222: ; preds = %entry - br label %if.merge.224 +if.then.390: ; preds = %entry + br label %if.merge.392 -if.else.223: ; preds = %entry +if.else.391: ; 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.214, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.213, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.224 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.633, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.632, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.392 -if.merge.224: ; preds = %if.else.223, %if.then.222 - %bp = phi { ptr, i64 } [ { ptr @str.212, i64 4 }, %if.then.222 ], [ %callN, %if.else.223 ] +if.merge.392: ; preds = %if.else.391, %if.then.390 + %bp = phi { ptr, i64 } [ { ptr @str.631, i64 4 }, %if.then.390 ], [ %callN, %if.else.391 ] ret { ptr, i64 } %bp } @@ -3055,20 +6629,20 @@ entry: 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.225, label %if.else.226 + br i1 %icmp, label %if.then.393, label %if.else.394 -if.then.225: ; preds = %entry - br label %if.merge.227 +if.then.393: ; preds = %entry + br label %if.merge.395 -if.else.226: ; preds = %entry +if.else.394: ; 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.217, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.216, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.227 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.635, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.395 -if.merge.227: ; preds = %if.else.226, %if.then.225 - %bp = phi { ptr, i64 } [ { ptr @str.215, i64 4 }, %if.then.225 ], [ %callN, %if.else.226 ] +if.merge.395: ; preds = %if.else.394, %if.then.393 + %bp = phi { ptr, i64 } [ { ptr @str.634, i64 4 }, %if.then.393 ], [ %callN, %if.else.394 ] ret { ptr, i64 } %bp } @@ -3083,20 +6657,20 @@ entry: 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.228, label %if.else.229 + br i1 %icmp, label %if.then.396, label %if.else.397 -if.then.228: ; preds = %entry - br label %if.merge.230 +if.then.396: ; preds = %entry + br label %if.merge.398 -if.else.229: ; preds = %entry +if.else.397: ; 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.220, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.219, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.230 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.639, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.638, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.398 -if.merge.230: ; preds = %if.else.229, %if.then.228 - %bp = phi { ptr, i64 } [ { ptr @str.218, i64 4 }, %if.then.228 ], [ %callN, %if.else.229 ] +if.merge.398: ; preds = %if.else.397, %if.then.396 + %bp = phi { ptr, i64 } [ { ptr @str.637, i64 4 }, %if.then.396 ], [ %callN, %if.else.397 ] ret { ptr, i64 } %bp } @@ -3110,20 +6684,20 @@ entry: 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.231, label %if.else.232 + br i1 %icmp, label %if.then.399, label %if.else.400 -if.then.231: ; preds = %entry - br label %if.merge.233 +if.then.399: ; preds = %entry + br label %if.merge.401 -if.else.232: ; preds = %entry +if.else.400: ; 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.223, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.222, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.233 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.401 -if.merge.233: ; preds = %if.else.232, %if.then.231 - %bp = phi { ptr, i64 } [ { ptr @str.221, i64 4 }, %if.then.231 ], [ %callN, %if.else.232 ] +if.merge.401: ; preds = %if.else.400, %if.then.399 + %bp = phi { ptr, i64 } [ { ptr @str.640, i64 4 }, %if.then.399 ], [ %callN, %if.else.400 ] ret { ptr, i64 } %bp } @@ -3138,20 +6712,20 @@ entry: 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.234, label %if.else.235 + br i1 %icmp, label %if.then.402, label %if.else.403 -if.then.234: ; preds = %entry - br label %if.merge.236 +if.then.402: ; preds = %entry + br label %if.merge.404 -if.else.235: ; preds = %entry +if.else.403: ; 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.226, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.225, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.236 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.644, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.404 -if.merge.236: ; preds = %if.else.235, %if.then.234 - %bp = phi { ptr, i64 } [ { ptr @str.224, i64 4 }, %if.then.234 ], [ %callN, %if.else.235 ] +if.merge.404: ; preds = %if.else.403, %if.then.402 + %bp = phi { ptr, i64 } [ { ptr @str.643, i64 4 }, %if.then.402 ], [ %callN, %if.else.403 ] ret { ptr, i64 } %bp } @@ -3166,25 +6740,25 @@ entry: 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.237, label %if.else.238 + br i1 %icmp, label %if.then.405, label %if.else.406 -if.then.237: ; preds = %entry - br label %if.merge.239 +if.then.405: ; preds = %entry + br label %if.merge.407 -if.else.238: ; preds = %entry +if.else.406: ; 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.229, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.228, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.239 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.407 -if.merge.239: ; preds = %if.else.238, %if.then.237 - %bp = phi { ptr, i64 } [ { ptr @str.227, i64 4 }, %if.then.237 ], [ %callN, %if.else.238 ] +if.merge.407: ; preds = %if.else.406, %if.then.405 + %bp = phi { ptr, i64 } [ { ptr @str.646, i64 4 }, %if.then.405 ], [ %callN, %if.else.406 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3194,216 +6768,20 @@ entry: 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.240, label %if.else.241 + br i1 %icmp, label %if.then.408, label %if.else.409 -if.then.240: ; preds = %entry - br label %if.merge.242 +if.then.408: ; preds = %entry + br label %if.merge.410 -if.else.241: ; preds = %entry +if.else.409: ; 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.232, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.231, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.242 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.410 -if.merge.242: ; preds = %if.else.241, %if.then.240 - %bp = phi { ptr, i64 } [ { ptr @str.230, i64 4 }, %if.then.240 ], [ %callN, %if.else.241 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.243, label %if.else.244 - -if.then.243: ; preds = %entry - br label %if.merge.245 - -if.else.244: ; 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.235, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.234, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.245 - -if.merge.245: ; preds = %if.else.244, %if.then.243 - %bp = phi { ptr, i64 } [ { ptr @str.233, i64 4 }, %if.then.243 ], [ %callN, %if.else.244 ] - 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.246, label %if.else.247 - -if.then.246: ; preds = %entry - br label %if.merge.248 - -if.else.247: ; 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.238, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.237, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.248 - -if.merge.248: ; preds = %if.else.247, %if.then.246 - %bp = phi { ptr, i64 } [ { ptr @str.236, i64 4 }, %if.then.246 ], [ %callN, %if.else.247 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_f32(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.249, label %if.else.250 - -if.then.249: ; preds = %entry - br label %if.merge.251 - -if.else.250: ; 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.241, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.240, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.251 - -if.merge.251: ; preds = %if.else.250, %if.then.249 - %bp = phi { ptr, i64 } [ { ptr @str.239, i64 4 }, %if.then.249 ], [ %callN, %if.else.250 ] - 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.252, label %if.else.253 - -if.then.252: ; preds = %entry - br label %if.merge.254 - -if.else.253: ; 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.244, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.243, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.254 - -if.merge.254: ; preds = %if.else.253, %if.then.252 - %bp = phi { ptr, i64 } [ { ptr @str.242, i64 4 }, %if.then.252 ], [ %callN, %if.else.253 ] - 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.255, label %if.else.256 - -if.then.255: ; preds = %entry - br label %if.merge.257 - -if.else.256: ; 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.247, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.246, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.257 - -if.merge.257: ; preds = %if.else.256, %if.then.255 - %bp = phi { ptr, i64 } [ { ptr @str.245, i64 4 }, %if.then.255 ], [ %callN, %if.else.256 ] - 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.258, label %if.else.259 - -if.then.258: ; preds = %entry - br label %if.merge.260 - -if.else.259: ; 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.250, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.249, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.260 - -if.merge.260: ; preds = %if.else.259, %if.then.258 - %bp = phi { ptr, i64 } [ { ptr @str.248, i64 4 }, %if.then.258 ], [ %callN, %if.else.259 ] - 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.261, label %if.else.262 - -if.then.261: ; preds = %entry - br label %if.merge.263 - -if.else.262: ; 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.253, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.252, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.263 - -if.merge.263: ; preds = %if.else.262, %if.then.261 - %bp = phi { ptr, i64 } [ { ptr @str.251, i64 4 }, %if.then.261 ], [ %callN, %if.else.262 ] +if.merge.410: ; preds = %if.else.409, %if.then.408 + %bp = phi { ptr, i64 } [ { ptr @str.649, i64 4 }, %if.then.408 ], [ %callN, %if.else.409 ] ret { ptr, i64 } %bp } @@ -3418,20 +6796,578 @@ entry: 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.264, label %if.else.265 + br i1 %icmp, label %if.then.411, label %if.else.412 -if.then.264: ; preds = %entry - br label %if.merge.266 +if.then.411: ; preds = %entry + br label %if.merge.413 -if.else.265: ; preds = %entry +if.else.412: ; 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.256, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.255, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.266 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.413 -if.merge.266: ; preds = %if.else.265, %if.then.264 - %bp = phi { ptr, i64 } [ { ptr @str.254, i64 4 }, %if.then.264 ], [ %callN, %if.else.265 ] +if.merge.413: ; preds = %if.else.412, %if.then.411 + %bp = phi { ptr, i64 } [ { ptr @str.652, i64 4 }, %if.then.411 ], [ %callN, %if.else.412 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.414, label %if.else.415 + +if.then.414: ; preds = %entry + br label %if.merge.416 + +if.else.415: ; 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.657, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.416 + +if.merge.416: ; preds = %if.else.415, %if.then.414 + %bp = phi { ptr, i64 } [ { ptr @str.655, i64 4 }, %if.then.414 ], [ %callN, %if.else.415 ] + 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.417, label %if.else.418 + +if.then.417: ; preds = %entry + br label %if.merge.419 + +if.else.418: ; 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.660, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.659, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.419 + +if.merge.419: ; preds = %if.else.418, %if.then.417 + %bp = phi { ptr, i64 } [ { ptr @str.658, i64 4 }, %if.then.417 ], [ %callN, %if.else.418 ] + 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.420, label %if.else.421 + +if.then.420: ; preds = %entry + br label %if.merge.422 + +if.else.421: ; 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.663, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.662, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.422 + +if.merge.422: ; preds = %if.else.421, %if.then.420 + %bp = phi { ptr, i64 } [ { ptr @str.661, i64 4 }, %if.then.420 ], [ %callN, %if.else.421 ] + 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.423, label %if.else.424 + +if.then.423: ; preds = %entry + br label %if.merge.425 + +if.else.424: ; 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.666, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.665, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.425 + +if.merge.425: ; preds = %if.else.424, %if.then.423 + %bp = phi { ptr, i64 } [ { ptr @str.664, i64 4 }, %if.then.423 ], [ %callN, %if.else.424 ] + 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.426, label %if.else.427 + +if.then.426: ; preds = %entry + br label %if.merge.428 + +if.else.427: ; 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.669, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.668, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.428 + +if.merge.428: ; preds = %if.else.427, %if.then.426 + %bp = phi { ptr, i64 } [ { ptr @str.667, i64 4 }, %if.then.426 ], [ %callN, %if.else.427 ] + 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.429, label %if.else.430 + +if.then.429: ; preds = %entry + br label %if.merge.431 + +if.else.430: ; 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.672, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.671, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.431 + +if.merge.431: ; preds = %if.else.430, %if.then.429 + %bp = phi { ptr, i64 } [ { ptr @str.670, i64 4 }, %if.then.429 ], [ %callN, %if.else.430 ] + 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.432, label %if.else.433 + +if.then.432: ; preds = %entry + br label %if.merge.434 + +if.else.433: ; 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.675, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.674, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.434 + +if.merge.434: ; preds = %if.else.433, %if.then.432 + %bp = phi { ptr, i64 } [ { ptr @str.673, i64 4 }, %if.then.432 ], [ %callN, %if.else.433 ] + 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.435, label %if.else.436 + +if.then.435: ; preds = %entry + br label %if.merge.437 + +if.else.436: ; 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.678, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.677, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.437 + +if.merge.437: ; preds = %if.else.436, %if.then.435 + %bp = phi { ptr, i64 } [ { ptr @str.676, i64 4 }, %if.then.435 ], [ %callN, %if.else.436 ] + 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.438, label %if.else.439 + +if.then.438: ; preds = %entry + br label %if.merge.440 + +if.else.439: ; 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.681, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.680, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.440 + +if.merge.440: ; preds = %if.else.439, %if.then.438 + %bp = phi { ptr, i64 } [ { ptr @str.679, i64 4 }, %if.then.438 ], [ %callN, %if.else.439 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.441, label %if.else.442 + +if.then.441: ; preds = %entry + br label %if.merge.443 + +if.else.442: ; 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.684, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.683, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.443 + +if.merge.443: ; preds = %if.else.442, %if.then.441 + %bp = phi { ptr, i64 } [ { ptr @str.682, i64 4 }, %if.then.441 ], [ %callN, %if.else.442 ] + 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.444, label %if.else.445 + +if.then.444: ; preds = %entry + br label %if.merge.446 + +if.else.445: ; 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.687, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.686, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.446 + +if.merge.446: ; preds = %if.else.445, %if.then.444 + %bp = phi { ptr, i64 } [ { ptr @str.685, i64 4 }, %if.then.444 ], [ %callN, %if.else.445 ] + 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.447, label %if.else.448 + +if.then.447: ; preds = %entry + br label %if.merge.449 + +if.else.448: ; 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.690, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.689, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.449 + +if.merge.449: ; preds = %if.else.448, %if.then.447 + %bp = phi { ptr, i64 } [ { ptr @str.688, i64 4 }, %if.then.447 ], [ %callN, %if.else.448 ] + 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.450, label %if.else.451 + +if.then.450: ; preds = %entry + br label %if.merge.452 + +if.else.451: ; 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.693, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.692, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.452 + +if.merge.452: ; preds = %if.else.451, %if.then.450 + %bp = phi { ptr, i64 } [ { ptr @str.691, i64 4 }, %if.then.450 ], [ %callN, %if.else.451 ] + 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.453, label %if.else.454 + +if.then.453: ; preds = %entry + br label %if.merge.455 + +if.else.454: ; 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.696, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.695, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.455 + +if.merge.455: ; preds = %if.else.454, %if.then.453 + %bp = phi { ptr, i64 } [ { ptr @str.694, i64 4 }, %if.then.453 ], [ %callN, %if.else.454 ] + 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.456, label %if.else.457 + +if.then.456: ; preds = %entry + br label %if.merge.458 + +if.else.457: ; 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.699, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.698, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.458 + +if.merge.458: ; preds = %if.else.457, %if.then.456 + %bp = phi { ptr, i64 } [ { ptr @str.697, i64 4 }, %if.then.456 ], [ %callN, %if.else.457 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_f32(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.459, label %if.else.460 + +if.then.459: ; preds = %entry + br label %if.merge.461 + +if.else.460: ; 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.702, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.701, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.461 + +if.merge.461: ; preds = %if.else.460, %if.then.459 + %bp = phi { ptr, i64 } [ { ptr @str.700, i64 4 }, %if.then.459 ], [ %callN, %if.else.460 ] + 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.462, label %if.else.463 + +if.then.462: ; preds = %entry + br label %if.merge.464 + +if.else.463: ; 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.705, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.704, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.464 + +if.merge.464: ; preds = %if.else.463, %if.then.462 + %bp = phi { ptr, i64 } [ { ptr @str.703, i64 4 }, %if.then.462 ], [ %callN, %if.else.463 ] + 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.465, label %if.else.466 + +if.then.465: ; preds = %entry + br label %if.merge.467 + +if.else.466: ; 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.708, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.707, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.467 + +if.merge.467: ; preds = %if.else.466, %if.then.465 + %bp = phi { ptr, i64 } [ { ptr @str.706, i64 4 }, %if.then.465 ], [ %callN, %if.else.466 ] + 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.468, label %if.else.469 + +if.then.468: ; preds = %entry + br label %if.merge.470 + +if.else.469: ; 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.711, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.470 + +if.merge.470: ; preds = %if.else.469, %if.then.468 + %bp = phi { ptr, i64 } [ { ptr @str.709, i64 4 }, %if.then.468 ], [ %callN, %if.else.469 ] + 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.471, label %if.else.472 + +if.then.471: ; preds = %entry + br label %if.merge.473 + +if.else.472: ; 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.714, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.473 + +if.merge.473: ; preds = %if.else.472, %if.then.471 + %bp = phi { ptr, i64 } [ { ptr @str.712, i64 4 }, %if.then.471 ], [ %callN, %if.else.472 ] ret { ptr, i64 } %bp } @@ -3446,19 +7382,115 @@ entry: 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.267, label %if.else.268 + br i1 %icmp, label %if.then.474, label %if.else.475 -if.then.267: ; preds = %entry - br label %if.merge.269 +if.then.474: ; preds = %entry + br label %if.merge.476 -if.else.268: ; preds = %entry +if.else.475: ; 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.259, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.258, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.269 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.717, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.476 -if.merge.269: ; preds = %if.else.268, %if.then.267 - %bp = phi { ptr, i64 } [ { ptr @str.257, i64 4 }, %if.then.267 ], [ %callN, %if.else.268 ] +if.merge.476: ; preds = %if.else.475, %if.then.474 + %bp = phi { ptr, i64 } [ { ptr @str.715, i64 4 }, %if.then.474 ], [ %callN, %if.else.475 ] 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.483, label %if.merge.484 + +if.then.483: ; preds = %entry + ret { ptr, i64 } { ptr @str.718, i64 4 } + +if.merge.484: ; 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 39, 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.485, label %if.merge.486 + +if.then.485: ; preds = %entry + ret { ptr, i64 } { ptr @str.719, i64 4 } + +if.merge.486: ; 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_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.487, label %if.merge.488 + +if.then.487: ; preds = %entry + ret { ptr, i64 } { ptr @str.720, i64 4 } + +if.merge.488: ; 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 45, 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.489, label %if.merge.490 + +if.then.489: ; preds = %entry + ret { ptr, i64 } { ptr @str.721, i64 4 } + +if.merge.490: ; 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 88, 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/0200-generics-generic.ir b/examples/expected/0200-generics-generic.ir index daa58e0..97a008e 100644 --- a/examples/expected/0200-generics-generic.ir +++ b/examples/expected/0200-generics-generic.ir @@ -1,251 +1,611 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [70 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [160 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.64 = private constant [5 x i8] c"*s64\00" -@tn.str.65 = private constant [7 x i8] c"**void\00" -@tn.str.66 = private constant [8 x i8] c"*string\00" -@tn.str.67 = private constant [6 x i8] c"[]Any\00" -@tn.str.68 = private constant [5 x i8] c"*Any\00" -@tn.str.69 = private constant [7 x i8] c"[1]Any\00" -@tn.str.70 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.71 = private constant [7 x i8] c"*[]Any\00" -@tn.str.72 = private constant [4 x i8] c"*u8\00" -@tn.str.73 = private constant [6 x i8] c"*bool\00" -@tn.str.74 = private constant [5 x i8] c"*f64\00" -@tn.str.75 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.76 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.77 = private constant [11 x i8] c"*Allocator\00" -@tn.str.78 = private constant [9 x i8] c"*Context\00" -@tn.str.79 = private constant [10 x i8] c"*[]string\00" -@tn.str.80 = private constant [6 x i8] c"**GPA\00" -@tn.str.81 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.82 = private constant [8 x i8] c"**Arena\00" -@tn.str.83 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.84 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.85 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.86 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.87 = private constant [6 x i8] c"**s64\00" -@tn.str.88 = private constant [8 x i8] c"***void\00" -@tn.str.89 = private constant [9 x i8] c"**string\00" -@tn.str.90 = private constant [6 x i8] c"**Any\00" -@tn.str.91 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.92 = private constant [8 x i8] c"**[]Any\00" -@tn.str.93 = private constant [5 x i8] c"**u8\00" -@tn.str.94 = private constant [7 x i8] c"**bool\00" -@tn.str.95 = private constant [6 x i8] c"**f64\00" -@__sx_type_names = private constant [70 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 12 }, { ptr, i64 } { ptr @tn.str.64, i64 4 }, { ptr, i64 } { ptr @tn.str.65, i64 6 }, { ptr, i64 } { ptr @tn.str.66, i64 7 }, { ptr, i64 } { ptr @tn.str.67, i64 5 }, { ptr, i64 } { ptr @tn.str.68, i64 4 }, { ptr, i64 } { ptr @tn.str.69, i64 6 }, { ptr, i64 } { ptr @tn.str.70, i64 7 }, { ptr, i64 } { ptr @tn.str.71, i64 6 }, { ptr, i64 } { ptr @tn.str.72, i64 3 }, { ptr, i64 } { ptr @tn.str.73, i64 5 }, { ptr, i64 } { ptr @tn.str.74, i64 4 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 16 }, { ptr, i64 } { ptr @tn.str.77, i64 10 }, { ptr, i64 } { ptr @tn.str.78, i64 8 }, { ptr, i64 } { ptr @tn.str.79, i64 9 }, { ptr, i64 } { ptr @tn.str.80, i64 5 }, { ptr, i64 } { ptr @tn.str.81, i64 12 }, { ptr, i64 } { ptr @tn.str.82, i64 7 }, { ptr, i64 } { ptr @tn.str.83, i64 6 }, { ptr, i64 } { ptr @tn.str.84, i64 10 }, { ptr, i64 } { ptr @tn.str.85, i64 19 }, { ptr, i64 } { ptr @tn.str.86, i64 13 }, { ptr, i64 } { ptr @tn.str.87, i64 5 }, { ptr, i64 } { ptr @tn.str.88, i64 7 }, { ptr, i64 } { ptr @tn.str.89, i64 8 }, { ptr, i64 } { ptr @tn.str.90, i64 5 }, { ptr, i64 } { ptr @tn.str.91, i64 8 }, { ptr, i64 } { ptr @tn.str.92, i64 7 }, { ptr, i64 } { ptr @tn.str.93, i64 4 }, { ptr, i64 } { ptr @tn.str.94, i64 6 }, { ptr, i64 } { ptr @tn.str.95, i64 5 }] -@str.96 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.97 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.98 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.99 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.100 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.101 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.102 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.103 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.104 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.105 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.106 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.107 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.108 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.112 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.113 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.114 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.115 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 -@str.116 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.117 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 -@str.118 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 -@str.119 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.120 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 -@str.121 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.122 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.123 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.124 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.237 = private constant [7 x i8] c"**void\00" +@tn.str.238 = private constant [8 x i8] c"*string\00" +@tn.str.239 = private constant [6 x i8] c"[]Any\00" +@tn.str.240 = private constant [5 x i8] c"*Any\00" +@tn.str.241 = private constant [7 x i8] c"[1]Any\00" +@tn.str.242 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.243 = private constant [7 x i8] c"*[]Any\00" +@tn.str.244 = private constant [6 x i8] c"*bool\00" +@tn.str.245 = private constant [5 x i8] c"*f64\00" +@tn.str.246 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.247 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.248 = private constant [11 x i8] c"*Allocator\00" +@tn.str.249 = private constant [9 x i8] c"*Context\00" +@tn.str.250 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.251 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.252 = private constant [8 x i8] c"*Member\00" +@tn.str.253 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.254 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.255 = private constant [9 x i8] c"*Command\00" +@tn.str.256 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.257 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.258 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.259 = private constant [7 x i8] c"*Value\00" +@tn.str.260 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.261 = private constant [14 x i8] c"*Architecture\00" +@tn.str.262 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.263 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.264 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.265 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.266 = private constant [10 x i8] c"*[]string\00" +@tn.str.267 = private constant [6 x i8] c"*[]u8\00" +@tn.str.268 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.269 = private constant [11 x i8] c"*[]Command\00" +@tn.str.270 = private constant [6 x i8] c"**GPA\00" +@tn.str.271 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.272 = private constant [8 x i8] c"**Arena\00" +@tn.str.273 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.274 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.275 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.276 = private constant [7 x i8] c"**File\00" +@tn.str.277 = private constant [5 x i8] c"**u8\00" +@tn.str.278 = private constant [6 x i8] c"**s32\00" +@tn.str.279 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.280 = private constant [6 x i8] c"**u32\00" +@tn.str.281 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.282 = private constant [8 x i8] c"**Array\00" +@tn.str.283 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.284 = private constant [9 x i8] c"**Object\00" +@tn.str.285 = private constant [7 x i8] c"**Sink\00" +@tn.str.286 = private constant [9 x i8] c"**Parser\00" +@tn.str.287 = private constant [6 x i8] c"**s64\00" +@tn.str.288 = private constant [9 x i8] c"**Parsed\00" +@tn.str.289 = private constant [7 x i8] c"**Diag\00" +@tn.str.290 = private constant [9 x i8] c"**Sha256\00" +@tn.str.291 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.292 = private constant [8 x i8] c"***void\00" +@tn.str.293 = private constant [9 x i8] c"**string\00" +@tn.str.294 = private constant [6 x i8] c"**Any\00" +@tn.str.295 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.296 = private constant [8 x i8] c"**[]Any\00" +@tn.str.297 = private constant [7 x i8] c"**bool\00" +@tn.str.298 = private constant [6 x i8] c"**f64\00" +@tn.str.299 = private constant [7 x i8] c"*?File\00" +@tn.str.300 = private constant [9 x i8] c"*?string\00" +@tn.str.301 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.302 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [160 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 12 }, { ptr, i64 } { ptr @tn.str.237, i64 6 }, { ptr, i64 } { ptr @tn.str.238, i64 7 }, { ptr, i64 } { ptr @tn.str.239, i64 5 }, { ptr, i64 } { ptr @tn.str.240, i64 4 }, { ptr, i64 } { ptr @tn.str.241, i64 6 }, { ptr, i64 } { ptr @tn.str.242, i64 7 }, { ptr, i64 } { ptr @tn.str.243, i64 6 }, { ptr, i64 } { ptr @tn.str.244, i64 5 }, { ptr, i64 } { ptr @tn.str.245, i64 4 }, { ptr, i64 } { ptr @tn.str.246, i64 7 }, { ptr, i64 } { ptr @tn.str.247, i64 16 }, { ptr, i64 } { ptr @tn.str.248, i64 10 }, { ptr, i64 } { ptr @tn.str.249, i64 8 }, { ptr, i64 } { ptr @tn.str.250, i64 11 }, { ptr, i64 } { ptr @tn.str.251, i64 14 }, { ptr, i64 } { ptr @tn.str.252, i64 7 }, { ptr, i64 } { ptr @tn.str.253, i64 13 }, { ptr, i64 } { ptr @tn.str.254, i64 9 }, { ptr, i64 } { ptr @tn.str.255, i64 8 }, { ptr, i64 } { ptr @tn.str.256, i64 10 }, { ptr, i64 } { ptr @tn.str.257, i64 9 }, { ptr, i64 } { ptr @tn.str.258, i64 9 }, { ptr, i64 } { ptr @tn.str.259, i64 6 }, { ptr, i64 } { ptr @tn.str.260, i64 16 }, { ptr, i64 } { ptr @tn.str.261, i64 13 }, { ptr, i64 } { ptr @tn.str.262, i64 14 }, { ptr, i64 } { ptr @tn.str.263, i64 7 }, { ptr, i64 } { ptr @tn.str.264, i64 7 }, { ptr, i64 } { ptr @tn.str.265, i64 8 }, { ptr, i64 } { ptr @tn.str.266, i64 9 }, { ptr, i64 } { ptr @tn.str.267, i64 5 }, { ptr, i64 } { ptr @tn.str.268, i64 11 }, { ptr, i64 } { ptr @tn.str.269, i64 10 }, { ptr, i64 } { ptr @tn.str.270, i64 5 }, { ptr, i64 } { ptr @tn.str.271, i64 12 }, { ptr, i64 } { ptr @tn.str.272, i64 7 }, { ptr, i64 } { ptr @tn.str.273, i64 6 }, { ptr, i64 } { ptr @tn.str.274, i64 10 }, { ptr, i64 } { ptr @tn.str.275, i64 19 }, { ptr, i64 } { ptr @tn.str.276, i64 6 }, { ptr, i64 } { ptr @tn.str.277, i64 4 }, { ptr, i64 } { ptr @tn.str.278, i64 5 }, { ptr, i64 } { ptr @tn.str.279, i64 10 }, { ptr, i64 } { ptr @tn.str.280, i64 5 }, { ptr, i64 } { ptr @tn.str.281, i64 9 }, { ptr, i64 } { ptr @tn.str.282, i64 7 }, { ptr, i64 } { ptr @tn.str.283, i64 10 }, { ptr, i64 } { ptr @tn.str.284, i64 8 }, { ptr, i64 } { ptr @tn.str.285, i64 6 }, { ptr, i64 } { ptr @tn.str.286, i64 8 }, { ptr, i64 } { ptr @tn.str.287, i64 5 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 6 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 13 }, { ptr, i64 } { ptr @tn.str.292, i64 7 }, { ptr, i64 } { ptr @tn.str.293, i64 8 }, { ptr, i64 } { ptr @tn.str.294, i64 5 }, { ptr, i64 } { ptr @tn.str.295, i64 8 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 6 }, { ptr, i64 } { ptr @tn.str.298, i64 5 }, { ptr, i64 } { ptr @tn.str.299, i64 6 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 15 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }] +@str.303 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.304 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.305 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.306 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.307 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.310 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.311 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.312 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.313 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.314 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.315 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.316 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.317 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.318 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.319 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.320 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.321 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.322 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.323 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.324 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 +@str.325 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.326 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 +@str.327 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 +@str.328 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.329 = private unnamed_addr constant [9 x i8] c"sum: {}\0A\00", align 1 +@str.330 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.331 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.332 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.333 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.125 = private constant [5 x i8] c"line\00" -@fld.str.126 = private constant [4 x i8] c"col\00" -@fld.str.127 = 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.125, i64 4 }, { ptr, i64 } { ptr @fld.str.126, i64 3 }, { ptr, i64 } { ptr @fld.str.127, i64 4 }] -@str.128 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.129 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.130 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.131 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.133 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.134 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.135 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.136 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.137 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.139 = private constant [12 x i8] c"alloc_count\00" -@field_names.140 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.139, i64 11 }] -@str.141 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.142 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.144 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.145 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.146 = private constant [5 x i8] c"next\00" -@fld.str.147 = private constant [4 x i8] c"cap\00" -@field_names.148 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.146, i64 4 }, { ptr, i64 } { ptr @fld.str.147, i64 3 }] -@str.149 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.150 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.152 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.153 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.154 = private constant [4 x i8] c"ctx\00" -@fld.str.155 = private constant [6 x i8] c"alloc\00" -@fld.str.156 = private constant [8 x i8] c"dealloc\00" -@field_names.157 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.154, i64 3 }, { ptr, i64 } { ptr @fld.str.155, i64 5 }, { ptr, i64 } { ptr @fld.str.156, i64 7 }] -@str.158 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.159 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.160 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.161 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.162 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.163 = private constant [6 x i8] c"first\00" -@fld.str.164 = private constant [10 x i8] c"end_index\00" -@fld.str.165 = private constant [7 x i8] c"parent\00" -@field_names.166 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.163, i64 5 }, { ptr, i64 } { ptr @fld.str.164, i64 9 }, { ptr, i64 } { ptr @fld.str.165, i64 6 }] -@str.167 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.168 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.169 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.170 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.171 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.172 = private constant [4 x i8] c"buf\00" -@fld.str.173 = private constant [4 x i8] c"len\00" -@fld.str.174 = private constant [4 x i8] c"pos\00" -@field_names.175 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.172, i64 3 }, { ptr, i64 } { ptr @fld.str.173, i64 3 }, { ptr, i64 } { ptr @fld.str.174, i64 3 }] -@str.176 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.177 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.178 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.179 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.180 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.181 = private constant [7 x i8] c"parent\00" -@fld.str.182 = private constant [12 x i8] c"alloc_count\00" -@fld.str.183 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.184 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.185 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.181, i64 6 }, { ptr, i64 } { ptr @fld.str.182, i64 11 }, { ptr, i64 } { ptr @fld.str.183, i64 13 }, { ptr, i64 } { ptr @fld.str.184, i64 17 }] -@str.186 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.187 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.188 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.189 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.190 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.191 = private constant [10 x i8] c"allocator\00" -@fld.str.192 = private constant [5 x i8] c"data\00" -@field_names.193 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.191, i64 9 }, { ptr, i64 } { ptr @fld.str.192, i64 4 }] -@str.194 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.195 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.196 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.197 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.198 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.199 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.200 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.201 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.203 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.204 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.205 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.206 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.207 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.208 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.209 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.210 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.211 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.212 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.213 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.214 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.215 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.216 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.217 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.218 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.219 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.220 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.221 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.222 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.223 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.224 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.225 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.226 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.227 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.228 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.229 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.230 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.231 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.232 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.233 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.234 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.235 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.236 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.237 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.238 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.239 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.240 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.241 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.242 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.243 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.244 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.245 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.246 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.247 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.248 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.249 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.250 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.251 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.252 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.253 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.254 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.255 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.256 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.257 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.258 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.259 = private unnamed_addr constant [5 x i8] c"*f64\00", align 1 -@str.260 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.334 = private constant [5 x i8] c"line\00" +@fld.str.335 = private constant [4 x i8] c"col\00" +@fld.str.336 = 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.334, i64 4 }, { ptr, i64 } { ptr @fld.str.335, i64 3 }, { ptr, i64 } { ptr @fld.str.336, i64 4 }] +@str.337 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.338 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.339 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.340 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.341 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.342 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.343 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.344 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.345 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.346 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.347 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.348 = private constant [12 x i8] c"alloc_count\00" +@field_names.349 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.348, i64 11 }] +@str.350 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.351 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.353 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.354 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.355 = private constant [5 x i8] c"next\00" +@fld.str.356 = private constant [4 x i8] c"cap\00" +@field_names.357 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.355, i64 4 }, { ptr, i64 } { ptr @fld.str.356, i64 3 }] +@str.358 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.359 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.360 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.361 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.362 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.363 = private constant [4 x i8] c"ctx\00" +@fld.str.364 = private constant [6 x i8] c"alloc\00" +@fld.str.365 = private constant [8 x i8] c"dealloc\00" +@field_names.366 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.363, i64 3 }, { ptr, i64 } { ptr @fld.str.364, i64 5 }, { ptr, i64 } { ptr @fld.str.365, i64 7 }] +@str.367 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.368 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.369 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.370 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.371 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.372 = private constant [6 x i8] c"first\00" +@fld.str.373 = private constant [10 x i8] c"end_index\00" +@fld.str.374 = private constant [7 x i8] c"parent\00" +@field_names.375 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.372, i64 5 }, { ptr, i64 } { ptr @fld.str.373, i64 9 }, { ptr, i64 } { ptr @fld.str.374, i64 6 }] +@str.376 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.377 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.378 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.379 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.380 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.381 = private constant [4 x i8] c"buf\00" +@fld.str.382 = private constant [4 x i8] c"len\00" +@fld.str.383 = private constant [4 x i8] c"pos\00" +@field_names.384 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.381, i64 3 }, { ptr, i64 } { ptr @fld.str.382, i64 3 }, { ptr, i64 } { ptr @fld.str.383, i64 3 }] +@str.385 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.386 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.387 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.388 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.389 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.390 = private constant [7 x i8] c"parent\00" +@fld.str.391 = private constant [12 x i8] c"alloc_count\00" +@fld.str.392 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.393 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.394 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.390, i64 6 }, { ptr, i64 } { ptr @fld.str.391, i64 11 }, { ptr, i64 } { ptr @fld.str.392, i64 13 }, { ptr, i64 } { ptr @fld.str.393, i64 17 }] +@str.395 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.396 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.397 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.398 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.399 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.400 = private constant [10 x i8] c"allocator\00" +@fld.str.401 = private constant [5 x i8] c"data\00" +@field_names.402 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.400, i64 9 }, { ptr, i64 } { ptr @fld.str.401, i64 4 }] +@str.403 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.404 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.405 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.406 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.407 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.408 = private constant [3 x i8] c"fd\00" +@field_names.409 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.408, i64 2 }] +@str.410 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.411 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.412 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.413 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.414 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.415 = private constant [5 x i8] c"file\00" +@fld.str.416 = private constant [5 x i8] c"line\00" +@fld.str.417 = private constant [4 x i8] c"col\00" +@fld.str.418 = private constant [5 x i8] c"func\00" +@fld.str.419 = private constant [10 x i8] c"line_text\00" +@field_names.420 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.415, i64 4 }, { ptr, i64 } { ptr @fld.str.416, i64 4 }, { ptr, i64 } { ptr @fld.str.417, i64 3 }, { ptr, i64 } { ptr @fld.str.418, i64 4 }, { ptr, i64 } { ptr @fld.str.419, i64 9 }] +@str.421 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.422 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.423 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.424 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.425 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.426 = private constant [10 x i8] c"exit_code\00" +@fld.str.427 = private constant [7 x i8] c"stdout\00" +@field_names.428 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.426, i64 9 }, { ptr, i64 } { ptr @fld.str.427, i64 6 }] +@str.429 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.430 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.431 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.432 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.433 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.434 = private constant [8 x i8] c"sin_len\00" +@fld.str.435 = private constant [11 x i8] c"sin_family\00" +@fld.str.436 = private constant [9 x i8] c"sin_port\00" +@fld.str.437 = private constant [9 x i8] c"sin_addr\00" +@fld.str.438 = private constant [9 x i8] c"sin_zero\00" +@field_names.439 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.434, i64 7 }, { ptr, i64 } { ptr @fld.str.435, i64 10 }, { ptr, i64 } { ptr @fld.str.436, i64 8 }, { ptr, i64 } { ptr @fld.str.437, i64 8 }, { ptr, i64 } { ptr @fld.str.438, i64 8 }] +@str.440 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.441 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.442 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.443 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.444 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.445 = private constant [6 x i8] c"items\00" +@fld.str.446 = private constant [4 x i8] c"len\00" +@fld.str.447 = private constant [4 x i8] c"cap\00" +@field_names.448 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.445, i64 5 }, { ptr, i64 } { ptr @fld.str.446, i64 3 }, { ptr, i64 } { ptr @fld.str.447, i64 3 }] +@str.449 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.450 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.451 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.452 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.453 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.454 = private constant [6 x i8] c"items\00" +@fld.str.455 = private constant [4 x i8] c"len\00" +@fld.str.456 = private constant [4 x i8] c"cap\00" +@field_names.457 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.454, i64 5 }, { ptr, i64 } { ptr @fld.str.455, i64 3 }, { ptr, i64 } { ptr @fld.str.456, i64 3 }] +@str.458 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.459 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.460 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.461 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.462 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.463 = private constant [4 x i8] c"key\00" +@fld.str.464 = private constant [4 x i8] c"val\00" +@field_names.465 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.463, i64 3 }, { ptr, i64 } { ptr @fld.str.464, i64 3 }] +@str.466 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.467 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.468 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.469 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.470 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.471 = private constant [4 x i8] c"dst\00" +@fld.str.472 = private constant [4 x i8] c"pos\00" +@fld.str.473 = private constant [5 x i8] c"file\00" +@field_names.474 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.471, i64 3 }, { ptr, i64 } { ptr @fld.str.472, i64 3 }, { ptr, i64 } { ptr @fld.str.473, i64 4 }] +@str.475 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.476 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.477 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.478 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.479 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.480 = private constant [4 x i8] c"src\00" +@fld.str.481 = private constant [4 x i8] c"pos\00" +@fld.str.482 = private constant [6 x i8] c"alloc\00" +@field_names.483 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.480, i64 3 }, { ptr, i64 } { ptr @fld.str.481, i64 3 }, { ptr, i64 } { ptr @fld.str.482, i64 5 }] +@str.484 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.485 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.486 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.487 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.488 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.489 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.490 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.491 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.493 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.494 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.495 = private constant [5 x i8] c"name\00" +@fld.str.496 = private constant [12 x i8] c"takes_value\00" +@fld.str.497 = private constant [9 x i8] c"required\00" +@field_names.498 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.495, i64 4 }, { ptr, i64 } { ptr @fld.str.496, i64 11 }, { ptr, i64 } { ptr @fld.str.497, i64 8 }] +@str.499 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.500 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.501 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.502 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.503 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.504 = private constant [6 x i8] c"group\00" +@fld.str.505 = private constant [8 x i8] c"command\00" +@fld.str.506 = private constant [6 x i8] c"flags\00" +@field_names.507 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.504, i64 5 }, { ptr, i64 } { ptr @fld.str.505, i64 7 }, { ptr, i64 } { ptr @fld.str.506, i64 5 }] +@str.508 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.509 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.510 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.511 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.512 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.513 = private constant [4 x i8] c"set\00" +@fld.str.514 = private constant [6 x i8] c"value\00" +@field_names.515 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.513, i64 3 }, { ptr, i64 } { ptr @fld.str.514, i64 5 }] +@str.516 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.517 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.518 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.519 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.520 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.521 = private constant [6 x i8] c"index\00" +@fld.str.522 = private constant [6 x i8] c"token\00" +@field_names.523 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.521, i64 5 }, { ptr, i64 } { ptr @fld.str.522, i64 5 }] +@str.524 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.525 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.526 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.527 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.528 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.529 = private constant [6 x i8] c"group\00" +@fld.str.530 = private constant [8 x i8] c"command\00" +@fld.str.531 = private constant [10 x i8] c"cmd_index\00" +@fld.str.532 = private constant [5 x i8] c"json\00" +@fld.str.533 = private constant [5 x i8] c"rest\00" +@fld.str.534 = private constant [5 x i8] c"spec\00" +@fld.str.535 = private constant [7 x i8] c"values\00" +@field_names.536 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.529, i64 5 }, { ptr, i64 } { ptr @fld.str.530, i64 7 }, { ptr, i64 } { ptr @fld.str.531, i64 9 }, { ptr, i64 } { ptr @fld.str.532, i64 4 }, { ptr, i64 } { ptr @fld.str.533, i64 4 }, { ptr, i64 } { ptr @fld.str.534, i64 4 }, { ptr, i64 } { ptr @fld.str.535, i64 6 }] +@str.537 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.538 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.539 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.540 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.541 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.542 = private constant [2 x i8] c"h\00" +@fld.str.543 = private constant [4 x i8] c"buf\00" +@fld.str.544 = private constant [8 x i8] c"buf_len\00" +@fld.str.545 = private constant [10 x i8] c"total_len\00" +@field_names.546 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.542, i64 1 }, { ptr, i64 } { ptr @fld.str.543, i64 3 }, { ptr, i64 } { ptr @fld.str.544, i64 7 }, { ptr, i64 } { ptr @fld.str.545, i64 9 }] +@str.547 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.548 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.549 = private constant [5 x i8] c"read\00" +@fld.str.550 = private constant [6 x i8] c"write\00" +@fld.str.551 = private constant [7 x i8] c"append\00" +@fld.str.552 = private constant [11 x i8] c"read_write\00" +@field_names.553 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.549, i64 4 }, { ptr, i64 } { ptr @fld.str.550, i64 5 }, { ptr, i64 } { ptr @fld.str.551, i64 6 }, { ptr, i64 } { ptr @fld.str.552, i64 10 }] +@str.554 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.555 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.556 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.557 = private constant [4 x i8] c"set\00" +@fld.str.558 = private constant [8 x i8] c"current\00" +@fld.str.559 = private constant [4 x i8] c"end\00" +@field_names.560 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.557, i64 3 }, { ptr, i64 } { ptr @fld.str.558, i64 7 }, { ptr, i64 } { ptr @fld.str.559, i64 3 }] +@str.561 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.562 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.563 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.564 = private constant [6 x i8] c"null_\00" +@fld.str.565 = private constant [6 x i8] c"bool_\00" +@fld.str.566 = private constant [5 x i8] c"int_\00" +@fld.str.567 = private constant [4 x i8] c"str\00" +@fld.str.568 = private constant [6 x i8] c"array\00" +@fld.str.569 = private constant [7 x i8] c"object\00" +@field_names.570 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.564, i64 5 }, { ptr, i64 } { ptr @fld.str.565, i64 5 }, { ptr, i64 } { ptr @fld.str.566, i64 4 }, { ptr, i64 } { ptr @fld.str.567, i64 3 }, { ptr, i64 } { ptr @fld.str.568, i64 5 }, { ptr, i64 } { ptr @fld.str.569, i64 6 }] +@str.571 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.572 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.573 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.574 = private constant [6 x i8] c"macos\00" +@fld.str.575 = private constant [6 x i8] c"linux\00" +@fld.str.576 = private constant [8 x i8] c"windows\00" +@fld.str.577 = private constant [5 x i8] c"wasm\00" +@fld.str.578 = private constant [4 x i8] c"ios\00" +@fld.str.579 = private constant [8 x i8] c"android\00" +@fld.str.580 = private constant [8 x i8] c"unknown\00" +@field_names.581 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.574, i64 5 }, { ptr, i64 } { ptr @fld.str.575, i64 5 }, { ptr, i64 } { ptr @fld.str.576, i64 7 }, { ptr, i64 } { ptr @fld.str.577, i64 4 }, { ptr, i64 } { ptr @fld.str.578, i64 3 }, { ptr, i64 } { ptr @fld.str.579, i64 7 }, { ptr, i64 } { ptr @fld.str.580, i64 7 }] +@str.582 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.583 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.584 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.585 = private constant [8 x i8] c"aarch64\00" +@fld.str.586 = private constant [7 x i8] c"x86_64\00" +@fld.str.587 = private constant [7 x i8] c"wasm32\00" +@fld.str.588 = private constant [7 x i8] c"wasm64\00" +@fld.str.589 = private constant [8 x i8] c"unknown\00" +@field_names.590 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.585, i64 7 }, { ptr, i64 } { ptr @fld.str.586, i64 6 }, { ptr, i64 } { ptr @fld.str.587, i64 6 }, { ptr, i64 } { ptr @fld.str.588, i64 6 }, { ptr, i64 } { ptr @fld.str.589, i64 7 }] +@str.591 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.592 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.593 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.594 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.595 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.596 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.597 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.598 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.600 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.601 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.602 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.603 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.604 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.607 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.609 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.610 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.612 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.613 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.616 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.618 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.619 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.622 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.624 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.625 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.626 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.627 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.628 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.629 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.630 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.631 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.632 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.633 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.634 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.635 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.636 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.637 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.638 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.639 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.640 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.641 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.642 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.643 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.644 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.645 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.646 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.647 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.648 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.649 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.650 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.651 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.652 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.653 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.654 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.655 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.656 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.657 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.658 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.659 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.660 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.661 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.662 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.663 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.664 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.665 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.666 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.667 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.668 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.669 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.670 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.671 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.672 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.673 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.674 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.675 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.676 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.677 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.678 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.679 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.680 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.681 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.682 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.683 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.684 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.685 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.686 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.687 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.688 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.689 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.690 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.691 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.692 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.693 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.694 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.695 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.696 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.697 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.698 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.699 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.700 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.701 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.702 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.703 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.704 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.705 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.706 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.707 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.708 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.709 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.710 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.711 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.712 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.713 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.714 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.715 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.716 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"*f64\00", align 1 +@str.718 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.719 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.722 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -477,7 +837,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -604,7 +964,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -773,38 +1133,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.203 + br label %while.hdr.371 -while.hdr.203: ; preds = %if.merge.208, %entry +while.hdr.371: ; preds = %if.merge.376, %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.204, label %while.exit.205 + br i1 %icmp, label %while.body.372, label %while.exit.373 -while.body.204: ; preds = %while.hdr.203 +while.body.372: ; preds = %while.hdr.371 %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.206, label %if.else.207 + br i1 %icmpN, label %if.then.374, label %if.else.375 -while.exit.205: ; preds = %while.hdr.203 +while.exit.373: ; preds = %while.hdr.371 ret void -if.then.206: ; preds = %while.body.204 +if.then.374: ; preds = %while.body.372 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.208 + br label %if.merge.376 -if.else.207: ; preds = %while.body.204 +if.else.375: ; preds = %while.body.372 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.208 + br label %if.merge.376 -if.merge.208: ; preds = %if.else.207, %if.then.206 - %bp = phi i64 [ %addN, %if.then.206 ], [ %addN, %if.else.207 ] +if.merge.376: ; preds = %if.else.375, %if.then.374 + %bp = phi i64 [ %addN, %if.then.374 ], [ %addN, %if.else.375 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -817,7 +1177,7 @@ if.merge.208: ; preds = %if.else.207, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.203 + br label %while.hdr.371 } ; Function Attrs: nounwind @@ -935,12 +1295,12 @@ entry: 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.201, label %if.merge.202 + br i1 %icmp, label %if.then.369, label %if.merge.370 -if.then.201: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.369: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.202: ; preds = %entry +if.merge.370: ; 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 @@ -971,14 +1331,14 @@ if.merge.202: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.377 -while.hdr.209: ; preds = %if.merge.213, %if.merge.202 +while.hdr.377: ; preds = %if.merge.381, %if.merge.370 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.210, label %while.exit.211 + br i1 %icmpN, label %while.body.378, label %while.exit.379 -while.body.210: ; preds = %while.hdr.209 +while.body.378: ; preds = %while.hdr.377 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -986,9 +1346,9 @@ while.body.210: ; preds = %while.hdr.209 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.212, label %if.merge.213 + br i1 %icmpN, label %if.then.380, label %if.merge.381 -while.exit.211: ; preds = %if.then.212, %while.hdr.209 +while.exit.379: ; preds = %if.then.380, %while.hdr.377 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -996,14 +1356,14 @@ while.exit.211: ; preds = %if.then.212, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.212: ; preds = %while.body.210 - br label %while.exit.211 +if.then.380: ; preds = %while.body.378 + br label %while.exit.379 -if.merge.213: ; preds = %while.body.210 +if.merge.381: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.377 } ; Function Attrs: nounwind @@ -1081,11 +1441,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1118,10 +1481,41 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 + i64 39, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 43, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 98, label %match.arm.47 i64 36, label %match.arm.48 - i64 41, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 96, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1130,25 +1524,42 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 37, label %match.arm.49 - i64 38, label %match.arm.49 - i64 39, label %match.arm.49 i64 40, label %match.arm.49 - i64 42, label %match.arm.49 i64 44, label %match.arm.49 - i64 45, label %match.arm.49 - i64 46, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 + i64 49, label %match.arm.49 + i64 50, label %match.arm.49 + i64 56, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 93, label %match.arm.49 + i64 94, label %match.arm.49 + i64 95, label %match.arm.49 + i64 97, label %match.arm.49 + i64 99, label %match.arm.49 + i64 100, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.178, %dispatch.merge.164, %dispatch.merge.150, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.472, %dispatch.merge.333, %dispatch.merge.301, %dispatch.merge.263, %dispatch.merge.246, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1157,7 +1568,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [70 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [160 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1185,7 +1596,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1199,70 +1610,132 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.247 [ + i64 37, label %dispatch.case.248 + i64 38, label %dispatch.case.249 + i64 54, label %dispatch.case.250 + i64 70, label %dispatch.case.251 + i64 71, label %dispatch.case.252 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.151 [ - i64 35, label %dispatch.case.152 - i64 43, label %dispatch.case.153 + switch i64 %ua.raw29, label %dispatch.default.264 [ + i64 35, label %dispatch.case.265 + i64 81, label %dispatch.case.266 + i64 87, label %dispatch.case.267 + i64 88, label %dispatch.case.268 + i64 92, label %dispatch.case.269 + i64 98, label %dispatch.case.270 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.165 [ - i64 36, label %dispatch.case.166 - i64 41, label %dispatch.case.167 + switch i64 %ua.raw33, label %dispatch.default.302 [ + i64 36, label %dispatch.case.303 + i64 60, label %dispatch.case.304 + i64 77, label %dispatch.case.305 + i64 85, label %dispatch.case.306 + i64 96, label %dispatch.case.307 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.179 [ - i64 18, label %dispatch.case.180 - i64 21, label %dispatch.case.181 - i64 23, label %dispatch.case.182 - i64 25, label %dispatch.case.183 - i64 28, label %dispatch.case.184 - i64 29, label %dispatch.case.185 - i64 31, label %dispatch.case.186 - i64 33, label %dispatch.case.187 - i64 37, label %dispatch.case.188 - i64 38, label %dispatch.case.189 - i64 39, label %dispatch.case.190 - i64 40, label %dispatch.case.191 - i64 42, label %dispatch.case.192 - i64 44, label %dispatch.case.193 - i64 45, label %dispatch.case.194 - i64 46, label %dispatch.case.195 - i64 47, label %dispatch.case.196 - i64 48, label %dispatch.case.197 + switch i64 %ua.raw37, label %dispatch.default.334 [ + i64 18, label %dispatch.case.335 + i64 21, label %dispatch.case.336 + i64 23, label %dispatch.case.337 + i64 25, label %dispatch.case.338 + i64 28, label %dispatch.case.339 + i64 29, label %dispatch.case.340 + i64 31, label %dispatch.case.341 + i64 33, label %dispatch.case.342 + i64 40, label %dispatch.case.343 + i64 44, label %dispatch.case.344 + i64 47, label %dispatch.case.345 + i64 49, label %dispatch.case.346 + i64 50, label %dispatch.case.347 + i64 56, label %dispatch.case.348 + i64 57, label %dispatch.case.349 + i64 58, label %dispatch.case.350 + i64 59, label %dispatch.case.351 + i64 62, label %dispatch.case.352 + i64 67, label %dispatch.case.353 + i64 74, label %dispatch.case.354 + i64 83, label %dispatch.case.355 + i64 86, label %dispatch.case.356 + i64 90, label %dispatch.case.357 + i64 93, label %dispatch.case.358 + i64 94, label %dispatch.case.359 + i64 95, label %dispatch.case.360 + i64 97, label %dispatch.case.361 + i64 99, label %dispatch.case.362 + i64 100, label %dispatch.case.363 + i64 101, label %dispatch.case.364 + i64 102, label %dispatch.case.365 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.473 [ + i64 41, label %dispatch.case.474 + i64 42, label %dispatch.case.475 + i64 46, label %dispatch.case.476 + i64 91, label %dispatch.case.477 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [70 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [160 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1272,15 +1745,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1288,16 +1761,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1307,271 +1780,628 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.96, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.303, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.150: ; preds = %dispatch.case.153, %dispatch.case.152, %dispatch.default.151 +dispatch.case.105: ; preds = %match.arm.43 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.106: ; preds = %match.arm.43 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.107: ; preds = %match.arm.43 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.246: ; preds = %dispatch.case.252, %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.default.247 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.151: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.97, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.150 +dispatch.default.247: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.304, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.246 -dispatch.case.152: ; preds = %match.arm.47 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86) +dispatch.case.248: ; preds = %match.arm.44 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.case.153: ; preds = %match.arm.47 - %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr - %ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90) +dispatch.case.249: ; preds = %match.arm.44 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.merge.164: ; preds = %dispatch.case.167, %dispatch.case.166, %dispatch.default.165 +dispatch.case.250: ; preds = %match.arm.44 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.251: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.252: ; preds = %match.arm.44 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.merge.263: ; preds = %dispatch.case.270, %dispatch.case.269, %dispatch.case.268, %dispatch.case.267, %dispatch.case.266, %dispatch.case.265, %dispatch.default.264 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.165: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.98, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.164 +dispatch.default.264: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.305, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.263 -dispatch.case.166: ; preds = %match.arm.48 - %ua.raw93 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr94 = inttoptr i64 %ua.raw93 to ptr - %ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95) +dispatch.case.265: ; preds = %match.arm.47 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.164 + br label %dispatch.merge.263 -dispatch.case.167: ; preds = %match.arm.48 - %ua.raw97 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr98 = inttoptr i64 %ua.raw97 to ptr - %ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99) +dispatch.case.266: ; preds = %match.arm.47 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.164 + br label %dispatch.merge.263 -dispatch.merge.178: ; preds = %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.case.189, %dispatch.case.188, %dispatch.case.187, %dispatch.case.186, %dispatch.case.185, %dispatch.case.184, %dispatch.case.183, %dispatch.case.182, %dispatch.case.181, %dispatch.case.180, %dispatch.default.179 +dispatch.case.267: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.268: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.269: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.270: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.merge.301: ; preds = %dispatch.case.307, %dispatch.case.306, %dispatch.case.305, %dispatch.case.304, %dispatch.case.303, %dispatch.default.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.179: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.99, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.178 +dispatch.default.302: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.306, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.301 -dispatch.case.180: ; preds = %match.arm.49 - %ua.raw102 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw102 to ptr +dispatch.case.303: ; preds = %match.arm.48 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr200 = inttoptr i64 %ua.raw199 to ptr + %ua.load201 = load { ptr, i64 }, ptr %ua.ptr200, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load201) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.304: ; preds = %match.arm.48 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.305: ; preds = %match.arm.48 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.306: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.307: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.merge.333: ; preds = %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.case.340, %dispatch.case.339, %dispatch.case.338, %dispatch.case.337, %dispatch.case.336, %dispatch.case.335, %dispatch.default.334 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.334: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.307, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.335: ; preds = %match.arm.49 + %ua.raw220 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw220 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.181: ; preds = %match.arm.49 - %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 - %iNp105 = inttoptr i64 %ua.raw104 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105) +dispatch.case.336: ; preds = %match.arm.49 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %iNp223 = inttoptr i64 %ua.raw222 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp223) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.182: ; preds = %match.arm.49 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %iNp108 = inttoptr i64 %ua.raw107 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108) +dispatch.case.337: ; preds = %match.arm.49 + %ua.raw225 = extractvalue { i64, i64 } %loadN, 1 + %iNp226 = inttoptr i64 %ua.raw225 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp226) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.183: ; preds = %match.arm.49 - %ua.raw110 = extractvalue { i64, i64 } %loadN, 1 - %iNp111 = inttoptr i64 %ua.raw110 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111) +dispatch.case.338: ; preds = %match.arm.49 + %ua.raw228 = extractvalue { i64, i64 } %loadN, 1 + %iNp229 = inttoptr i64 %ua.raw228 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp229) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.184: ; preds = %match.arm.49 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %iNp114 = inttoptr i64 %ua.raw113 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114) +dispatch.case.339: ; preds = %match.arm.49 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %iNp232 = inttoptr i64 %ua.raw231 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp232) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.185: ; preds = %match.arm.49 - %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 - %iNp117 = inttoptr i64 %ua.raw116 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117) +dispatch.case.340: ; preds = %match.arm.49 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.186: ; preds = %match.arm.49 - %ua.raw119 = extractvalue { i64, i64 } %loadN, 1 - %iNp120 = inttoptr i64 %ua.raw119 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120) +dispatch.case.341: ; preds = %match.arm.49 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.187: ; preds = %match.arm.49 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %iNp123 = inttoptr i64 %ua.raw122 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123) +dispatch.case.342: ; preds = %match.arm.49 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.188: ; preds = %match.arm.49 - %ua.raw125 = extractvalue { i64, i64 } %loadN, 1 - %iNp126 = inttoptr i64 %ua.raw125 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126) +dispatch.case.343: ; preds = %match.arm.49 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.189: ; preds = %match.arm.49 - %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 - %iNp129 = inttoptr i64 %ua.raw128 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129) +dispatch.case.344: ; preds = %match.arm.49 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.190: ; preds = %match.arm.49 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp132 = inttoptr i64 %ua.raw131 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132) +dispatch.case.345: ; preds = %match.arm.49 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.191: ; preds = %match.arm.49 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %iNp135 = inttoptr i64 %ua.raw134 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp135) +dispatch.case.346: ; preds = %match.arm.49 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.192: ; preds = %match.arm.49 - %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 - %iNp138 = inttoptr i64 %ua.raw137 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp138) +dispatch.case.347: ; preds = %match.arm.49 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.193: ; preds = %match.arm.49 - %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 - %iNp141 = inttoptr i64 %ua.raw140 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp141) +dispatch.case.348: ; preds = %match.arm.49 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.194: ; preds = %match.arm.49 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %iNp144 = inttoptr i64 %ua.raw143 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp144) +dispatch.case.349: ; preds = %match.arm.49 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.195: ; preds = %match.arm.49 - %ua.raw146 = extractvalue { i64, i64 } %loadN, 1 - %iNp147 = inttoptr i64 %ua.raw146 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp147) +dispatch.case.350: ; preds = %match.arm.49 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.196: ; preds = %match.arm.49 - %ua.raw149 = extractvalue { i64, i64 } %loadN, 1 - %iNp150 = inttoptr i64 %ua.raw149 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp150) +dispatch.case.351: ; preds = %match.arm.49 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.197: ; preds = %match.arm.49 - %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 - %iNp153 = inttoptr i64 %ua.raw152 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp153) +dispatch.case.352: ; preds = %match.arm.49 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 + +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp274) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp280) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp283) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp286) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp289) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.merge.472: ; preds = %dispatch.case.477, %dispatch.case.476, %dispatch.case.475, %dispatch.case.474, %dispatch.default.473 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.473: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.474: ; preds = %match.arm.50 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr314 = inttoptr i64 %ua.raw313 to ptr + %ua.load315 = load { { i32 }, i1 }, ptr %ua.ptr314, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load315) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.475: ; preds = %match.arm.50 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { ptr, i64 }, i1 }, ptr %ua.ptr318, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.476: ; preds = %match.arm.50 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.477: ; preds = %match.arm.50 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { [64 x i8], i1 }, ptr %ua.ptr326, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 } ; Function Attrs: nounwind @@ -1580,7 +2410,7 @@ 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.100, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.309, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1676,7 +2506,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.101, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.310, 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 @@ -1684,7 +2514,7 @@ if.then.12: ; preds = %if.then.9 %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.102, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.311, 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 @@ -1694,13 +2524,13 @@ if.then.12: ; preds = %if.then.9 %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.103, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.104, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.313, 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 @@ -1708,7 +2538,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.105, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.314, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1722,7 +2552,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.106, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, 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 @@ -1730,7 +2560,7 @@ if.then.23: ; preds = %if.else.10 %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.107, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, 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 @@ -1741,7 +2571,7 @@ if.then.23: ; preds = %if.else.10 %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.108, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1798,7 +2628,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, 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 @@ -1806,7 +2636,7 @@ if.then.32: ; preds = %if.then.29 %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.110, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, 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 @@ -1817,7 +2647,7 @@ if.then.32: ; preds = %if.then.29 %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.111, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1837,7 +2667,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1845,7 +2675,7 @@ if.then.35: ; preds = %while.exit.2 %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.113, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, 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 @@ -1856,7 +2686,7 @@ if.then.35: ; preds = %while.exit.2 %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.114, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -1933,6 +2763,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define i32 @main() #0 { entry: @@ -1979,7 +3547,7 @@ entry: define internal void @print__ct_s95dfd2a009f17129__pack_s64(ptr %0, i64 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.115, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.324, 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 @@ -1994,7 +3562,7 @@ entry: %gepN = getelementptr inbounds { 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.116, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.325, 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) @@ -2021,7 +3589,7 @@ entry: ; 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.117, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.326, i64 8 }) ret { ptr, i64 } %call } @@ -2042,7 +3610,7 @@ entry: define internal void @print__ct_s95dfd2a009f17129__pack_f64(ptr %0, double %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.118, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.327, i64 8 }, ptr %alloca, align 8 %allocaN = alloca double, align 8 store double %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2058,7 +3626,7 @@ entry: %gepN = getelementptr inbounds { 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.119, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.328, 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) @@ -2086,7 +3654,7 @@ entry: ; 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.120, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.329, i64 8 }) ret { ptr, i64 } %call } @@ -2097,35 +3665,35 @@ entry: %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.121, i64 15 }, { ptr, i64 } { ptr @str.122, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.330, i64 15 }, { ptr, i64 } { ptr @str.331, 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.105 + br label %while.hdr.121 -while.hdr.105: ; preds = %fv.merge, %entry +while.hdr.121: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.106, label %while.exit.107 + br i1 %icmp, label %while.body.122, label %while.exit.123 -while.body.106: ; preds = %while.hdr.105 +while.body.122: ; preds = %while.hdr.121 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.108, label %if.merge.109 + br i1 %icmpN, label %if.then.124, label %if.merge.125 -while.exit.107: ; preds = %while.hdr.105 +while.exit.123: ; preds = %while.hdr.121 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.123, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.332, i64 1 }) ret { ptr, i64 } %callN -if.then.108: ; preds = %while.body.106 +if.then.124: ; preds = %while.body.122 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.124, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.333, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.109 + br label %if.merge.125 -if.merge.109: ; preds = %if.then.108, %while.body.106 +if.merge.125: ; preds = %if.then.124, %while.body.122 %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 @@ -2133,7 +3701,7 @@ if.merge.109: ; preds = %if.then.108, %while %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.128, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.337, 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 @@ -2153,31 +3721,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.105 + br label %while.hdr.121 -fv.default: ; preds = %if.merge.109 +fv.default: ; preds = %if.merge.125 br label %fv.merge -fv.case: ; preds = %if.merge.109 +fv.case: ; preds = %if.merge.125 %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.109 +fv.case17: ; preds = %if.merge.125 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.109 +fv.case20: ; preds = %if.merge.125 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.109 +fv.case24: ; preds = %if.merge.125 %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 @@ -2190,43 +3758,43 @@ 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.129, i64 10 }, { ptr, i64 } { ptr @str.130, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.338, i64 10 }, { ptr, i64 } { ptr @str.339, 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.110 + br label %while.hdr.126 -while.hdr.110: ; preds = %if.merge.114, %entry +while.hdr.126: ; preds = %if.merge.130, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.111, label %while.exit.112 + br i1 %icmp, label %while.body.127, label %while.exit.128 -while.body.111: ; preds = %while.hdr.110 +while.body.127: ; preds = %while.hdr.126 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.113, label %if.merge.114 + br i1 %icmpN, label %if.then.129, label %if.merge.130 -while.exit.112: ; preds = %while.hdr.110 +while.exit.128: ; preds = %while.hdr.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, i64 1 }) ret { ptr, i64 } %callN -if.then.113: ; preds = %while.body.111 +if.then.129: ; preds = %while.body.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.341, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.114 + br label %if.merge.130 -if.merge.114: ; preds = %if.then.113, %while.body.111 +if.merge.130: ; preds = %if.then.129, %while.body.127 %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.133, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.342, 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.134, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2237,7 +3805,7 @@ if.merge.114: ; preds = %if.then.113, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.110 + br label %while.hdr.126 } ; Function Attrs: nounwind @@ -2245,43 +3813,43 @@ 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.135, i64 3 }, { ptr, i64 } { ptr @str.136, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.344, i64 3 }, { ptr, i64 } { ptr @str.345, 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.115 + br label %while.hdr.131 -while.hdr.115: ; preds = %fv.merge, %entry +while.hdr.131: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.116: ; preds = %while.hdr.115 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.117: ; preds = %while.hdr.115 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.347, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.135 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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.140, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.349, 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.141, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.350, 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 @@ -2298,12 +3866,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.131 -fv.default: ; preds = %if.merge.119 +fv.default: ; preds = %if.merge.135 br label %fv.merge -fv.case: ; preds = %if.merge.119 +fv.case: ; preds = %if.merge.135 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2314,43 +3882,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.142, i64 10 }, { ptr, i64 } { ptr @str.143, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.351, i64 10 }, { ptr, i64 } { ptr @str.352, 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.120 + br label %while.hdr.136 -while.hdr.120: ; preds = %fv.merge, %entry +while.hdr.136: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.121: ; preds = %while.hdr.120 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.122: ; preds = %while.hdr.120 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.145, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.354, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.124 + br label %if.merge.140 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.148, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.357, 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.149, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, 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 @@ -2368,18 +3936,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.136 -fv.default: ; preds = %if.merge.124 +fv.default: ; preds = %if.merge.140 br label %fv.merge -fv.case: ; preds = %if.merge.124 +fv.case: ; preds = %if.merge.140 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.124 +fv.case17: ; preds = %if.merge.140 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2390,43 +3958,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.150, i64 9 }, { ptr, i64 } { ptr @str.151, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.359, i64 9 }, { ptr, i64 } { ptr @str.360, 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.125 + br label %while.hdr.141 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.126: ; preds = %while.hdr.125 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.127: ; preds = %while.hdr.125 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.153, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.362, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.145 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.157, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.366, 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.158, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, 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 @@ -2445,24 +4013,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.129 +fv.case17: ; preds = %if.merge.145 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.129 +fv.case21: ; preds = %if.merge.145 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2475,43 +4043,43 @@ 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.159, i64 5 }, { ptr, i64 } { ptr @str.160, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.368, i64 5 }, { ptr, i64 } { ptr @str.369, 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.130 + br label %while.hdr.146 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.131: ; preds = %while.hdr.130 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.132: ; preds = %while.hdr.130 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.161, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.370, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.162, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.371, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.150 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.166, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.375, 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.167, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.376, 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 @@ -2530,23 +4098,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.150 %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.134 +fv.case20: ; preds = %if.merge.150 %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 @@ -2559,43 +4127,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.168, i64 8 }, { ptr, i64 } { ptr @str.169, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.377, i64 8 }, { ptr, i64 } { ptr @str.378, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.379, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.380, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.175, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.384, 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.176, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.385, 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 @@ -2614,23 +4182,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.155 %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.139 +fv.case20: ; preds = %if.merge.155 %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 @@ -2642,43 +4210,43 @@ 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.177, i64 17 }, { ptr, i64 } { ptr @str.178, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.386, i64 17 }, { ptr, i64 } { ptr @str.387, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.179, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.388, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.180, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.389, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.185, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.394, 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.186, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.395, 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 @@ -2698,29 +4266,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.160 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.160 %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.144 +fv.case20: ; preds = %if.merge.160 %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.144 +fv.case23: ; preds = %if.merge.160 %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 @@ -2732,43 +4300,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.187, i64 7 }, { ptr, i64 } { ptr @str.188, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.396, i64 7 }, { ptr, i64 } { ptr @str.397, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.189, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.398, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.190, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.399, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.193, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.402, 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.194, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.403, 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 %alloca, align 8 @@ -2786,25 +4354,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.165 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.404, i64 4 }, { ptr, i64 } { ptr @str.405, 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.166 + +while.hdr.166: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.167, label %while.exit.168 + +while.body.167: ; preds = %while.hdr.166 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.169, label %if.merge.170 + +while.exit.168: ; preds = %while.hdr.166 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.406, i64 1 }) + ret { ptr, i64 } %callN + +if.then.169: ; preds = %while.body.167 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.407, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.170 + +if.merge.170: ; preds = %if.then.169, %while.body.167 + %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.409, 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.410, 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.166 + +fv.default: ; preds = %if.merge.170 + br label %fv.merge + +fv.case: ; preds = %if.merge.170 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.411, i64 10 }, { ptr, i64 } { ptr @str.412, 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.171 + +while.hdr.171: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.172, label %while.exit.173 + +while.body.172: ; preds = %while.hdr.171 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.174, label %if.merge.175 + +while.exit.173: ; preds = %while.hdr.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.413, i64 1 }) + ret { ptr, i64 } %callN + +if.then.174: ; preds = %while.body.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.414, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.175 + +if.merge.175: ; preds = %if.then.174, %while.body.172 + %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.420, 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.421, 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.171 + +fv.default: ; preds = %if.merge.175 + br label %fv.merge + +fv.case: ; preds = %if.merge.175 + %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.175 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.175 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.175 + %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.175 + %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.422, i64 13 }, { ptr, i64 } { ptr @str.423, 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.176 + +while.hdr.176: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.177, label %while.exit.178 + +while.body.177: ; preds = %while.hdr.176 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.179, label %if.merge.180 + +while.exit.178: ; preds = %while.hdr.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.424, i64 1 }) + ret { ptr, i64 } %callN + +if.then.179: ; preds = %while.body.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.425, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.180 + +if.merge.180: ; preds = %if.then.179, %while.body.177 + %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.428, 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.429, 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.176 + +fv.default: ; preds = %if.merge.180 + br label %fv.merge + +fv.case: ; preds = %if.merge.180 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.180 + %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.430, i64 8 }, { ptr, i64 } { ptr @str.431, 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.181 + +while.hdr.181: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.182, label %while.exit.183 + +while.body.182: ; preds = %while.hdr.181 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.184, label %if.merge.185 + +while.exit.183: ; preds = %while.hdr.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.432, i64 1 }) + ret { ptr, i64 } %callN + +if.then.184: ; preds = %while.body.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.433, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.185 + +if.merge.185: ; preds = %if.then.184, %while.body.182 + %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.439, 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.440, 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.181 + +fv.default: ; preds = %if.merge.185 + br label %fv.merge + +fv.case: ; preds = %if.merge.185 + %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.185 + %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.185 + %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.185 + %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.185 + %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.441, i64 5 }, { ptr, i64 } { ptr @str.442, 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.186 + +while.hdr.186: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.187, label %while.exit.188 + +while.body.187: ; preds = %while.hdr.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 + +while.exit.188: ; preds = %while.hdr.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.443, i64 1 }) + ret { ptr, i64 } %callN + +if.then.189: ; preds = %while.body.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.444, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.190 + +if.merge.190: ; preds = %if.then.189, %while.body.187 + %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.448, 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.449, 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.186 + +fv.default: ; preds = %if.merge.190 + br label %fv.merge + +fv.case: ; preds = %if.merge.190 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.190 + %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.190 + %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.450, i64 6 }, { ptr, i64 } { ptr @str.451, 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.191 + +while.hdr.191: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.192, label %while.exit.193 + +while.body.192: ; preds = %while.hdr.191 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.194, label %if.merge.195 + +while.exit.193: ; preds = %while.hdr.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.452, i64 1 }) + ret { ptr, i64 } %callN + +if.then.194: ; preds = %while.body.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.453, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.195 + +if.merge.195: ; preds = %if.then.194, %while.body.192 + %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.457, 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.458, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.195 + %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.195 + %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.459, i64 6 }, { ptr, i64 } { ptr @str.460, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.461, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.462, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.465, 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.466, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %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.200 + %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 54, 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.467, i64 4 }, { ptr, i64 } { ptr @str.468, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.469, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.470, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.474, 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.475, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.205 + %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.205 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.476, i64 6 }, { ptr, i64 } { ptr @str.477, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.478, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.479, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.483, 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.484, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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.210 + %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.210 + %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 26, i64 undef }, i64 %ba.p2i23, 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.485, i64 12 }, { ptr, i64 } { ptr @str.486, 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.211 + +while.hdr.211: ; preds = %if.merge.215, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.487, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.488, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.489, 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.490, 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.211 +} + +; 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.491, i64 8 }, { ptr, i64 } { ptr @str.492, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.494, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.498, 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.499, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %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.220 + %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.220 + %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.500, i64 7 }, { ptr, i64 } { ptr @str.501, 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.221 + +while.hdr.221: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.502, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.503, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.507, 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.508, 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.221 + +fv.default: ; preds = %if.merge.225 + br label %fv.merge + +fv.case: ; preds = %if.merge.225 + %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.225 + %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.225 + %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 77, 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.509, i64 9 }, { ptr, i64 } { ptr @str.510, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.511, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.512, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.515, 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.516, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.517, i64 4 }, { ptr, i64 } { ptr @str.518, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.519, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.520, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.523, 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.524, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.525, i64 6 }, { ptr, i64 } { ptr @str.526, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.527, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.528, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.536, 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.537, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.240 + %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.240 + %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.240 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.240 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.240 + %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 81, 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.538, i64 6 }, { ptr, i64 } { ptr @str.539, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.540, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.541, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.546, 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.547, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.245 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.245 + %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.245 + %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 } @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.553, 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.548, 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.253, label %if.merge.254 + +if.then.253: ; 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.555, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.554, 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.254 + +if.merge.254: ; preds = %if.then.253, %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.560, 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.556, 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.255, label %if.merge.256 + +if.then.255: ; 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.562, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.561, 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.256 + +if.merge.256: ; preds = %if.then.255, %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.570, 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.563, 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.257: ; 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.572, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.571, 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.258 + +if.merge.258: ; preds = %if.then.257, %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.257, label %if.merge.258 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.581, 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.573, 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.259, label %if.merge.260 + +if.then.259: ; 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.583, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.582, 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.260 + +if.merge.260: ; preds = %if.then.259, %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.590, 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.584, 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.261, label %if.merge.262 + +if.then.261: ; 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.592, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.591, 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.262 + +if.merge.262: ; preds = %if.then.261, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2812,33 +6022,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.195, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.593, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.154 + br label %while.hdr.271 -while.hdr.154: ; preds = %if.merge.158, %entry +while.hdr.271: ; preds = %if.merge.275, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.155, label %while.exit.156 + br i1 %icmp, label %while.body.272, label %while.exit.273 -while.body.155: ; preds = %while.hdr.154 +while.body.272: ; preds = %while.hdr.271 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.157, label %if.merge.158 + br i1 %icmpN, label %if.then.274, label %if.merge.275 -while.exit.156: ; preds = %while.hdr.154 +while.exit.273: ; preds = %while.hdr.271 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.196, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.594, i64 1 }) ret { ptr, i64 } %call -if.then.157: ; preds = %while.body.155 +if.then.274: ; preds = %while.body.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.197, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.595, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.158 + br label %if.merge.275 -if.merge.158: ; preds = %if.then.157, %while.body.155 +if.merge.275: ; preds = %if.then.274, %while.body.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2852,7 +6062,211 @@ if.merge.158: ; preds = %if.then.157, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.154 + br label %while.hdr.271 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.596, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.276 + +while.hdr.276: ; preds = %if.merge.280, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.277, label %while.exit.278 + +while.body.277: ; preds = %while.hdr.276 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.279, label %if.merge.280 + +while.exit.278: ; preds = %while.hdr.276 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.597, i64 1 }) + ret { ptr, i64 } %call + +if.then.279: ; preds = %while.body.277 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.598, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.280 + +if.merge.280: ; preds = %if.then.279, %while.body.277 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.276 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.599, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.281 + +while.hdr.281: ; preds = %if.merge.285, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.282, label %while.exit.283 + +while.body.282: ; preds = %while.hdr.281 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.284, label %if.merge.285 + +while.exit.283: ; preds = %while.hdr.281 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 1 }) + ret { ptr, i64 } %call + +if.then.284: ; preds = %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.601, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.285 + +if.merge.285: ; preds = %if.then.284, %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.281 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.602, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.286 + +while.hdr.286: ; preds = %if.merge.290, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.287, label %while.exit.288 + +while.body.287: ; preds = %while.hdr.286 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.289, label %if.merge.290 + +while.exit.288: ; preds = %while.hdr.286 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 1 }) + ret { ptr, i64 } %call + +if.then.289: ; preds = %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.604, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.290 + +if.merge.290: ; preds = %if.then.289, %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.286 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.605, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.291 + +while.hdr.291: ; preds = %if.merge.295, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.292, label %while.exit.293 + +while.body.292: ; preds = %while.hdr.291 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.294, label %if.merge.295 + +while.exit.293: ; preds = %while.hdr.291 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 1 }) + ret { ptr, i64 } %call + +if.then.294: ; preds = %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.295 + +if.merge.295: ; preds = %if.then.294, %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.291 } ; Function Attrs: nounwind @@ -2863,33 +6277,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.198, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.608, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.296 -while.hdr.159: ; preds = %if.merge.163, %entry +while.hdr.296: ; preds = %if.merge.300, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.160, label %while.exit.161 + br i1 %icmp, label %while.body.297, label %while.exit.298 -while.body.160: ; preds = %while.hdr.159 +while.body.297: ; preds = %while.hdr.296 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.162, label %if.merge.163 + br i1 %icmpN, label %if.then.299, label %if.merge.300 -while.exit.161: ; preds = %while.hdr.159 +while.exit.298: ; preds = %while.hdr.296 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.199, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.609, i64 1 }) ret { ptr, i64 } %call -if.then.162: ; preds = %while.body.160 +if.then.299: ; preds = %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.200, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.163 + br label %if.merge.300 -if.merge.163: ; preds = %if.then.162, %while.body.160 +if.merge.300: ; preds = %if.then.299, %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2905,7 +6319,7 @@ if.merge.163: ; preds = %if.then.162, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.296 } ; Function Attrs: nounwind @@ -2915,35 +6329,35 @@ entry: %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.201, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.611, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.168 + br label %while.hdr.308 -while.hdr.168: ; preds = %if.merge.172, %entry +while.hdr.308: ; preds = %if.merge.312, %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.169, label %while.exit.170 + br i1 %icmp, label %while.body.309, label %while.exit.310 -while.body.169: ; preds = %while.hdr.168 +while.body.309: ; preds = %while.hdr.308 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.171, label %if.merge.172 + br i1 %icmpN, label %if.then.311, label %if.merge.312 -while.exit.170: ; preds = %while.hdr.168 +while.exit.310: ; preds = %while.hdr.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.202, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 1 }) ret { ptr, i64 } %call -if.then.171: ; preds = %while.body.169 +if.then.311: ; preds = %while.body.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.613, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.172 + br label %if.merge.312 -if.merge.172: ; preds = %if.then.171, %while.body.169 +if.merge.312: ; preds = %if.then.311, %while.body.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2959,7 +6373,167 @@ if.merge.172: ; preds = %if.then.171, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.168 + br label %while.hdr.308 +} + +; 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.614, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.313 + +while.hdr.313: ; preds = %if.merge.317, %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.314, label %while.exit.315 + +while.body.314: ; preds = %while.hdr.313 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.316, label %if.merge.317 + +while.exit.315: ; preds = %while.hdr.313 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 1 }) + ret { ptr, i64 } %call + +if.then.316: ; preds = %while.body.314 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.317 + +if.merge.317: ; preds = %if.then.316, %while.body.314 + %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.313 +} + +; 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.617, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.318 + +while.hdr.318: ; preds = %if.merge.322, %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.319, label %while.exit.320 + +while.body.319: ; preds = %while.hdr.318 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.321, label %if.merge.322 + +while.exit.320: ; preds = %while.hdr.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 1 }) + ret { ptr, i64 } %call + +if.then.321: ; preds = %while.body.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.619, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.322 + +if.merge.322: ; preds = %if.then.321, %while.body.319 + %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 76, 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.318 +} + +; 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.620, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.323 + +while.hdr.323: ; preds = %if.merge.327, %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.324, label %while.exit.325 + +while.body.324: ; preds = %while.hdr.323 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.326, label %if.merge.327 + +while.exit.325: ; preds = %while.hdr.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 1 }) + ret { ptr, i64 } %call + +if.then.326: ; preds = %while.body.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.622, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.327 + +if.merge.327: ; preds = %if.then.326, %while.body.324 + %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 78, 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.323 } ; Function Attrs: nounwind @@ -2969,35 +6543,35 @@ entry: %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.204, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.623, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.173 + br label %while.hdr.328 -while.hdr.173: ; preds = %if.merge.177, %entry +while.hdr.328: ; preds = %if.merge.332, %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.174, label %while.exit.175 + br i1 %icmp, label %while.body.329, label %while.exit.330 -while.body.174: ; preds = %while.hdr.173 +while.body.329: ; preds = %while.hdr.328 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.176, label %if.merge.177 + br i1 %icmpN, label %if.then.331, label %if.merge.332 -while.exit.175: ; preds = %while.hdr.173 +while.exit.330: ; preds = %while.hdr.328 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 1 }) ret { ptr, i64 } %call -if.then.176: ; preds = %while.body.174 +if.then.331: ; preds = %while.body.329 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.206, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.625, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.177 + br label %if.merge.332 -if.merge.177: ; preds = %if.then.176, %while.body.174 +if.merge.332: ; preds = %if.then.331, %while.body.329 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3013,7 +6587,7 @@ if.merge.177: ; preds = %if.then.176, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.173 + br label %while.hdr.328 } ; Function Attrs: nounwind @@ -3027,20 +6601,20 @@ entry: 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.198, label %if.else.199 + br i1 %icmp, label %if.then.366, label %if.else.367 -if.then.198: ; preds = %entry - br label %if.merge.200 +if.then.366: ; preds = %entry + br label %if.merge.368 -if.else.199: ; preds = %entry +if.else.367: ; 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.209, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.208, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.200 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.628, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.627, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.368 -if.merge.200: ; preds = %if.else.199, %if.then.198 - %bp = phi { ptr, i64 } [ { ptr @str.207, i64 4 }, %if.then.198 ], [ %callN, %if.else.199 ] +if.merge.368: ; preds = %if.else.367, %if.then.366 + %bp = phi { ptr, i64 } [ { ptr @str.626, i64 4 }, %if.then.366 ], [ %callN, %if.else.367 ] ret { ptr, i64 } %bp } @@ -3055,20 +6629,20 @@ entry: 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.214, label %if.else.215 + br i1 %icmp, label %if.then.382, label %if.else.383 -if.then.214: ; preds = %entry - br label %if.merge.216 +if.then.382: ; preds = %entry + br label %if.merge.384 -if.else.215: ; preds = %entry +if.else.383: ; 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.212, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.211, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.216 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.631, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.630, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.384 -if.merge.216: ; preds = %if.else.215, %if.then.214 - %bp = phi { ptr, i64 } [ { ptr @str.210, i64 4 }, %if.then.214 ], [ %callN, %if.else.215 ] +if.merge.384: ; preds = %if.else.383, %if.then.382 + %bp = phi { ptr, i64 } [ { ptr @str.629, i64 4 }, %if.then.382 ], [ %callN, %if.else.383 ] ret { ptr, i64 } %bp } @@ -3083,20 +6657,20 @@ entry: 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.217, label %if.else.218 + br i1 %icmp, label %if.then.385, label %if.else.386 -if.then.217: ; preds = %entry - br label %if.merge.219 +if.then.385: ; preds = %entry + br label %if.merge.387 -if.else.218: ; preds = %entry +if.else.386: ; 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.215, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.214, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.219 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.634, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.633, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.387 -if.merge.219: ; preds = %if.else.218, %if.then.217 - %bp = phi { ptr, i64 } [ { ptr @str.213, i64 4 }, %if.then.217 ], [ %callN, %if.else.218 ] +if.merge.387: ; preds = %if.else.386, %if.then.385 + %bp = phi { ptr, i64 } [ { ptr @str.632, i64 4 }, %if.then.385 ], [ %callN, %if.else.386 ] ret { ptr, i64 } %bp } @@ -3111,20 +6685,20 @@ entry: 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.220, label %if.else.221 + br i1 %icmp, label %if.then.388, label %if.else.389 -if.then.220: ; preds = %entry - br label %if.merge.222 +if.then.388: ; preds = %entry + br label %if.merge.390 -if.else.221: ; preds = %entry +if.else.389: ; 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.218, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.217, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.222 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.637, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.390 -if.merge.222: ; preds = %if.else.221, %if.then.220 - %bp = phi { ptr, i64 } [ { ptr @str.216, i64 4 }, %if.then.220 ], [ %callN, %if.else.221 ] +if.merge.390: ; preds = %if.else.389, %if.then.388 + %bp = phi { ptr, i64 } [ { ptr @str.635, i64 4 }, %if.then.388 ], [ %callN, %if.else.389 ] ret { ptr, i64 } %bp } @@ -3139,20 +6713,20 @@ entry: 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.223, label %if.else.224 + br i1 %icmp, label %if.then.391, label %if.else.392 -if.then.223: ; preds = %entry - br label %if.merge.225 +if.then.391: ; preds = %entry + br label %if.merge.393 -if.else.224: ; preds = %entry +if.else.392: ; 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.221, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.220, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.225 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.640, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.639, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.393 -if.merge.225: ; preds = %if.else.224, %if.then.223 - %bp = phi { ptr, i64 } [ { ptr @str.219, i64 4 }, %if.then.223 ], [ %callN, %if.else.224 ] +if.merge.393: ; preds = %if.else.392, %if.then.391 + %bp = phi { ptr, i64 } [ { ptr @str.638, i64 4 }, %if.then.391 ], [ %callN, %if.else.392 ] ret { ptr, i64 } %bp } @@ -3166,20 +6740,20 @@ entry: 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.226, label %if.else.227 + br i1 %icmp, label %if.then.394, label %if.else.395 -if.then.226: ; preds = %entry - br label %if.merge.228 +if.then.394: ; preds = %entry + br label %if.merge.396 -if.else.227: ; preds = %entry +if.else.395: ; 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.224, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.223, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.228 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.396 -if.merge.228: ; preds = %if.else.227, %if.then.226 - %bp = phi { ptr, i64 } [ { ptr @str.222, i64 4 }, %if.then.226 ], [ %callN, %if.else.227 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi { ptr, i64 } [ { ptr @str.641, i64 4 }, %if.then.394 ], [ %callN, %if.else.395 ] ret { ptr, i64 } %bp } @@ -3194,20 +6768,20 @@ entry: 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.229, label %if.else.230 + br i1 %icmp, label %if.then.397, label %if.else.398 -if.then.229: ; preds = %entry - br label %if.merge.231 +if.then.397: ; preds = %entry + br label %if.merge.399 -if.else.230: ; preds = %entry +if.else.398: ; 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.227, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.226, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.231 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.646, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.399 -if.merge.231: ; preds = %if.else.230, %if.then.229 - %bp = phi { ptr, i64 } [ { ptr @str.225, i64 4 }, %if.then.229 ], [ %callN, %if.else.230 ] +if.merge.399: ; preds = %if.else.398, %if.then.397 + %bp = phi { ptr, i64 } [ { ptr @str.644, i64 4 }, %if.then.397 ], [ %callN, %if.else.398 ] ret { ptr, i64 } %bp } @@ -3222,25 +6796,25 @@ entry: 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.232, label %if.else.233 + br i1 %icmp, label %if.then.400, label %if.else.401 -if.then.232: ; preds = %entry - br label %if.merge.234 +if.then.400: ; preds = %entry + br label %if.merge.402 -if.else.233: ; preds = %entry +if.else.401: ; 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.230, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.229, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.234 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.402 -if.merge.234: ; preds = %if.else.233, %if.then.232 - %bp = phi { ptr, i64 } [ { ptr @str.228, i64 4 }, %if.then.232 ], [ %callN, %if.else.233 ] +if.merge.402: ; preds = %if.else.401, %if.then.400 + %bp = phi { ptr, i64 } [ { ptr @str.647, i64 4 }, %if.then.400 ], [ %callN, %if.else.401 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3250,188 +6824,20 @@ entry: 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.235, label %if.else.236 + br i1 %icmp, label %if.then.403, label %if.else.404 -if.then.235: ; preds = %entry - br label %if.merge.237 +if.then.403: ; preds = %entry + br label %if.merge.405 -if.else.236: ; preds = %entry +if.else.404: ; 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.233, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.232, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.237 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.652, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.405 -if.merge.237: ; preds = %if.else.236, %if.then.235 - %bp = phi { ptr, i64 } [ { ptr @str.231, i64 4 }, %if.then.235 ], [ %callN, %if.else.236 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.238, label %if.else.239 - -if.then.238: ; preds = %entry - br label %if.merge.240 - -if.else.239: ; 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.236, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.235, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.240 - -if.merge.240: ; preds = %if.else.239, %if.then.238 - %bp = phi { ptr, i64 } [ { ptr @str.234, i64 4 }, %if.then.238 ], [ %callN, %if.else.239 ] - 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.241, label %if.else.242 - -if.then.241: ; preds = %entry - br label %if.merge.243 - -if.else.242: ; 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.239, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.238, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.243 - -if.merge.243: ; preds = %if.else.242, %if.then.241 - %bp = phi { ptr, i64 } [ { ptr @str.237, i64 4 }, %if.then.241 ], [ %callN, %if.else.242 ] - 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.244, label %if.else.245 - -if.then.244: ; preds = %entry - br label %if.merge.246 - -if.else.245: ; 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.242, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.241, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.246 - -if.merge.246: ; preds = %if.else.245, %if.then.244 - %bp = phi { ptr, i64 } [ { ptr @str.240, i64 4 }, %if.then.244 ], [ %callN, %if.else.245 ] - 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.247, label %if.else.248 - -if.then.247: ; preds = %entry - br label %if.merge.249 - -if.else.248: ; 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.245, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.244, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.249 - -if.merge.249: ; preds = %if.else.248, %if.then.247 - %bp = phi { ptr, i64 } [ { ptr @str.243, i64 4 }, %if.then.247 ], [ %callN, %if.else.248 ] - 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.250, label %if.else.251 - -if.then.250: ; preds = %entry - br label %if.merge.252 - -if.else.251: ; 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.248, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.247, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.252 - -if.merge.252: ; preds = %if.else.251, %if.then.250 - %bp = phi { ptr, i64 } [ { ptr @str.246, i64 4 }, %if.then.250 ], [ %callN, %if.else.251 ] - 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.253, label %if.else.254 - -if.then.253: ; preds = %entry - br label %if.merge.255 - -if.else.254: ; 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.251, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.250, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.255 - -if.merge.255: ; preds = %if.else.254, %if.then.253 - %bp = phi { ptr, i64 } [ { ptr @str.249, i64 4 }, %if.then.253 ], [ %callN, %if.else.254 ] +if.merge.405: ; preds = %if.else.404, %if.then.403 + %bp = phi { ptr, i64 } [ { ptr @str.650, i64 4 }, %if.then.403 ], [ %callN, %if.else.404 ] ret { ptr, i64 } %bp } @@ -3446,20 +6852,550 @@ entry: 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.256, label %if.else.257 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.256: ; preds = %entry - br label %if.merge.258 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.257: ; preds = %entry +if.else.407: ; 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.254, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.253, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.258 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.655, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.258: ; preds = %if.else.257, %if.then.256 - %bp = phi { ptr, i64 } [ { ptr @str.252, i64 4 }, %if.then.256 ], [ %callN, %if.else.257 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.653, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.409, label %if.else.410 + +if.then.409: ; preds = %entry + br label %if.merge.411 + +if.else.410: ; 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.658, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.411 + +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.656, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] + 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.412, label %if.else.413 + +if.then.412: ; preds = %entry + br label %if.merge.414 + +if.else.413: ; 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.661, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.660, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.414 + +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.659, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] + 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.415, label %if.else.416 + +if.then.415: ; preds = %entry + br label %if.merge.417 + +if.else.416: ; 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.664, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.663, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.417 + +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.662, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] + 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.418, label %if.else.419 + +if.then.418: ; preds = %entry + br label %if.merge.420 + +if.else.419: ; 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.667, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.666, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.420 + +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.665, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] + 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.421, label %if.else.422 + +if.then.421: ; preds = %entry + br label %if.merge.423 + +if.else.422: ; 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.670, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.669, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.423 + +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.668, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] + 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.424, label %if.else.425 + +if.then.424: ; preds = %entry + br label %if.merge.426 + +if.else.425: ; 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.673, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.672, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.426 + +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.671, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] + 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.427, label %if.else.428 + +if.then.427: ; preds = %entry + br label %if.merge.429 + +if.else.428: ; 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.676, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.675, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.429 + +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.674, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] + 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.430, label %if.else.431 + +if.then.430: ; preds = %entry + br label %if.merge.432 + +if.else.431: ; 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.679, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.678, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.432 + +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.677, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] + 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.433, label %if.else.434 + +if.then.433: ; preds = %entry + br label %if.merge.435 + +if.else.434: ; 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.682, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.681, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.435 + +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.680, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.436, label %if.else.437 + +if.then.436: ; preds = %entry + br label %if.merge.438 + +if.else.437: ; 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.685, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.684, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.438 + +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.683, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + 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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.688, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.687, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.686, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + 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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.691, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.690, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.689, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.694, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.693, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.692, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + 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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.697, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.696, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.695, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.700, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.699, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.698, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.703, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.702, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.701, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.706, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.705, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.704, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + 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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.709, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.708, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.707, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.712, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.711, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.710, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] ret { ptr, i64 } %bp } @@ -3474,20 +7410,20 @@ entry: 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.259, label %if.else.260 + br i1 %icmp, label %if.then.466, label %if.else.467 -if.then.259: ; preds = %entry - br label %if.merge.261 +if.then.466: ; preds = %entry + br label %if.merge.468 -if.else.260: ; preds = %entry +if.else.467: ; 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.257, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.256, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.261 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.715, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.714, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.468 -if.merge.261: ; preds = %if.else.260, %if.then.259 - %bp = phi { ptr, i64 } [ { ptr @str.255, i64 4 }, %if.then.259 ], [ %callN, %if.else.260 ] +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.713, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] ret { ptr, i64 } %bp } @@ -3502,19 +7438,115 @@ entry: 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.262, label %if.else.263 + br i1 %icmp, label %if.then.469, label %if.else.470 -if.then.262: ; preds = %entry - br label %if.merge.264 +if.then.469: ; preds = %entry + br label %if.merge.471 -if.else.263: ; preds = %entry +if.else.470: ; 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.260, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.259, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.264 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.717, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.471 -if.merge.264: ; preds = %if.else.263, %if.then.262 - %bp = phi { ptr, i64 } [ { ptr @str.258, i64 4 }, %if.then.262 ], [ %callN, %if.else.263 ] +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.716, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] 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.478, label %if.merge.479 + +if.then.478: ; preds = %entry + ret { ptr, i64 } { ptr @str.719, i64 4 } + +if.merge.479: ; 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 39, 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.480, label %if.merge.481 + +if.then.480: ; preds = %entry + ret { ptr, i64 } { ptr @str.720, i64 4 } + +if.merge.481: ; 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_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.482, label %if.merge.483 + +if.then.482: ; preds = %entry + ret { ptr, i64 } { ptr @str.721, i64 4 } + +if.merge.483: ; 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 45, 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.484, label %if.merge.485 + +if.then.484: ; preds = %entry + ret { ptr, i64 } { ptr @str.722, i64 4 } + +if.merge.485: ; 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 88, 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/0201-generics-generic-struct.ir b/examples/expected/0201-generics-generic-struct.ir index a904c86..12bccc1 100644 --- a/examples/expected/0201-generics-generic-struct.ir +++ b/examples/expected/0201-generics-generic-struct.ir @@ -1,388 +1,747 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [97 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [187 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [8 x i8] c"[16]f32\00" -@tn.str.64 = private constant [5 x i8] c"Mat4\00" -@tn.str.65 = private constant [5 x i8] c"Vec2\00" -@tn.str.66 = private constant [14 x i8] c"Vector(3,f32)\00" -@tn.str.67 = private constant [12 x i8] c"Vec__3__f32\00" -@tn.str.68 = private constant [5 x i8] c"Vec3\00" -@tn.str.69 = private constant [13 x i8] c"Complex__u32\00" -@tn.str.70 = private constant [4 x i8] c"Foo\00" -@tn.str.71 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.72 = private constant [5 x i8] c"*s64\00" -@tn.str.73 = private constant [7 x i8] c"**void\00" -@tn.str.74 = private constant [6 x i8] c"*Vec3\00" -@tn.str.75 = private constant [8 x i8] c"*string\00" -@tn.str.76 = private constant [6 x i8] c"[]Any\00" -@tn.str.77 = private constant [5 x i8] c"*Any\00" -@tn.str.78 = private constant [7 x i8] c"[1]Any\00" -@tn.str.79 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.80 = private constant [7 x i8] c"*[]Any\00" -@tn.str.81 = private constant [4 x i8] c"*u8\00" -@tn.str.82 = private constant [6 x i8] c"*bool\00" -@tn.str.83 = private constant [5 x i8] c"*f32\00" -@tn.str.84 = private constant [15 x i8] c"*Vector(3,f32)\00" -@tn.str.85 = private constant [7 x i8] c"[5]f32\00" -@tn.str.86 = private constant [8 x i8] c"*[5]f32\00" -@tn.str.87 = private constant [5 x i8] c"*Foo\00" -@tn.str.88 = private constant [5 x i8] c"*f64\00" -@tn.str.89 = private constant [8 x i8] c"Sx__f32\00" -@tn.str.90 = private constant [9 x i8] c"*Sx__f32\00" -@tn.str.91 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.92 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.93 = private constant [11 x i8] c"*Allocator\00" -@tn.str.94 = private constant [9 x i8] c"*Context\00" -@tn.str.95 = private constant [6 x i8] c"*Mat4\00" -@tn.str.96 = private constant [6 x i8] c"*Vec2\00" -@tn.str.97 = private constant [13 x i8] c"*Vec__3__f32\00" -@tn.str.98 = private constant [14 x i8] c"*Complex__u32\00" -@tn.str.99 = private constant [9 x i8] c"*[16]f32\00" -@tn.str.100 = private constant [10 x i8] c"*[]string\00" -@tn.str.101 = private constant [6 x i8] c"**GPA\00" -@tn.str.102 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.103 = private constant [8 x i8] c"**Arena\00" -@tn.str.104 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.105 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.106 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.107 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.108 = private constant [6 x i8] c"**s64\00" -@tn.str.109 = private constant [8 x i8] c"***void\00" -@tn.str.110 = private constant [7 x i8] c"**Vec3\00" -@tn.str.111 = private constant [9 x i8] c"**string\00" -@tn.str.112 = private constant [6 x i8] c"**Any\00" -@tn.str.113 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.114 = private constant [8 x i8] c"**[]Any\00" -@tn.str.115 = private constant [5 x i8] c"**u8\00" -@tn.str.116 = private constant [7 x i8] c"**bool\00" -@tn.str.117 = private constant [6 x i8] c"**f32\00" -@tn.str.118 = private constant [16 x i8] c"**Vector(3,f32)\00" -@tn.str.119 = private constant [9 x i8] c"**[5]f32\00" -@tn.str.120 = private constant [6 x i8] c"**Foo\00" -@tn.str.121 = private constant [6 x i8] c"**f64\00" -@tn.str.122 = private constant [10 x i8] c"**Sx__f32\00" -@__sx_type_names = private constant [97 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 7 }, { ptr, i64 } { ptr @tn.str.64, i64 4 }, { ptr, i64 } { ptr @tn.str.65, i64 4 }, { ptr, i64 } { ptr @tn.str.66, i64 13 }, { ptr, i64 } { ptr @tn.str.67, i64 11 }, { ptr, i64 } { ptr @tn.str.68, i64 4 }, { ptr, i64 } { ptr @tn.str.69, i64 12 }, { ptr, i64 } { ptr @tn.str.70, i64 3 }, { ptr, i64 } { ptr @tn.str.71, i64 12 }, { ptr, i64 } { ptr @tn.str.72, i64 4 }, { ptr, i64 } { ptr @tn.str.73, i64 6 }, { ptr, i64 } { ptr @tn.str.74, i64 5 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 5 }, { ptr, i64 } { ptr @tn.str.77, i64 4 }, { ptr, i64 } { ptr @tn.str.78, i64 6 }, { ptr, i64 } { ptr @tn.str.79, i64 7 }, { ptr, i64 } { ptr @tn.str.80, i64 6 }, { ptr, i64 } { ptr @tn.str.81, i64 3 }, { ptr, i64 } { ptr @tn.str.82, i64 5 }, { ptr, i64 } { ptr @tn.str.83, i64 4 }, { ptr, i64 } { ptr @tn.str.84, i64 14 }, { ptr, i64 } { ptr @tn.str.85, i64 6 }, { ptr, i64 } { ptr @tn.str.86, i64 7 }, { ptr, i64 } { ptr @tn.str.87, i64 4 }, { ptr, i64 } { ptr @tn.str.88, i64 4 }, { ptr, i64 } { ptr @tn.str.89, i64 7 }, { ptr, i64 } { ptr @tn.str.90, i64 8 }, { ptr, i64 } { ptr @tn.str.91, i64 7 }, { ptr, i64 } { ptr @tn.str.92, i64 16 }, { ptr, i64 } { ptr @tn.str.93, i64 10 }, { ptr, i64 } { ptr @tn.str.94, i64 8 }, { ptr, i64 } { ptr @tn.str.95, i64 5 }, { ptr, i64 } { ptr @tn.str.96, i64 5 }, { ptr, i64 } { ptr @tn.str.97, i64 12 }, { ptr, i64 } { ptr @tn.str.98, i64 13 }, { ptr, i64 } { ptr @tn.str.99, i64 8 }, { ptr, i64 } { ptr @tn.str.100, i64 9 }, { ptr, i64 } { ptr @tn.str.101, i64 5 }, { ptr, i64 } { ptr @tn.str.102, i64 12 }, { ptr, i64 } { ptr @tn.str.103, i64 7 }, { ptr, i64 } { ptr @tn.str.104, i64 6 }, { ptr, i64 } { ptr @tn.str.105, i64 10 }, { ptr, i64 } { ptr @tn.str.106, i64 19 }, { ptr, i64 } { ptr @tn.str.107, i64 13 }, { ptr, i64 } { ptr @tn.str.108, i64 5 }, { ptr, i64 } { ptr @tn.str.109, i64 7 }, { ptr, i64 } { ptr @tn.str.110, i64 6 }, { ptr, i64 } { ptr @tn.str.111, i64 8 }, { ptr, i64 } { ptr @tn.str.112, i64 5 }, { ptr, i64 } { ptr @tn.str.113, i64 8 }, { ptr, i64 } { ptr @tn.str.114, i64 7 }, { ptr, i64 } { ptr @tn.str.115, i64 4 }, { ptr, i64 } { ptr @tn.str.116, i64 6 }, { ptr, i64 } { ptr @tn.str.117, i64 5 }, { ptr, i64 } { ptr @tn.str.118, i64 15 }, { ptr, i64 } { ptr @tn.str.119, i64 8 }, { ptr, i64 } { ptr @tn.str.120, i64 5 }, { ptr, i64 } { ptr @tn.str.121, i64 5 }, { ptr, i64 } { ptr @tn.str.122, i64 9 }] -@str.123 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.124 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.125 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.126 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.127 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.128 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.129 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.133 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.134 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.135 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.136 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.137 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.138 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.140 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.141 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.142 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.143 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.144 = private unnamed_addr constant [8 x i8] c"v1: {}\0A\00", align 1 -@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.146 = private unnamed_addr constant [8 x i8] c"v1: {}\0A\00", align 1 -@str.147 = private unnamed_addr constant [8 x i8] c"v2: {}\0A\00", align 1 -@str.148 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.149 = private unnamed_addr constant [8 x i8] c"v2: {}\0A\00", align 1 -@str.150 = private unnamed_addr constant [10 x i8] c"buff: {}\0A\00", align 1 -@str.151 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.152 = private unnamed_addr constant [10 x i8] c"buff: {}\0A\00", align 1 -@str.153 = private unnamed_addr constant [10 x i8] c"comp: {}\0A\00", align 1 -@str.154 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.155 = private unnamed_addr constant [10 x i8] c"comp: {}\0A\00", align 1 -@str.156 = private unnamed_addr constant [9 x i8] c"add: {}\0A\00", align 1 -@str.157 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.158 = private unnamed_addr constant [9 x i8] c"add: {}\0A\00", align 1 -@str.159 = private unnamed_addr constant [10 x i8] c"v2.x: {}\0A\00", align 1 -@str.160 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.161 = private unnamed_addr constant [10 x i8] c"v2.x: {}\0A\00", align 1 -@str.162 = private unnamed_addr constant [11 x i8] c"v2[1]: {}\0A\00", align 1 -@str.163 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.164 = private unnamed_addr constant [11 x i8] c"v2[1]: {}\0A\00", align 1 -@str.165 = private unnamed_addr constant [12 x i8] c"scaled: {}\0A\00", align 1 -@str.166 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.167 = private unnamed_addr constant [12 x i8] c"scaled: {}\0A\00", align 1 -@str.168 = private unnamed_addr constant [9 x i8] c"neg: {}\0A\00", align 1 -@str.169 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.170 = private unnamed_addr constant [9 x i8] c"neg: {}\0A\00", align 1 -@str.171 = private unnamed_addr constant [13 x i8] c"sqrt(9): {}\0A\00", align 1 -@str.172 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.173 = private unnamed_addr constant [13 x i8] c"sqrt(9): {}\0A\00", align 1 -@str.174 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.175 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.176 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.177 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.178 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.179 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.180 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.181 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.182 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.183 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [8 x i8] c"[16]f32\00" +@tn.str.237 = private constant [5 x i8] c"Mat4\00" +@tn.str.238 = private constant [5 x i8] c"Vec2\00" +@tn.str.239 = private constant [14 x i8] c"Vector(3,f32)\00" +@tn.str.240 = private constant [12 x i8] c"Vec__3__f32\00" +@tn.str.241 = private constant [5 x i8] c"Vec3\00" +@tn.str.242 = private constant [13 x i8] c"Complex__u32\00" +@tn.str.243 = private constant [4 x i8] c"Foo\00" +@tn.str.244 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.245 = private constant [7 x i8] c"**void\00" +@tn.str.246 = private constant [6 x i8] c"*Vec3\00" +@tn.str.247 = private constant [8 x i8] c"*string\00" +@tn.str.248 = private constant [6 x i8] c"[]Any\00" +@tn.str.249 = private constant [5 x i8] c"*Any\00" +@tn.str.250 = private constant [7 x i8] c"[1]Any\00" +@tn.str.251 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.252 = private constant [7 x i8] c"*[]Any\00" +@tn.str.253 = private constant [6 x i8] c"*bool\00" +@tn.str.254 = private constant [5 x i8] c"*f32\00" +@tn.str.255 = private constant [15 x i8] c"*Vector(3,f32)\00" +@tn.str.256 = private constant [7 x i8] c"[5]f32\00" +@tn.str.257 = private constant [8 x i8] c"*[5]f32\00" +@tn.str.258 = private constant [5 x i8] c"*Foo\00" +@tn.str.259 = private constant [5 x i8] c"*f64\00" +@tn.str.260 = private constant [8 x i8] c"Sx__f32\00" +@tn.str.261 = private constant [9 x i8] c"*Sx__f32\00" +@tn.str.262 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.263 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.264 = private constant [11 x i8] c"*Allocator\00" +@tn.str.265 = private constant [9 x i8] c"*Context\00" +@tn.str.266 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.267 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.268 = private constant [8 x i8] c"*Member\00" +@tn.str.269 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.270 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.271 = private constant [9 x i8] c"*Command\00" +@tn.str.272 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.273 = private constant [6 x i8] c"*Mat4\00" +@tn.str.274 = private constant [6 x i8] c"*Vec2\00" +@tn.str.275 = private constant [13 x i8] c"*Vec__3__f32\00" +@tn.str.276 = private constant [14 x i8] c"*Complex__u32\00" +@tn.str.277 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.278 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.279 = private constant [7 x i8] c"*Value\00" +@tn.str.280 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.281 = private constant [14 x i8] c"*Architecture\00" +@tn.str.282 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.283 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.284 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.285 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.286 = private constant [9 x i8] c"*[16]f32\00" +@tn.str.287 = private constant [10 x i8] c"*[]string\00" +@tn.str.288 = private constant [6 x i8] c"*[]u8\00" +@tn.str.289 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.290 = private constant [11 x i8] c"*[]Command\00" +@tn.str.291 = private constant [6 x i8] c"**GPA\00" +@tn.str.292 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.293 = private constant [8 x i8] c"**Arena\00" +@tn.str.294 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.295 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.296 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.297 = private constant [7 x i8] c"**File\00" +@tn.str.298 = private constant [5 x i8] c"**u8\00" +@tn.str.299 = private constant [6 x i8] c"**s32\00" +@tn.str.300 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.301 = private constant [6 x i8] c"**u32\00" +@tn.str.302 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.303 = private constant [8 x i8] c"**Array\00" +@tn.str.304 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.305 = private constant [9 x i8] c"**Object\00" +@tn.str.306 = private constant [7 x i8] c"**Sink\00" +@tn.str.307 = private constant [9 x i8] c"**Parser\00" +@tn.str.308 = private constant [6 x i8] c"**s64\00" +@tn.str.309 = private constant [9 x i8] c"**Parsed\00" +@tn.str.310 = private constant [7 x i8] c"**Diag\00" +@tn.str.311 = private constant [9 x i8] c"**Sha256\00" +@tn.str.312 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.313 = private constant [8 x i8] c"***void\00" +@tn.str.314 = private constant [7 x i8] c"**Vec3\00" +@tn.str.315 = private constant [9 x i8] c"**string\00" +@tn.str.316 = private constant [6 x i8] c"**Any\00" +@tn.str.317 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.318 = private constant [8 x i8] c"**[]Any\00" +@tn.str.319 = private constant [7 x i8] c"**bool\00" +@tn.str.320 = private constant [6 x i8] c"**f32\00" +@tn.str.321 = private constant [16 x i8] c"**Vector(3,f32)\00" +@tn.str.322 = private constant [9 x i8] c"**[5]f32\00" +@tn.str.323 = private constant [6 x i8] c"**Foo\00" +@tn.str.324 = private constant [6 x i8] c"**f64\00" +@tn.str.325 = private constant [10 x i8] c"**Sx__f32\00" +@tn.str.326 = private constant [7 x i8] c"*?File\00" +@tn.str.327 = private constant [9 x i8] c"*?string\00" +@tn.str.328 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.329 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [187 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 7 }, { ptr, i64 } { ptr @tn.str.237, i64 4 }, { ptr, i64 } { ptr @tn.str.238, i64 4 }, { ptr, i64 } { ptr @tn.str.239, i64 13 }, { ptr, i64 } { ptr @tn.str.240, i64 11 }, { ptr, i64 } { ptr @tn.str.241, i64 4 }, { ptr, i64 } { ptr @tn.str.242, i64 12 }, { ptr, i64 } { ptr @tn.str.243, i64 3 }, { ptr, i64 } { ptr @tn.str.244, i64 12 }, { ptr, i64 } { ptr @tn.str.245, i64 6 }, { ptr, i64 } { ptr @tn.str.246, i64 5 }, { ptr, i64 } { ptr @tn.str.247, i64 7 }, { ptr, i64 } { ptr @tn.str.248, i64 5 }, { ptr, i64 } { ptr @tn.str.249, i64 4 }, { ptr, i64 } { ptr @tn.str.250, i64 6 }, { ptr, i64 } { ptr @tn.str.251, i64 7 }, { ptr, i64 } { ptr @tn.str.252, i64 6 }, { ptr, i64 } { ptr @tn.str.253, i64 5 }, { ptr, i64 } { ptr @tn.str.254, i64 4 }, { ptr, i64 } { ptr @tn.str.255, i64 14 }, { ptr, i64 } { ptr @tn.str.256, i64 6 }, { ptr, i64 } { ptr @tn.str.257, i64 7 }, { ptr, i64 } { ptr @tn.str.258, i64 4 }, { ptr, i64 } { ptr @tn.str.259, i64 4 }, { ptr, i64 } { ptr @tn.str.260, i64 7 }, { ptr, i64 } { ptr @tn.str.261, i64 8 }, { ptr, i64 } { ptr @tn.str.262, i64 7 }, { ptr, i64 } { ptr @tn.str.263, i64 16 }, { ptr, i64 } { ptr @tn.str.264, i64 10 }, { ptr, i64 } { ptr @tn.str.265, i64 8 }, { ptr, i64 } { ptr @tn.str.266, i64 11 }, { ptr, i64 } { ptr @tn.str.267, i64 14 }, { ptr, i64 } { ptr @tn.str.268, i64 7 }, { ptr, i64 } { ptr @tn.str.269, i64 13 }, { ptr, i64 } { ptr @tn.str.270, i64 9 }, { ptr, i64 } { ptr @tn.str.271, i64 8 }, { ptr, i64 } { ptr @tn.str.272, i64 10 }, { ptr, i64 } { ptr @tn.str.273, i64 5 }, { ptr, i64 } { ptr @tn.str.274, i64 5 }, { ptr, i64 } { ptr @tn.str.275, i64 12 }, { ptr, i64 } { ptr @tn.str.276, i64 13 }, { ptr, i64 } { ptr @tn.str.277, i64 9 }, { ptr, i64 } { ptr @tn.str.278, i64 9 }, { ptr, i64 } { ptr @tn.str.279, i64 6 }, { ptr, i64 } { ptr @tn.str.280, i64 16 }, { ptr, i64 } { ptr @tn.str.281, i64 13 }, { ptr, i64 } { ptr @tn.str.282, i64 14 }, { ptr, i64 } { ptr @tn.str.283, i64 7 }, { ptr, i64 } { ptr @tn.str.284, i64 7 }, { ptr, i64 } { ptr @tn.str.285, i64 8 }, { ptr, i64 } { ptr @tn.str.286, i64 8 }, { ptr, i64 } { ptr @tn.str.287, i64 9 }, { ptr, i64 } { ptr @tn.str.288, i64 5 }, { ptr, i64 } { ptr @tn.str.289, i64 11 }, { ptr, i64 } { ptr @tn.str.290, i64 10 }, { ptr, i64 } { ptr @tn.str.291, i64 5 }, { ptr, i64 } { ptr @tn.str.292, i64 12 }, { ptr, i64 } { ptr @tn.str.293, i64 7 }, { ptr, i64 } { ptr @tn.str.294, i64 6 }, { ptr, i64 } { ptr @tn.str.295, i64 10 }, { ptr, i64 } { ptr @tn.str.296, i64 19 }, { ptr, i64 } { ptr @tn.str.297, i64 6 }, { ptr, i64 } { ptr @tn.str.298, i64 4 }, { ptr, i64 } { ptr @tn.str.299, i64 5 }, { ptr, i64 } { ptr @tn.str.300, i64 10 }, { ptr, i64 } { ptr @tn.str.301, i64 5 }, { ptr, i64 } { ptr @tn.str.302, i64 9 }, { ptr, i64 } { ptr @tn.str.303, i64 7 }, { ptr, i64 } { ptr @tn.str.304, i64 10 }, { ptr, i64 } { ptr @tn.str.305, i64 8 }, { ptr, i64 } { ptr @tn.str.306, i64 6 }, { ptr, i64 } { ptr @tn.str.307, i64 8 }, { ptr, i64 } { ptr @tn.str.308, i64 5 }, { ptr, i64 } { ptr @tn.str.309, i64 8 }, { ptr, i64 } { ptr @tn.str.310, i64 6 }, { ptr, i64 } { ptr @tn.str.311, i64 8 }, { ptr, i64 } { ptr @tn.str.312, i64 13 }, { ptr, i64 } { ptr @tn.str.313, i64 7 }, { ptr, i64 } { ptr @tn.str.314, i64 6 }, { ptr, i64 } { ptr @tn.str.315, i64 8 }, { ptr, i64 } { ptr @tn.str.316, i64 5 }, { ptr, i64 } { ptr @tn.str.317, i64 8 }, { ptr, i64 } { ptr @tn.str.318, i64 7 }, { ptr, i64 } { ptr @tn.str.319, i64 6 }, { ptr, i64 } { ptr @tn.str.320, i64 5 }, { ptr, i64 } { ptr @tn.str.321, i64 15 }, { ptr, i64 } { ptr @tn.str.322, i64 8 }, { ptr, i64 } { ptr @tn.str.323, i64 5 }, { ptr, i64 } { ptr @tn.str.324, i64 5 }, { ptr, i64 } { ptr @tn.str.325, i64 9 }, { ptr, i64 } { ptr @tn.str.326, i64 6 }, { ptr, i64 } { ptr @tn.str.327, i64 8 }, { ptr, i64 } { ptr @tn.str.328, i64 15 }, { ptr, i64 } { ptr @tn.str.329, i64 8 }] +@str.330 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.331 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.332 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.333 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.334 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.335 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.336 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.337 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.338 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.339 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.340 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.341 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.342 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.343 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.344 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.345 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.346 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.347 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.348 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.349 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.350 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.351 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.352 = private unnamed_addr constant [8 x i8] c"v1: {}\0A\00", align 1 +@str.353 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.354 = private unnamed_addr constant [8 x i8] c"v1: {}\0A\00", align 1 +@str.355 = private unnamed_addr constant [8 x i8] c"v2: {}\0A\00", align 1 +@str.356 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.357 = private unnamed_addr constant [8 x i8] c"v2: {}\0A\00", align 1 +@str.358 = private unnamed_addr constant [10 x i8] c"buff: {}\0A\00", align 1 +@str.359 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.360 = private unnamed_addr constant [10 x i8] c"buff: {}\0A\00", align 1 +@str.361 = private unnamed_addr constant [10 x i8] c"comp: {}\0A\00", align 1 +@str.362 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.363 = private unnamed_addr constant [10 x i8] c"comp: {}\0A\00", align 1 +@str.364 = private unnamed_addr constant [9 x i8] c"add: {}\0A\00", align 1 +@str.365 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.366 = private unnamed_addr constant [9 x i8] c"add: {}\0A\00", align 1 +@str.367 = private unnamed_addr constant [10 x i8] c"v2.x: {}\0A\00", align 1 +@str.368 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.369 = private unnamed_addr constant [10 x i8] c"v2.x: {}\0A\00", align 1 +@str.370 = private unnamed_addr constant [11 x i8] c"v2[1]: {}\0A\00", align 1 +@str.371 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.372 = private unnamed_addr constant [11 x i8] c"v2[1]: {}\0A\00", align 1 +@str.373 = private unnamed_addr constant [12 x i8] c"scaled: {}\0A\00", align 1 +@str.374 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.375 = private unnamed_addr constant [12 x i8] c"scaled: {}\0A\00", align 1 +@str.376 = private unnamed_addr constant [9 x i8] c"neg: {}\0A\00", align 1 +@str.377 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.378 = private unnamed_addr constant [9 x i8] c"neg: {}\0A\00", align 1 +@str.379 = private unnamed_addr constant [13 x i8] c"sqrt(9): {}\0A\00", align 1 +@str.380 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.381 = private unnamed_addr constant [13 x i8] c"sqrt(9): {}\0A\00", align 1 +@str.382 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.383 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.384 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.385 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.386 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.387 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.388 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.389 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.390 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.391 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.184 = private constant [5 x i8] c"line\00" -@fld.str.185 = private constant [4 x i8] c"col\00" -@fld.str.186 = 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.184, i64 4 }, { ptr, i64 } { ptr @fld.str.185, i64 3 }, { ptr, i64 } { ptr @fld.str.186, i64 4 }] -@str.187 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.188 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.189 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.190 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.191 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.192 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.193 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.194 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.195 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.196 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.197 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.198 = private constant [12 x i8] c"alloc_count\00" -@field_names.199 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.198, i64 11 }] -@str.200 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.201 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.203 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.204 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.205 = private constant [5 x i8] c"next\00" -@fld.str.206 = private constant [4 x i8] c"cap\00" -@field_names.207 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.205, i64 4 }, { ptr, i64 } { ptr @fld.str.206, i64 3 }] -@str.208 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.209 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.210 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.212 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.213 = private constant [4 x i8] c"ctx\00" -@fld.str.214 = private constant [6 x i8] c"alloc\00" -@fld.str.215 = private constant [8 x i8] c"dealloc\00" -@field_names.216 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.213, i64 3 }, { ptr, i64 } { ptr @fld.str.214, i64 5 }, { ptr, i64 } { ptr @fld.str.215, i64 7 }] -@str.217 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.218 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.219 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.220 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.221 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.222 = private constant [6 x i8] c"first\00" -@fld.str.223 = private constant [10 x i8] c"end_index\00" -@fld.str.224 = private constant [7 x i8] c"parent\00" -@field_names.225 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.222, i64 5 }, { ptr, i64 } { ptr @fld.str.223, i64 9 }, { ptr, i64 } { ptr @fld.str.224, i64 6 }] -@str.226 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.227 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.228 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.229 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.230 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.231 = private constant [4 x i8] c"buf\00" -@fld.str.232 = private constant [4 x i8] c"len\00" -@fld.str.233 = private constant [4 x i8] c"pos\00" -@field_names.234 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.231, i64 3 }, { ptr, i64 } { ptr @fld.str.232, i64 3 }, { ptr, i64 } { ptr @fld.str.233, i64 3 }] -@str.235 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.236 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.237 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.238 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.239 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.240 = private constant [7 x i8] c"parent\00" -@fld.str.241 = private constant [12 x i8] c"alloc_count\00" -@fld.str.242 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.243 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.244 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.240, i64 6 }, { ptr, i64 } { ptr @fld.str.241, i64 11 }, { ptr, i64 } { ptr @fld.str.242, i64 13 }, { ptr, i64 } { ptr @fld.str.243, i64 17 }] -@str.245 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.246 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.247 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.248 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.249 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.250 = private constant [10 x i8] c"allocator\00" -@fld.str.251 = private constant [5 x i8] c"data\00" -@field_names.252 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.250, i64 9 }, { ptr, i64 } { ptr @fld.str.251, i64 4 }] -@str.253 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.254 = private unnamed_addr constant [5 x i8] c"Mat4\00", align 1 -@str.255 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.256 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.257 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.258 = private constant [5 x i8] c"data\00" -@field_names.259 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.258, i64 4 }] -@str.260 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.261 = private unnamed_addr constant [5 x i8] c"Vec2\00", align 1 -@str.262 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.263 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.264 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.265 = private constant [2 x i8] c"x\00" -@fld.str.266 = private constant [2 x i8] c"y\00" -@field_names.267 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.265, i64 1 }, { ptr, i64 } { ptr @fld.str.266, i64 1 }] -@str.268 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.269 = private unnamed_addr constant [12 x i8] c"Vec__3__f32\00", align 1 -@str.270 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.271 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.272 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.273 = private constant [5 x i8] c"data\00" -@field_names.274 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.273, i64 4 }] -@str.275 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.276 = private unnamed_addr constant [5 x i8] c"Vec3\00", align 1 -@str.277 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.278 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.279 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.280 = private constant [5 x i8] c"data\00" -@field_names.281 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.280, i64 4 }] -@str.282 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.283 = private unnamed_addr constant [13 x i8] c"Complex__u32\00", align 1 -@str.284 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.285 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.286 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.287 = private constant [6 x i8] c"value\00" -@fld.str.288 = private constant [6 x i8] c"count\00" -@field_names.289 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.287, i64 5 }, { ptr, i64 } { ptr @fld.str.288, i64 5 }] -@str.290 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.291 = private unnamed_addr constant [4 x i8] c"Foo\00", align 1 -@str.292 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.293 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.294 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.295 = private constant [6 x i8] c"value\00" -@fld.str.296 = private constant [6 x i8] c"count\00" -@field_names.297 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.295, i64 5 }, { ptr, i64 } { ptr @fld.str.296, i64 5 }] -@str.298 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.299 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.300 = private constant [8 x i8] c"counter\00" -@fld.str.301 = private constant [5 x i8] c"user\00" -@field_names.302 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.300, i64 7 }, { ptr, i64 } { ptr @fld.str.301, i64 4 }] -@str.303 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.304 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.305 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.306 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.307 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.308 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.309 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.310 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.311 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.312 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.313 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.314 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.315 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.316 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.317 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.318 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.319 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.320 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.321 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.322 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.323 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.324 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.325 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.326 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.327 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.328 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.329 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.330 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.331 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.332 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.333 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.334 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.335 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.336 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.337 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.338 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.339 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.340 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.341 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.342 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.343 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.344 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.345 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.346 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.347 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.348 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.349 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.350 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.351 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.352 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.353 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.354 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.355 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.356 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.357 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.358 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.359 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.360 = private unnamed_addr constant [6 x i8] c"*Vec3\00", align 1 -@str.361 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.362 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.363 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.364 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.365 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.366 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.367 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.368 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.369 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.370 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.371 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.372 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.373 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.374 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.375 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.376 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.377 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.378 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.379 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.380 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.381 = private unnamed_addr constant [5 x i8] c"*f32\00", align 1 -@str.382 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.383 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.384 = private unnamed_addr constant [15 x i8] c"*Vector(3,f32)\00", align 1 -@str.385 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.386 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.387 = private unnamed_addr constant [8 x i8] c"*[5]f32\00", align 1 -@str.388 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.389 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.390 = private unnamed_addr constant [5 x i8] c"*Foo\00", align 1 -@str.391 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.392 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.393 = private unnamed_addr constant [5 x i8] c"*f64\00", align 1 -@str.394 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.395 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.396 = private unnamed_addr constant [9 x i8] c"*Sx__f32\00", align 1 -@str.397 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.392 = private constant [5 x i8] c"line\00" +@fld.str.393 = private constant [4 x i8] c"col\00" +@fld.str.394 = 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.392, i64 4 }, { ptr, i64 } { ptr @fld.str.393, i64 3 }, { ptr, i64 } { ptr @fld.str.394, i64 4 }] +@str.395 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.396 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.397 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.398 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.399 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.400 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.401 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.402 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.403 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.404 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.405 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.406 = private constant [12 x i8] c"alloc_count\00" +@field_names.407 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.406, i64 11 }] +@str.408 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.409 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.410 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.412 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.413 = private constant [5 x i8] c"next\00" +@fld.str.414 = private constant [4 x i8] c"cap\00" +@field_names.415 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.413, i64 4 }, { ptr, i64 } { ptr @fld.str.414, i64 3 }] +@str.416 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.417 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.420 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.421 = private constant [4 x i8] c"ctx\00" +@fld.str.422 = private constant [6 x i8] c"alloc\00" +@fld.str.423 = private constant [8 x i8] c"dealloc\00" +@field_names.424 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.421, i64 3 }, { ptr, i64 } { ptr @fld.str.422, i64 5 }, { ptr, i64 } { ptr @fld.str.423, i64 7 }] +@str.425 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.426 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.427 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.428 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.429 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.430 = private constant [6 x i8] c"first\00" +@fld.str.431 = private constant [10 x i8] c"end_index\00" +@fld.str.432 = private constant [7 x i8] c"parent\00" +@field_names.433 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.430, i64 5 }, { ptr, i64 } { ptr @fld.str.431, i64 9 }, { ptr, i64 } { ptr @fld.str.432, i64 6 }] +@str.434 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.435 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.436 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.437 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.438 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.439 = private constant [4 x i8] c"buf\00" +@fld.str.440 = private constant [4 x i8] c"len\00" +@fld.str.441 = private constant [4 x i8] c"pos\00" +@field_names.442 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.439, i64 3 }, { ptr, i64 } { ptr @fld.str.440, i64 3 }, { ptr, i64 } { ptr @fld.str.441, i64 3 }] +@str.443 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.444 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.445 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.446 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.447 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.448 = private constant [7 x i8] c"parent\00" +@fld.str.449 = private constant [12 x i8] c"alloc_count\00" +@fld.str.450 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.451 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.452 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.448, i64 6 }, { ptr, i64 } { ptr @fld.str.449, i64 11 }, { ptr, i64 } { ptr @fld.str.450, i64 13 }, { ptr, i64 } { ptr @fld.str.451, i64 17 }] +@str.453 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.454 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.455 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.456 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.457 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.458 = private constant [10 x i8] c"allocator\00" +@fld.str.459 = private constant [5 x i8] c"data\00" +@field_names.460 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.458, i64 9 }, { ptr, i64 } { ptr @fld.str.459, i64 4 }] +@str.461 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.462 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.463 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.464 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.465 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.466 = private constant [3 x i8] c"fd\00" +@field_names.467 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.466, i64 2 }] +@str.468 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.469 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.470 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.471 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.472 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.473 = private constant [5 x i8] c"file\00" +@fld.str.474 = private constant [5 x i8] c"line\00" +@fld.str.475 = private constant [4 x i8] c"col\00" +@fld.str.476 = private constant [5 x i8] c"func\00" +@fld.str.477 = private constant [10 x i8] c"line_text\00" +@field_names.478 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.473, i64 4 }, { ptr, i64 } { ptr @fld.str.474, i64 4 }, { ptr, i64 } { ptr @fld.str.475, i64 3 }, { ptr, i64 } { ptr @fld.str.476, i64 4 }, { ptr, i64 } { ptr @fld.str.477, i64 9 }] +@str.479 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.480 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.481 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.482 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.483 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.484 = private constant [10 x i8] c"exit_code\00" +@fld.str.485 = private constant [7 x i8] c"stdout\00" +@field_names.486 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.484, i64 9 }, { ptr, i64 } { ptr @fld.str.485, i64 6 }] +@str.487 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.488 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.489 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.490 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.491 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.492 = private constant [8 x i8] c"sin_len\00" +@fld.str.493 = private constant [11 x i8] c"sin_family\00" +@fld.str.494 = private constant [9 x i8] c"sin_port\00" +@fld.str.495 = private constant [9 x i8] c"sin_addr\00" +@fld.str.496 = private constant [9 x i8] c"sin_zero\00" +@field_names.497 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.492, i64 7 }, { ptr, i64 } { ptr @fld.str.493, i64 10 }, { ptr, i64 } { ptr @fld.str.494, i64 8 }, { ptr, i64 } { ptr @fld.str.495, i64 8 }, { ptr, i64 } { ptr @fld.str.496, i64 8 }] +@str.498 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.499 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.500 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.501 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.502 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.503 = private constant [6 x i8] c"items\00" +@fld.str.504 = private constant [4 x i8] c"len\00" +@fld.str.505 = private constant [4 x i8] c"cap\00" +@field_names.506 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.503, i64 5 }, { ptr, i64 } { ptr @fld.str.504, i64 3 }, { ptr, i64 } { ptr @fld.str.505, i64 3 }] +@str.507 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.508 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.509 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.510 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.511 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.512 = private constant [6 x i8] c"items\00" +@fld.str.513 = private constant [4 x i8] c"len\00" +@fld.str.514 = private constant [4 x i8] c"cap\00" +@field_names.515 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.512, i64 5 }, { ptr, i64 } { ptr @fld.str.513, i64 3 }, { ptr, i64 } { ptr @fld.str.514, i64 3 }] +@str.516 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.517 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.518 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.519 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.520 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.521 = private constant [4 x i8] c"key\00" +@fld.str.522 = private constant [4 x i8] c"val\00" +@field_names.523 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.521, i64 3 }, { ptr, i64 } { ptr @fld.str.522, i64 3 }] +@str.524 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.525 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.526 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.527 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.528 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.529 = private constant [4 x i8] c"dst\00" +@fld.str.530 = private constant [4 x i8] c"pos\00" +@fld.str.531 = private constant [5 x i8] c"file\00" +@field_names.532 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.529, i64 3 }, { ptr, i64 } { ptr @fld.str.530, i64 3 }, { ptr, i64 } { ptr @fld.str.531, i64 4 }] +@str.533 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.534 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.535 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.536 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.537 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.538 = private constant [4 x i8] c"src\00" +@fld.str.539 = private constant [4 x i8] c"pos\00" +@fld.str.540 = private constant [6 x i8] c"alloc\00" +@field_names.541 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.538, i64 3 }, { ptr, i64 } { ptr @fld.str.539, i64 3 }, { ptr, i64 } { ptr @fld.str.540, i64 5 }] +@str.542 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.543 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.544 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.545 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.546 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.547 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.548 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.549 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.550 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.551 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.552 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.553 = private constant [5 x i8] c"name\00" +@fld.str.554 = private constant [12 x i8] c"takes_value\00" +@fld.str.555 = private constant [9 x i8] c"required\00" +@field_names.556 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.553, i64 4 }, { ptr, i64 } { ptr @fld.str.554, i64 11 }, { ptr, i64 } { ptr @fld.str.555, i64 8 }] +@str.557 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.558 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.559 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.560 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.561 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.562 = private constant [6 x i8] c"group\00" +@fld.str.563 = private constant [8 x i8] c"command\00" +@fld.str.564 = private constant [6 x i8] c"flags\00" +@field_names.565 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.562, i64 5 }, { ptr, i64 } { ptr @fld.str.563, i64 7 }, { ptr, i64 } { ptr @fld.str.564, i64 5 }] +@str.566 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.567 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.570 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.571 = private constant [4 x i8] c"set\00" +@fld.str.572 = private constant [6 x i8] c"value\00" +@field_names.573 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.571, i64 3 }, { ptr, i64 } { ptr @fld.str.572, i64 5 }] +@str.574 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.575 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.576 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.577 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.578 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.579 = private constant [6 x i8] c"index\00" +@fld.str.580 = private constant [6 x i8] c"token\00" +@field_names.581 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.579, i64 5 }, { ptr, i64 } { ptr @fld.str.580, i64 5 }] +@str.582 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.583 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.584 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.585 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.586 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.587 = private constant [6 x i8] c"group\00" +@fld.str.588 = private constant [8 x i8] c"command\00" +@fld.str.589 = private constant [10 x i8] c"cmd_index\00" +@fld.str.590 = private constant [5 x i8] c"json\00" +@fld.str.591 = private constant [5 x i8] c"rest\00" +@fld.str.592 = private constant [5 x i8] c"spec\00" +@fld.str.593 = private constant [7 x i8] c"values\00" +@field_names.594 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.587, i64 5 }, { ptr, i64 } { ptr @fld.str.588, i64 7 }, { ptr, i64 } { ptr @fld.str.589, i64 9 }, { ptr, i64 } { ptr @fld.str.590, i64 4 }, { ptr, i64 } { ptr @fld.str.591, i64 4 }, { ptr, i64 } { ptr @fld.str.592, i64 4 }, { ptr, i64 } { ptr @fld.str.593, i64 6 }] +@str.595 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.596 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.597 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.599 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.600 = private constant [2 x i8] c"h\00" +@fld.str.601 = private constant [4 x i8] c"buf\00" +@fld.str.602 = private constant [8 x i8] c"buf_len\00" +@fld.str.603 = private constant [10 x i8] c"total_len\00" +@field_names.604 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.600, i64 1 }, { ptr, i64 } { ptr @fld.str.601, i64 3 }, { ptr, i64 } { ptr @fld.str.602, i64 7 }, { ptr, i64 } { ptr @fld.str.603, i64 9 }] +@str.605 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.606 = private unnamed_addr constant [5 x i8] c"Mat4\00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.609 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.610 = private constant [5 x i8] c"data\00" +@field_names.611 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.610, i64 4 }] +@str.612 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.613 = private unnamed_addr constant [5 x i8] c"Vec2\00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.616 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.617 = private constant [2 x i8] c"x\00" +@fld.str.618 = private constant [2 x i8] c"y\00" +@field_names.619 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.617, i64 1 }, { ptr, i64 } { ptr @fld.str.618, i64 1 }] +@str.620 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.621 = private unnamed_addr constant [12 x i8] c"Vec__3__f32\00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.624 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.625 = private constant [5 x i8] c"data\00" +@field_names.626 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.625, i64 4 }] +@str.627 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.628 = private unnamed_addr constant [5 x i8] c"Vec3\00", align 1 +@str.629 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.630 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.631 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.632 = private constant [5 x i8] c"data\00" +@field_names.633 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.632, i64 4 }] +@str.634 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.635 = private unnamed_addr constant [13 x i8] c"Complex__u32\00", align 1 +@str.636 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.637 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.638 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.639 = private constant [6 x i8] c"value\00" +@fld.str.640 = private constant [6 x i8] c"count\00" +@field_names.641 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.639, i64 5 }, { ptr, i64 } { ptr @fld.str.640, i64 5 }] +@str.642 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.643 = private unnamed_addr constant [4 x i8] c"Foo\00", align 1 +@str.644 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.645 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.646 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.647 = private constant [6 x i8] c"value\00" +@fld.str.648 = private constant [6 x i8] c"count\00" +@field_names.649 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.647, i64 5 }, { ptr, i64 } { ptr @fld.str.648, i64 5 }] +@str.650 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.651 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.652 = private constant [5 x i8] c"read\00" +@fld.str.653 = private constant [6 x i8] c"write\00" +@fld.str.654 = private constant [7 x i8] c"append\00" +@fld.str.655 = private constant [11 x i8] c"read_write\00" +@field_names.656 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.652, i64 4 }, { ptr, i64 } { ptr @fld.str.653, i64 5 }, { ptr, i64 } { ptr @fld.str.654, i64 6 }, { ptr, i64 } { ptr @fld.str.655, i64 10 }] +@str.657 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.658 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.659 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.660 = private constant [4 x i8] c"set\00" +@fld.str.661 = private constant [8 x i8] c"current\00" +@fld.str.662 = private constant [4 x i8] c"end\00" +@field_names.663 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.660, i64 3 }, { ptr, i64 } { ptr @fld.str.661, i64 7 }, { ptr, i64 } { ptr @fld.str.662, i64 3 }] +@str.664 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.665 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.666 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.667 = private constant [6 x i8] c"null_\00" +@fld.str.668 = private constant [6 x i8] c"bool_\00" +@fld.str.669 = private constant [5 x i8] c"int_\00" +@fld.str.670 = private constant [4 x i8] c"str\00" +@fld.str.671 = private constant [6 x i8] c"array\00" +@fld.str.672 = private constant [7 x i8] c"object\00" +@field_names.673 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.667, i64 5 }, { ptr, i64 } { ptr @fld.str.668, i64 5 }, { ptr, i64 } { ptr @fld.str.669, i64 4 }, { ptr, i64 } { ptr @fld.str.670, i64 3 }, { ptr, i64 } { ptr @fld.str.671, i64 5 }, { ptr, i64 } { ptr @fld.str.672, i64 6 }] +@str.674 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.675 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.676 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.677 = private constant [6 x i8] c"macos\00" +@fld.str.678 = private constant [6 x i8] c"linux\00" +@fld.str.679 = private constant [8 x i8] c"windows\00" +@fld.str.680 = private constant [5 x i8] c"wasm\00" +@fld.str.681 = private constant [4 x i8] c"ios\00" +@fld.str.682 = private constant [8 x i8] c"android\00" +@fld.str.683 = private constant [8 x i8] c"unknown\00" +@field_names.684 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.677, i64 5 }, { ptr, i64 } { ptr @fld.str.678, i64 5 }, { ptr, i64 } { ptr @fld.str.679, i64 7 }, { ptr, i64 } { ptr @fld.str.680, i64 4 }, { ptr, i64 } { ptr @fld.str.681, i64 3 }, { ptr, i64 } { ptr @fld.str.682, i64 7 }, { ptr, i64 } { ptr @fld.str.683, i64 7 }] +@str.685 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.686 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.687 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.688 = private constant [8 x i8] c"aarch64\00" +@fld.str.689 = private constant [7 x i8] c"x86_64\00" +@fld.str.690 = private constant [7 x i8] c"wasm32\00" +@fld.str.691 = private constant [7 x i8] c"wasm64\00" +@fld.str.692 = private constant [8 x i8] c"unknown\00" +@field_names.693 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.688, i64 7 }, { ptr, i64 } { ptr @fld.str.689, i64 6 }, { ptr, i64 } { ptr @fld.str.690, i64 6 }, { ptr, i64 } { ptr @fld.str.691, i64 6 }, { ptr, i64 } { ptr @fld.str.692, i64 7 }] +@str.694 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.695 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.696 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.697 = private constant [8 x i8] c"counter\00" +@fld.str.698 = private constant [5 x i8] c"user\00" +@field_names.699 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.697, i64 7 }, { ptr, i64 } { ptr @fld.str.698, i64 4 }] +@str.700 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.701 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.702 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.703 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.704 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.707 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.708 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.709 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.710 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.711 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.712 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.713 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.714 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.715 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.716 = private unnamed_addr constant [3 x i8] c", \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 +@str.720 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.721 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.722 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.723 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.724 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.725 = private unnamed_addr constant [3 x i8] c", \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 +@str.729 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.730 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.731 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.732 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.733 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.734 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.737 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.738 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.739 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.740 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.743 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.744 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.745 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.746 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.747 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.748 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.749 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.750 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.751 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.752 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.753 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.754 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.755 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.756 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.757 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.758 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.759 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.760 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.761 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.762 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.763 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.764 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.765 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.766 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.767 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.768 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.769 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.770 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.771 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.772 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.773 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.774 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.775 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.776 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.777 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.778 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.779 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.780 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.781 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.782 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.783 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.784 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.785 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.786 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.787 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.788 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.789 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.790 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.791 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.792 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.793 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.794 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.795 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.796 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.797 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.798 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.799 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.800 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.801 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.802 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.803 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.804 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.805 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.806 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.807 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.808 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.809 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.810 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.811 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.812 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.813 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.814 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.815 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.816 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.817 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.818 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.819 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.820 = private unnamed_addr constant [6 x i8] c"*Vec3\00", align 1 +@str.821 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.822 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.823 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.824 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.825 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.826 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.827 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.828 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.829 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.830 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.831 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.832 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.833 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.834 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.835 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.836 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.837 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.838 = private unnamed_addr constant [5 x i8] c"*f32\00", align 1 +@str.839 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.840 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.841 = private unnamed_addr constant [15 x i8] c"*Vector(3,f32)\00", align 1 +@str.842 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.843 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.844 = private unnamed_addr constant [8 x i8] c"*[5]f32\00", align 1 +@str.845 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.846 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.847 = private unnamed_addr constant [5 x i8] c"*Foo\00", align 1 +@str.848 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.849 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.850 = private unnamed_addr constant [5 x i8] c"*f64\00", align 1 +@str.851 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.852 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.853 = private unnamed_addr constant [9 x i8] c"*Sx__f32\00", align 1 +@str.854 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.855 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.856 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.857 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.858 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -614,7 +973,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -741,7 +1100,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -910,38 +1269,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.270 + br label %while.hdr.436 -while.hdr.270: ; preds = %if.merge.275, %entry +while.hdr.436: ; preds = %if.merge.441, %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.271, label %while.exit.272 + br i1 %icmp, label %while.body.437, label %while.exit.438 -while.body.271: ; preds = %while.hdr.270 +while.body.437: ; preds = %while.hdr.436 %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.273, label %if.else.274 + br i1 %icmpN, label %if.then.439, label %if.else.440 -while.exit.272: ; preds = %while.hdr.270 +while.exit.438: ; preds = %while.hdr.436 ret void -if.then.273: ; preds = %while.body.271 +if.then.439: ; preds = %while.body.437 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.275 + br label %if.merge.441 -if.else.274: ; preds = %while.body.271 +if.else.440: ; preds = %while.body.437 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.275 + br label %if.merge.441 -if.merge.275: ; preds = %if.else.274, %if.then.273 - %bp = phi i64 [ %addN, %if.then.273 ], [ %addN, %if.else.274 ] +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi i64 [ %addN, %if.then.439 ], [ %addN, %if.else.440 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -954,7 +1313,7 @@ if.merge.275: ; preds = %if.else.274, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.270 + br label %while.hdr.436 } ; Function Attrs: nounwind @@ -1072,12 +1431,12 @@ entry: 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.268, label %if.merge.269 + br i1 %icmp, label %if.then.434, label %if.merge.435 -if.then.268: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.434: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.269: ; preds = %entry +if.merge.435: ; 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 @@ -1108,14 +1467,14 @@ if.merge.269: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.276 + br label %while.hdr.442 -while.hdr.276: ; preds = %if.merge.280, %if.merge.269 +while.hdr.442: ; preds = %if.merge.446, %if.merge.435 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.277, label %while.exit.278 + br i1 %icmpN, label %while.body.443, label %while.exit.444 -while.body.277: ; preds = %while.hdr.276 +while.body.443: ; preds = %while.hdr.442 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1123,9 +1482,9 @@ while.body.277: ; preds = %while.hdr.276 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.279, label %if.merge.280 + br i1 %icmpN, label %if.then.445, label %if.merge.446 -while.exit.278: ; preds = %if.then.279, %while.hdr.276 +while.exit.444: ; preds = %if.then.445, %while.hdr.442 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1133,14 +1492,14 @@ while.exit.278: ; preds = %if.then.279, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.279: ; preds = %while.body.277 - br label %while.exit.278 +if.then.445: ; preds = %while.body.443 + br label %while.exit.444 -if.merge.280: ; preds = %while.body.277 +if.merge.446: ; preds = %while.body.443 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.276 + br label %while.hdr.442 } ; Function Attrs: nounwind @@ -1218,13 +1577,15 @@ entry: %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 %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1257,20 +1618,51 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 - i64 38, label %match.arm.43 i64 39, label %match.arm.43 - i64 41, label %match.arm.43 - i64 42, label %match.arm.43 i64 43, label %match.arm.43 - i64 44, label %match.arm.43 - i64 63, label %match.arm.44 - i64 40, label %match.arm.46 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 94, label %match.arm.43 + i64 95, label %match.arm.43 + i64 97, label %match.arm.43 + i64 98, label %match.arm.43 + i64 99, label %match.arm.43 + i64 100, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 117, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 + i64 96, label %match.arm.46 i64 35, label %match.arm.47 - i64 37, label %match.arm.47 - i64 52, label %match.arm.47 - i64 59, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 93, label %match.arm.47 + i64 107, label %match.arm.47 + i64 113, label %match.arm.47 i64 36, label %match.arm.48 - i64 50, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 105, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1279,31 +1671,48 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 45, label %match.arm.49 - i64 46, label %match.arm.49 + i64 40, label %match.arm.49 + i64 44, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 i64 49, label %match.arm.49 - i64 51, label %match.arm.49 - i64 53, label %match.arm.49 - i64 54, label %match.arm.49 - i64 55, label %match.arm.49 + i64 50, label %match.arm.49 i64 56, label %match.arm.49 i64 57, label %match.arm.49 i64 58, label %match.arm.49 - i64 60, label %match.arm.49 - i64 61, label %match.arm.49 + i64 59, label %match.arm.49 i64 62, label %match.arm.49 - i64 64, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 103, label %match.arm.49 + i64 104, label %match.arm.49 + i64 106, label %match.arm.49 + i64 108, label %match.arm.49 + i64 109, label %match.arm.49 + i64 110, label %match.arm.49 + i64 111, label %match.arm.49 + i64 112, label %match.arm.49 + i64 114, label %match.arm.49 + i64 115, label %match.arm.49 + i64 116, label %match.arm.49 + i64 118, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.239, %dispatch.merge.225, %dispatch.merge.199, %dispatch.merge.191, %dispatch.merge.186, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.555, %dispatch.merge.392, %dispatch.merge.360, %dispatch.merge.310, %dispatch.merge.302, %dispatch.merge.282, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1312,7 +1721,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [97 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [187 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1340,7 +1749,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1354,94 +1763,152 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 - i64 38, label %dispatch.case.105 - i64 39, label %dispatch.case.106 - i64 41, label %dispatch.case.107 - i64 42, label %dispatch.case.108 - i64 43, label %dispatch.case.109 - i64 44, label %dispatch.case.110 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 94, label %dispatch.case.121 + i64 95, label %dispatch.case.122 + i64 97, label %dispatch.case.123 + i64 98, label %dispatch.case.124 + i64 99, label %dispatch.case.125 + i64 100, label %dispatch.case.126 ] -match.arm.44: ; preds = %entry +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.187 [ - i64 63, label %dispatch.case.188 + switch i64 %ua.raw20, label %dispatch.default.283 [ + i64 37, label %dispatch.case.284 + i64 38, label %dispatch.case.285 + i64 54, label %dispatch.case.286 + i64 70, label %dispatch.case.287 + i64 71, label %dispatch.case.288 + i64 117, label %dispatch.case.289 ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; preds = %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.192 [ - i64 40, label %dispatch.case.193 + switch i64 %ua.raw29, label %dispatch.default.303 [ + i64 96, label %dispatch.case.304 ] -match.arm.47: ; preds = %entry, %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.200 [ - i64 35, label %dispatch.case.201 - i64 37, label %dispatch.case.202 - i64 52, label %dispatch.case.203 - i64 59, label %dispatch.case.204 + switch i64 %ua.raw33, label %dispatch.default.311 [ + i64 35, label %dispatch.case.312 + i64 81, label %dispatch.case.313 + i64 87, label %dispatch.case.314 + i64 88, label %dispatch.case.315 + i64 92, label %dispatch.case.316 + i64 93, label %dispatch.case.317 + i64 107, label %dispatch.case.318 + i64 113, label %dispatch.case.319 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw32 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw32, label %dispatch.default.226 [ - i64 36, label %dispatch.case.227 - i64 50, label %dispatch.case.228 + switch i64 %ua.raw37, label %dispatch.default.361 [ + i64 36, label %dispatch.case.362 + i64 60, label %dispatch.case.363 + i64 77, label %dispatch.case.364 + i64 85, label %dispatch.case.365 + i64 105, label %dispatch.case.366 ] -match.arm.49: ; 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 +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw36 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw36, label %dispatch.default.240 [ - i64 18, label %dispatch.case.241 - i64 21, label %dispatch.case.242 - i64 23, label %dispatch.case.243 - i64 25, label %dispatch.case.244 - i64 28, label %dispatch.case.245 - i64 29, label %dispatch.case.246 - i64 31, label %dispatch.case.247 - i64 33, label %dispatch.case.248 - i64 45, label %dispatch.case.249 - i64 46, label %dispatch.case.250 - i64 47, label %dispatch.case.251 - i64 48, label %dispatch.case.252 - i64 49, label %dispatch.case.253 - i64 51, label %dispatch.case.254 - i64 53, label %dispatch.case.255 - i64 54, label %dispatch.case.256 - i64 55, label %dispatch.case.257 - i64 56, label %dispatch.case.258 - i64 57, label %dispatch.case.259 - i64 58, label %dispatch.case.260 - i64 60, label %dispatch.case.261 - i64 61, label %dispatch.case.262 - i64 62, label %dispatch.case.263 - i64 64, label %dispatch.case.264 + switch i64 %ua.raw41, label %dispatch.default.393 [ + i64 18, label %dispatch.case.394 + i64 21, label %dispatch.case.395 + i64 23, label %dispatch.case.396 + i64 25, label %dispatch.case.397 + i64 28, label %dispatch.case.398 + i64 29, label %dispatch.case.399 + i64 31, label %dispatch.case.400 + i64 33, label %dispatch.case.401 + i64 40, label %dispatch.case.402 + i64 44, label %dispatch.case.403 + i64 47, label %dispatch.case.404 + i64 49, label %dispatch.case.405 + i64 50, label %dispatch.case.406 + i64 56, label %dispatch.case.407 + i64 57, label %dispatch.case.408 + i64 58, label %dispatch.case.409 + i64 59, label %dispatch.case.410 + i64 62, label %dispatch.case.411 + i64 67, label %dispatch.case.412 + i64 74, label %dispatch.case.413 + i64 83, label %dispatch.case.414 + i64 86, label %dispatch.case.415 + i64 90, label %dispatch.case.416 + i64 101, label %dispatch.case.417 + i64 102, label %dispatch.case.418 + i64 103, label %dispatch.case.419 + i64 104, label %dispatch.case.420 + i64 106, label %dispatch.case.421 + i64 108, label %dispatch.case.422 + i64 109, label %dispatch.case.423 + i64 110, label %dispatch.case.424 + i64 111, label %dispatch.case.425 + i64 112, label %dispatch.case.426 + i64 114, label %dispatch.case.427 + i64 115, label %dispatch.case.428 + i64 116, label %dispatch.case.429 + i64 118, label %dispatch.case.430 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw45 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw45, label %dispatch.default.556 [ + i64 41, label %dispatch.case.557 + i64 42, label %dispatch.case.558 + i64 46, label %dispatch.case.559 + i64 91, label %dispatch.case.560 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag40 = extractvalue { i64, i64 } %loadN, 0 - %refl.val41 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype42 = icmp eq i64 %refl.tag40, 13 - %refl.tid43 = select i1 %refl.istype42, i64 %refl.val41, i64 %refl.tag40 - %tn.gep = getelementptr inbounds [97 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid43 + %refl.tag49 = extractvalue { i64, i64 } %loadN, 0 + %refl.val50 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype51 = icmp eq i64 %refl.tag49, 13 + %refl.tid52 = select i1 %refl.istype51, i64 %refl.val50, i64 %refl.tag49 + %tn.gep = getelementptr inbounds [187 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid52 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1451,15 +1918,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw45 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw45) + %ua.raw54 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw54) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw48 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw48) + %ua.raw57 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw57) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1467,16 +1934,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw50 to i32 + %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw59 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw51 to double + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw60 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1486,411 +1953,759 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.126, %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.123, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.330, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load57) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr65, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load {}, ptr %ua.ptr60, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load61) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load {}, ptr %ua.ptr69, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load65) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64 }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load69) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, i64 }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, ptr, ptr }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load73) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, ptr, ptr }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load77) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { ptr, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load81) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { ptr, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load85) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr88, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load89) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr97, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load { [16 x float] }, ptr %ua.ptr92, align 4 - %callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load93) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { i32 }, ptr %ua.ptr101, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.106: ; preds = %match.arm.43 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load { float, float }, ptr %ua.ptr96, align 4 - %callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load97) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.107: ; preds = %match.arm.43 - %ua.raw99 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr100 = inttoptr i64 %ua.raw99 to ptr - %ua.load101 = load { <3 x float> }, ptr %ua.ptr100, align 16 - %callN = call { ptr, i64 } @struct_to_string__Vec__3__f32(ptr %0, { <3 x float> } %ua.load101) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i32, { ptr, i64 } }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.108: ; preds = %match.arm.43 - %ua.raw103 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr104 = inttoptr i64 %ua.raw103 to ptr - %ua.load105 = load { <3 x float> }, ptr %ua.ptr104, align 16 - %callN = call { ptr, i64 } @struct_to_string__Vec3(ptr %0, { <3 x float> } %ua.load105) + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load114) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.109: ; preds = %match.arm.43 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr108 = inttoptr i64 %ua.raw107 to ptr - %ua.load109 = load { i32, i32 }, ptr %ua.ptr108, align 4 - %callN = call { ptr, i64 } @struct_to_string__Complex__u32(ptr %0, { i32, i32 } %ua.load109) + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load118) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.110: ; preds = %match.arm.43 - %ua.raw111 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr112 = inttoptr i64 %ua.raw111 to ptr - %ua.load113 = load { i32, i32 }, ptr %ua.ptr112, align 4 - %callN = call { ptr, i64 } @struct_to_string__Foo(ptr %0, { i32, i32 } %ua.load113) + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { ptr, i64, i64 }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load122) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.186: ; preds = %dispatch.case.188, %dispatch.default.187 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.37 - -dispatch.default.187: ; preds = %match.arm.44 - store { ptr, i64 } { ptr @str.124, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.186 - -dispatch.case.188: ; preds = %match.arm.44 - %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr - %ua.load118 = load { i64, [4 x i8] }, ptr %ua.ptr117, align 8 - %callN = call { ptr, i64 } @enum_to_string__Sx__f32(ptr %0, { i64, [4 x i8] } %ua.load118) +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load126) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.186 + br label %dispatch.merge.94 -dispatch.merge.191: ; preds = %dispatch.case.193, %dispatch.default.192 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.37 - -dispatch.default.192: ; preds = %match.arm.46 - store { ptr, i64 } { ptr @str.125, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.191 - -dispatch.case.193: ; preds = %match.arm.46 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr122 = inttoptr i64 %ua.raw121 to ptr - %ua.load123 = load <3 x float>, ptr %ua.ptr122, align 16 - %callN = call { ptr, i64 } @vector_to_string__vec_3_f32(ptr %0, <3 x float> %ua.load123) +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load130) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.191 + br label %dispatch.merge.94 -dispatch.merge.199: ; preds = %dispatch.case.204, %dispatch.case.203, %dispatch.case.202, %dispatch.case.201, %dispatch.default.200 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.37 - -dispatch.default.200: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.126, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.199 - -dispatch.case.201: ; preds = %match.arm.47 - %ua.raw126 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr127 = inttoptr i64 %ua.raw126 to ptr - %ua.load128 = load [4 x i64], ptr %ua.ptr127, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load128) +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr133, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load134) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.199 + br label %dispatch.merge.94 -dispatch.case.202: ; preds = %match.arm.47 - %ua.raw130 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr131 = inttoptr i64 %ua.raw130 to ptr - %ua.load132 = load [16 x float], ptr %ua.ptr131, align 4 - %callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load132) +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load {}, ptr %ua.ptr137, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load138) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.199 + br label %dispatch.merge.94 -dispatch.case.203: ; preds = %match.arm.47 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr135 = inttoptr i64 %ua.raw134 to ptr - %ua.load136 = load [1 x { i64, i64 }], ptr %ua.ptr135, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load136) +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load142) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.199 + br label %dispatch.merge.94 -dispatch.case.204: ; preds = %match.arm.47 - %ua.raw138 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr139 = inttoptr i64 %ua.raw138 to ptr - %ua.load140 = load [5 x float], ptr %ua.ptr139, align 4 - %callN = call { ptr, i64 } @array_to_string__AR_5_f32(ptr %0, [5 x float] %ua.load140) +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load146) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.199 + br label %dispatch.merge.94 -dispatch.merge.225: ; preds = %dispatch.case.228, %dispatch.case.227, %dispatch.default.226 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.37 - -dispatch.default.226: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.127, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.225 - -dispatch.case.227: ; preds = %match.arm.48 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr144 = inttoptr i64 %ua.raw143 to ptr - %ua.load145 = load { ptr, i64 }, ptr %ua.ptr144, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load145) +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i1, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load150) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.225 + br label %dispatch.merge.94 -dispatch.case.228: ; preds = %match.arm.48 - %ua.raw147 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr148 = inttoptr i64 %ua.raw147 to ptr - %ua.load149 = load { ptr, i64 }, ptr %ua.ptr148, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load149) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.225 - -dispatch.merge.239: ; preds = %dispatch.case.264, %dispatch.case.263, %dispatch.case.262, %dispatch.case.261, %dispatch.case.260, %dispatch.case.259, %dispatch.case.258, %dispatch.case.257, %dispatch.case.256, %dispatch.case.255, %dispatch.case.254, %dispatch.case.253, %dispatch.case.252, %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.case.247, %dispatch.case.246, %dispatch.case.245, %dispatch.case.244, %dispatch.case.243, %dispatch.case.242, %dispatch.case.241, %dispatch.default.240 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.37 - -dispatch.default.240: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.128, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.239 - -dispatch.case.241: ; preds = %match.arm.49 +dispatch.case.118: ; preds = %match.arm.43 %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw152 to ptr + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { i64, { ptr, i64 } }, ptr %ua.ptr153, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr157, 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.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr161, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load { [16 x float] }, ptr %ua.ptr165, align 4 + %callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.122: ; preds = %match.arm.43 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load { float, float }, ptr %ua.ptr169, align 4 + %callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load170) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.123: ; preds = %match.arm.43 + %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr173 = inttoptr i64 %ua.raw172 to ptr + %ua.load174 = load { <3 x float> }, ptr %ua.ptr173, align 16 + %callN = call { ptr, i64 } @struct_to_string__Vec__3__f32(ptr %0, { <3 x float> } %ua.load174) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.124: ; preds = %match.arm.43 + %ua.raw176 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr177 = inttoptr i64 %ua.raw176 to ptr + %ua.load178 = load { <3 x float> }, ptr %ua.ptr177, align 16 + %callN = call { ptr, i64 } @struct_to_string__Vec3(ptr %0, { <3 x float> } %ua.load178) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.125: ; preds = %match.arm.43 + %ua.raw180 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr181 = inttoptr i64 %ua.raw180 to ptr + %ua.load182 = load { i32, i32 }, ptr %ua.ptr181, align 4 + %callN = call { ptr, i64 } @struct_to_string__Complex__u32(ptr %0, { i32, i32 } %ua.load182) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.126: ; preds = %match.arm.43 + %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr185 = inttoptr i64 %ua.raw184 to ptr + %ua.load186 = load { i32, i32 }, ptr %ua.ptr185, align 4 + %callN = call { ptr, i64 } @struct_to_string__Foo(ptr %0, { i32, i32 } %ua.load186) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.282: ; preds = %dispatch.case.289, %dispatch.case.288, %dispatch.case.287, %dispatch.case.286, %dispatch.case.285, %dispatch.case.284, %dispatch.default.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.283: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.331, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.284: ; preds = %match.arm.44 + %ua.raw189 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw189) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.285: ; preds = %match.arm.44 + %ua.raw191 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw191) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.286: ; preds = %match.arm.44 + %ua.raw193 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr194 = inttoptr i64 %ua.raw193 to ptr + %ua.load195 = load { i64, [24 x i8] }, ptr %ua.ptr194, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load195) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.287: ; preds = %match.arm.44 + %ua.raw197 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw197) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.288: ; preds = %match.arm.44 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw199) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.289: ; preds = %match.arm.44 + %ua.raw201 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr202 = inttoptr i64 %ua.raw201 to ptr + %ua.load203 = load { i64, [4 x i8] }, ptr %ua.ptr202, align 8 + %callN = call { ptr, i64 } @enum_to_string__Sx__f32(ptr %0, { i64, [4 x i8] } %ua.load203) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.merge.302: ; preds = %dispatch.case.304, %dispatch.default.303 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.303: ; preds = %match.arm.46 + store { ptr, i64 } { ptr @str.332, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.302 + +dispatch.case.304: ; preds = %match.arm.46 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load <3 x float>, ptr %ua.ptr207, align 16 + %callN = call { ptr, i64 } @vector_to_string__vec_3_f32(ptr %0, <3 x float> %ua.load208) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.302 + +dispatch.merge.310: ; preds = %dispatch.case.319, %dispatch.case.318, %dispatch.case.317, %dispatch.case.316, %dispatch.case.315, %dispatch.case.314, %dispatch.case.313, %dispatch.case.312, %dispatch.default.311 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.311: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.333, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.case.312: ; preds = %match.arm.47 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load [4 x i64], ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.case.313: ; preds = %match.arm.47 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.case.314: ; preds = %match.arm.47 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load [8 x i64], ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.case.315: ; preds = %match.arm.47 + %ua.raw223 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr224 = inttoptr i64 %ua.raw223 to ptr + %ua.load225 = load [64 x i8], ptr %ua.ptr224, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load225) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.case.316: ; preds = %match.arm.47 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load [64 x i64], ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.case.317: ; preds = %match.arm.47 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr232 = inttoptr i64 %ua.raw231 to ptr + %ua.load233 = load [16 x float], ptr %ua.ptr232, align 4 + %callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load233) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.case.318: ; preds = %match.arm.47 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr236 = inttoptr i64 %ua.raw235 to ptr + %ua.load237 = load [1 x { i64, i64 }], ptr %ua.ptr236, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load237) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.case.319: ; preds = %match.arm.47 + %ua.raw239 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr240 = inttoptr i64 %ua.raw239 to ptr + %ua.load241 = load [5 x float], ptr %ua.ptr240, align 4 + %callN = call { ptr, i64 } @array_to_string__AR_5_f32(ptr %0, [5 x float] %ua.load241) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.310 + +dispatch.merge.360: ; preds = %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.default.361 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.361: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.334, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.360 + +dispatch.case.362: ; preds = %match.arm.48 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr245 = inttoptr i64 %ua.raw244 to ptr + %ua.load246 = load { ptr, i64 }, ptr %ua.ptr245, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load246) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.360 + +dispatch.case.363: ; preds = %match.arm.48 + %ua.raw248 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr249 = inttoptr i64 %ua.raw248 to ptr + %ua.load250 = load { ptr, i64 }, ptr %ua.ptr249, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load250) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.360 + +dispatch.case.364: ; preds = %match.arm.48 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr253 = inttoptr i64 %ua.raw252 to ptr + %ua.load254 = load { ptr, i64 }, ptr %ua.ptr253, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load254) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.360 + +dispatch.case.365: ; preds = %match.arm.48 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr257 = inttoptr i64 %ua.raw256 to ptr + %ua.load258 = load { ptr, i64 }, ptr %ua.ptr257, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load258) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.360 + +dispatch.case.366: ; preds = %match.arm.48 + %ua.raw260 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr261 = inttoptr i64 %ua.raw260 to ptr + %ua.load262 = load { ptr, i64 }, ptr %ua.ptr261, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load262) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.360 + +dispatch.merge.392: ; preds = %dispatch.case.430, %dispatch.case.429, %dispatch.case.428, %dispatch.case.427, %dispatch.case.426, %dispatch.case.425, %dispatch.case.424, %dispatch.case.423, %dispatch.case.422, %dispatch.case.421, %dispatch.case.420, %dispatch.case.419, %dispatch.case.418, %dispatch.case.417, %dispatch.case.416, %dispatch.case.415, %dispatch.case.414, %dispatch.case.413, %dispatch.case.412, %dispatch.case.411, %dispatch.case.410, %dispatch.case.409, %dispatch.case.408, %dispatch.case.407, %dispatch.case.406, %dispatch.case.405, %dispatch.case.404, %dispatch.case.403, %dispatch.case.402, %dispatch.case.401, %dispatch.case.400, %dispatch.case.399, %dispatch.case.398, %dispatch.case.397, %dispatch.case.396, %dispatch.case.395, %dispatch.case.394, %dispatch.default.393 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.393: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.335, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.394: ; preds = %match.arm.49 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw265 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.242: ; preds = %match.arm.49 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp155) +dispatch.case.395: ; preds = %match.arm.49 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.243: ; preds = %match.arm.49 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp158) +dispatch.case.396: ; preds = %match.arm.49 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.244: ; preds = %match.arm.49 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp161) +dispatch.case.397: ; preds = %match.arm.49 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.245: ; preds = %match.arm.49 - %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 - %iNp164 = inttoptr i64 %ua.raw163 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp164) +dispatch.case.398: ; preds = %match.arm.49 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp277) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.246: ; preds = %match.arm.49 - %ua.raw166 = extractvalue { i64, i64 } %loadN, 1 - %iNp167 = inttoptr i64 %ua.raw166 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp167) +dispatch.case.399: ; preds = %match.arm.49 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp280) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.247: ; preds = %match.arm.49 - %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 - %iNp170 = inttoptr i64 %ua.raw169 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp170) +dispatch.case.400: ; preds = %match.arm.49 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp283) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.248: ; preds = %match.arm.49 - %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 - %iNp173 = inttoptr i64 %ua.raw172 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp173) +dispatch.case.401: ; preds = %match.arm.49 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp286) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.249: ; preds = %match.arm.49 - %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 - %iNp176 = inttoptr i64 %ua.raw175 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp176) +dispatch.case.402: ; preds = %match.arm.49 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp289) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.250: ; preds = %match.arm.49 - %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 - %iNp179 = inttoptr i64 %ua.raw178 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp179) +dispatch.case.403: ; preds = %match.arm.49 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp292) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.251: ; preds = %match.arm.49 - %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 - %iNp182 = inttoptr i64 %ua.raw181 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp182) +dispatch.case.404: ; preds = %match.arm.49 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp295) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.252: ; preds = %match.arm.49 - %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 - %iNp185 = inttoptr i64 %ua.raw184 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Vec3(ptr %0, ptr %iNp185) +dispatch.case.405: ; preds = %match.arm.49 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp298) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.253: ; preds = %match.arm.49 - %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 - %iNp188 = inttoptr i64 %ua.raw187 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp188) +dispatch.case.406: ; preds = %match.arm.49 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp301) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.254: ; preds = %match.arm.49 - %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 - %iNp191 = inttoptr i64 %ua.raw190 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp191) +dispatch.case.407: ; preds = %match.arm.49 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp304) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.255: ; preds = %match.arm.49 - %ua.raw193 = extractvalue { i64, i64 } %loadN, 1 - %iNp194 = inttoptr i64 %ua.raw193 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp194) +dispatch.case.408: ; preds = %match.arm.49 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp307) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.256: ; preds = %match.arm.49 - %ua.raw196 = extractvalue { i64, i64 } %loadN, 1 - %iNp197 = inttoptr i64 %ua.raw196 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp197) +dispatch.case.409: ; preds = %match.arm.49 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp310) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.257: ; preds = %match.arm.49 - %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 - %iNp200 = inttoptr i64 %ua.raw199 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp200) +dispatch.case.410: ; preds = %match.arm.49 + %ua.raw312 = extractvalue { i64, i64 } %loadN, 1 + %iNp313 = inttoptr i64 %ua.raw312 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp313) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.258: ; preds = %match.arm.49 - %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 - %iNp203 = inttoptr i64 %ua.raw202 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp203) +dispatch.case.411: ; preds = %match.arm.49 + %ua.raw315 = extractvalue { i64, i64 } %loadN, 1 + %iNp316 = inttoptr i64 %ua.raw315 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp316) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.259: ; preds = %match.arm.49 - %ua.raw205 = extractvalue { i64, i64 } %loadN, 1 - %iNp206 = inttoptr i64 %ua.raw205 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp206) +dispatch.case.412: ; preds = %match.arm.49 + %ua.raw318 = extractvalue { i64, i64 } %loadN, 1 + %iNp319 = inttoptr i64 %ua.raw318 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp319) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.260: ; preds = %match.arm.49 - %ua.raw208 = extractvalue { i64, i64 } %loadN, 1 - %iNp209 = inttoptr i64 %ua.raw208 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_vec_3_f32(ptr %0, ptr %iNp209) +dispatch.case.413: ; preds = %match.arm.49 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %iNp322 = inttoptr i64 %ua.raw321 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp322) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.261: ; preds = %match.arm.49 - %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 - %iNp212 = inttoptr i64 %ua.raw211 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_f32(ptr %0, ptr %iNp212) +dispatch.case.414: ; preds = %match.arm.49 + %ua.raw324 = extractvalue { i64, i64 } %loadN, 1 + %iNp325 = inttoptr i64 %ua.raw324 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp325) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.262: ; preds = %match.arm.49 - %ua.raw214 = extractvalue { i64, i64 } %loadN, 1 - %iNp215 = inttoptr i64 %ua.raw214 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Foo(ptr %0, ptr %iNp215) +dispatch.case.415: ; preds = %match.arm.49 + %ua.raw327 = extractvalue { i64, i64 } %loadN, 1 + %iNp328 = inttoptr i64 %ua.raw327 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp328) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.263: ; preds = %match.arm.49 - %ua.raw217 = extractvalue { i64, i64 } %loadN, 1 - %iNp218 = inttoptr i64 %ua.raw217 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp218) +dispatch.case.416: ; preds = %match.arm.49 + %ua.raw330 = extractvalue { i64, i64 } %loadN, 1 + %iNp331 = inttoptr i64 %ua.raw330 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp331) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 -dispatch.case.264: ; preds = %match.arm.49 - %ua.raw220 = extractvalue { i64, i64 } %loadN, 1 - %iNp221 = inttoptr i64 %ua.raw220 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Sx__f32(ptr %0, ptr %iNp221) +dispatch.case.417: ; preds = %match.arm.49 + %ua.raw333 = extractvalue { i64, i64 } %loadN, 1 + %iNp334 = inttoptr i64 %ua.raw333 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp334) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.239 + br label %dispatch.merge.392 + +dispatch.case.418: ; preds = %match.arm.49 + %ua.raw336 = extractvalue { i64, i64 } %loadN, 1 + %iNp337 = inttoptr i64 %ua.raw336 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp337) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.419: ; preds = %match.arm.49 + %ua.raw339 = extractvalue { i64, i64 } %loadN, 1 + %iNp340 = inttoptr i64 %ua.raw339 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Vec3(ptr %0, ptr %iNp340) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.420: ; preds = %match.arm.49 + %ua.raw342 = extractvalue { i64, i64 } %loadN, 1 + %iNp343 = inttoptr i64 %ua.raw342 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp343) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.421: ; preds = %match.arm.49 + %ua.raw345 = extractvalue { i64, i64 } %loadN, 1 + %iNp346 = inttoptr i64 %ua.raw345 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp346) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.422: ; preds = %match.arm.49 + %ua.raw348 = extractvalue { i64, i64 } %loadN, 1 + %iNp349 = inttoptr i64 %ua.raw348 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp349) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.423: ; preds = %match.arm.49 + %ua.raw351 = extractvalue { i64, i64 } %loadN, 1 + %iNp352 = inttoptr i64 %ua.raw351 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp352) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.424: ; preds = %match.arm.49 + %ua.raw354 = extractvalue { i64, i64 } %loadN, 1 + %iNp355 = inttoptr i64 %ua.raw354 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp355) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.425: ; preds = %match.arm.49 + %ua.raw357 = extractvalue { i64, i64 } %loadN, 1 + %iNp358 = inttoptr i64 %ua.raw357 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp358) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.426: ; preds = %match.arm.49 + %ua.raw360 = extractvalue { i64, i64 } %loadN, 1 + %iNp361 = inttoptr i64 %ua.raw360 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_vec_3_f32(ptr %0, ptr %iNp361) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.427: ; preds = %match.arm.49 + %ua.raw363 = extractvalue { i64, i64 } %loadN, 1 + %iNp364 = inttoptr i64 %ua.raw363 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_f32(ptr %0, ptr %iNp364) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.428: ; preds = %match.arm.49 + %ua.raw366 = extractvalue { i64, i64 } %loadN, 1 + %iNp367 = inttoptr i64 %ua.raw366 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Foo(ptr %0, ptr %iNp367) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.429: ; preds = %match.arm.49 + %ua.raw369 = extractvalue { i64, i64 } %loadN, 1 + %iNp370 = inttoptr i64 %ua.raw369 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp370) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.case.430: ; preds = %match.arm.49 + %ua.raw372 = extractvalue { i64, i64 } %loadN, 1 + %iNp373 = inttoptr i64 %ua.raw372 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sx__f32(ptr %0, ptr %iNp373) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.392 + +dispatch.merge.555: ; preds = %dispatch.case.560, %dispatch.case.559, %dispatch.case.558, %dispatch.case.557, %dispatch.default.556 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.556: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.336, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.555 + +dispatch.case.557: ; preds = %match.arm.50 + %ua.raw376 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr377 = inttoptr i64 %ua.raw376 to ptr + %ua.load378 = load { { i32 }, i1 }, ptr %ua.ptr377, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load378) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.555 + +dispatch.case.558: ; preds = %match.arm.50 + %ua.raw380 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr381 = inttoptr i64 %ua.raw380 to ptr + %ua.load382 = load { { ptr, i64 }, i1 }, ptr %ua.ptr381, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load382) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.555 + +dispatch.case.559: ; preds = %match.arm.50 + %ua.raw384 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr385 = inttoptr i64 %ua.raw384 to ptr + %ua.load386 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr385, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load386) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.555 + +dispatch.case.560: ; preds = %match.arm.50 + %ua.raw388 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr389 = inttoptr i64 %ua.raw388 to ptr + %ua.load390 = load { [64 x i8], i1 }, ptr %ua.ptr389, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load390) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.555 } ; Function Attrs: nounwind @@ -1899,7 +2714,7 @@ 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.129, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.337, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1995,7 +2810,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, 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 @@ -2003,7 +2818,7 @@ if.then.12: ; preds = %if.then.9 %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.131, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, 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 @@ -2013,13 +2828,13 @@ if.then.12: ; preds = %if.then.9 %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.132, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.341, 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 @@ -2027,7 +2842,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.134, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.342, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -2041,7 +2856,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, 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 @@ -2049,7 +2864,7 @@ if.then.23: ; preds = %if.else.10 %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.136, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.344, 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 @@ -2060,7 +2875,7 @@ if.then.23: ; preds = %if.else.10 %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.137, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2117,7 +2932,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, 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 @@ -2125,7 +2940,7 @@ if.then.32: ; preds = %if.then.29 %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.139, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.347, 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 @@ -2136,7 +2951,7 @@ if.then.32: ; preds = %if.then.29 %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.140, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.348, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2156,7 +2971,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.349, 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 @@ -2164,7 +2979,7 @@ if.then.35: ; preds = %while.exit.2 %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.142, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.350, 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 @@ -2175,7 +2990,7 @@ if.then.35: ; preds = %while.exit.2 %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.143, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.351, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2252,6 +3067,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind declare void @Mat4.identity(ptr sret({ [16 x float] }), ptr) #0 @@ -2429,7 +3982,7 @@ entry: define internal void @print__ct_saf3b53dfd1590ed__pack_Vec3(ptr %0, { <3 x float> } %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.144, i64 7 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.352, i64 7 }, ptr %alloca, align 8 %allocaN = alloca { <3 x float> }, align 16 store { <3 x float> } %1, ptr %allocaN, align 16 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2437,7 +3990,7 @@ entry: %ba.tmp = alloca { <3 x float> }, align 16 store { <3 x float> } %load, ptr %ba.tmp, align 16 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 42, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 98, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2447,7 +4000,7 @@ entry: %gepN = getelementptr inbounds { 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.145, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.353, 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 4) @@ -2458,7 +4011,7 @@ entry: %ba.tmp12 = alloca { <3 x float> }, align 16 store { <3 x float> } %loadN, ptr %ba.tmp12, align 16 %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 - %ba.val14 = insertvalue { i64, i64 } { i64 42, i64 undef }, i64 %ba.p2i13, 1 + %ba.val14 = insertvalue { i64, i64 } { i64 98, i64 undef }, i64 %ba.p2i13, 1 %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val14) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2477,7 +4030,7 @@ entry: ; 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.146, i64 7 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.354, i64 7 }) ret { ptr, i64 } %call } @@ -2485,7 +4038,7 @@ entry: define internal void @print__ct_s962c60eb1430613f__pack_vec_3_f32(ptr %0, <3 x float> %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.147, i64 7 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.355, i64 7 }, ptr %alloca, align 8 %allocaN = alloca <3 x float>, align 16 store <3 x float> %1, ptr %allocaN, align 16 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2493,7 +4046,7 @@ entry: %ba.tmp = alloca <3 x float>, align 16 store <3 x float> %load, ptr %ba.tmp, align 16 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 96, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2503,7 +4056,7 @@ entry: %gepN = getelementptr inbounds { 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.148, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.356, 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 4) @@ -2514,7 +4067,7 @@ entry: %ba.tmp12 = alloca <3 x float>, align 16 store <3 x float> %loadN, ptr %ba.tmp12, align 16 %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 - %ba.val14 = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i13, 1 + %ba.val14 = insertvalue { i64, i64 } { i64 96, i64 undef }, i64 %ba.p2i13, 1 %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val14) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2533,7 +4086,7 @@ entry: ; 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.149, i64 7 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.357, i64 7 }) ret { ptr, i64 } %call } @@ -2541,7 +4094,7 @@ entry: define internal void @print__ct_s549467baf058e667__pack_AR_5_f32(ptr %0, [5 x float] %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.150, i64 9 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.358, i64 9 }, ptr %alloca, align 8 %allocaN = alloca [5 x float], align 4 store [5 x float] %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2549,7 +4102,7 @@ entry: %ba.tmp = alloca [5 x float], align 4 store [5 x float] %load, ptr %ba.tmp, align 4 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 59, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 113, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2559,7 +4112,7 @@ entry: %gepN = getelementptr inbounds { 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.151, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.359, 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 6) @@ -2570,7 +4123,7 @@ entry: %ba.tmp12 = alloca [5 x float], align 4 store [5 x float] %loadN, ptr %ba.tmp12, align 4 %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 - %ba.val14 = insertvalue { i64, i64 } { i64 59, i64 undef }, i64 %ba.p2i13, 1 + %ba.val14 = insertvalue { i64, i64 } { i64 113, i64 undef }, i64 %ba.p2i13, 1 %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val14) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2589,7 +4142,7 @@ entry: ; 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.152, i64 9 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.360, i64 9 }) ret { ptr, i64 } %call } @@ -2597,7 +4150,7 @@ entry: define internal void @print__ct_sd91eb2e81c05dcd4__pack_Foo(ptr %0, { i32, i32 } %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.153, i64 9 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.361, i64 9 }, ptr %alloca, align 8 %allocaN = alloca { i32, i32 }, align 8 store { i32, i32 } %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2605,7 +4158,7 @@ entry: %ba.tmp = alloca { i32, i32 }, align 8 store { i32, i32 } %load, ptr %ba.tmp, align 4 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 44, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 100, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2615,7 +4168,7 @@ entry: %gepN = getelementptr inbounds { 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.154, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.362, 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 6) @@ -2626,7 +4179,7 @@ entry: %ba.tmp12 = alloca { i32, i32 }, align 8 store { i32, i32 } %loadN, ptr %ba.tmp12, align 4 %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 - %ba.val14 = insertvalue { i64, i64 } { i64 44, i64 undef }, i64 %ba.p2i13, 1 + %ba.val14 = insertvalue { i64, i64 } { i64 100, i64 undef }, i64 %ba.p2i13, 1 %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val14) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2645,7 +4198,7 @@ entry: ; 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.155, i64 9 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.363, i64 9 }) ret { ptr, i64 } %call } @@ -2653,7 +4206,7 @@ entry: define internal void @print__ct_s3038067ddd716595__pack_vec_3_f32(ptr %0, <3 x float> %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.156, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.364, i64 8 }, ptr %alloca, align 8 %allocaN = alloca <3 x float>, align 16 store <3 x float> %1, ptr %allocaN, align 16 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2661,7 +4214,7 @@ entry: %ba.tmp = alloca <3 x float>, align 16 store <3 x float> %load, ptr %ba.tmp, align 16 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 96, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2671,7 +4224,7 @@ entry: %gepN = getelementptr inbounds { 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.157, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.365, 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) @@ -2682,7 +4235,7 @@ entry: %ba.tmp12 = alloca <3 x float>, align 16 store <3 x float> %loadN, ptr %ba.tmp12, align 16 %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 - %ba.val14 = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i13, 1 + %ba.val14 = insertvalue { i64, i64 } { i64 96, i64 undef }, i64 %ba.p2i13, 1 %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val14) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2701,7 +4254,7 @@ entry: ; 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.158, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.366, i64 8 }) ret { ptr, i64 } %call } @@ -2709,7 +4262,7 @@ entry: define internal void @print__ct_sb50fffa856c31fe8__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.159, i64 9 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.367, i64 9 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2726,7 +4279,7 @@ entry: %gepN = getelementptr inbounds { 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.160, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.368, 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 6) @@ -2755,7 +4308,7 @@ entry: ; 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.161, i64 9 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.369, i64 9 }) ret { ptr, i64 } %call } @@ -2763,7 +4316,7 @@ entry: define internal void @print__ct_sd243afec30847211__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.162, i64 10 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.370, i64 10 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2780,7 +4333,7 @@ entry: %gepN = getelementptr inbounds { 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.163, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.371, 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 7) @@ -2809,7 +4362,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_6(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.164, i64 10 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.372, i64 10 }) ret { ptr, i64 } %call } @@ -2817,7 +4370,7 @@ entry: define internal void @print__ct_s1e80f4429411a63__pack_vec_3_f32(ptr %0, <3 x float> %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.165, i64 11 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.373, i64 11 }, ptr %alloca, align 8 %allocaN = alloca <3 x float>, align 16 store <3 x float> %1, ptr %allocaN, align 16 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2825,7 +4378,7 @@ entry: %ba.tmp = alloca <3 x float>, align 16 store <3 x float> %load, ptr %ba.tmp, align 16 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 96, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2835,7 +4388,7 @@ entry: %gepN = getelementptr inbounds { 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.166, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.374, 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 8) @@ -2846,7 +4399,7 @@ entry: %ba.tmp12 = alloca <3 x float>, align 16 store <3 x float> %loadN, ptr %ba.tmp12, align 16 %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 - %ba.val14 = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i13, 1 + %ba.val14 = insertvalue { i64, i64 } { i64 96, i64 undef }, i64 %ba.p2i13, 1 %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val14) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2865,7 +4418,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_7(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.167, i64 11 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.375, i64 11 }) ret { ptr, i64 } %call } @@ -2873,7 +4426,7 @@ entry: define internal void @print__ct_sd428128013c58f8b__pack_vec_3_f32(ptr %0, <3 x float> %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.168, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.376, i64 8 }, ptr %alloca, align 8 %allocaN = alloca <3 x float>, align 16 store <3 x float> %1, ptr %allocaN, align 16 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2881,7 +4434,7 @@ entry: %ba.tmp = alloca <3 x float>, align 16 store <3 x float> %load, ptr %ba.tmp, align 16 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 96, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2891,7 +4444,7 @@ entry: %gepN = getelementptr inbounds { 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.169, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.377, 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) @@ -2902,7 +4455,7 @@ entry: %ba.tmp12 = alloca <3 x float>, align 16 store <3 x float> %loadN, ptr %ba.tmp12, align 16 %ba.p2i13 = ptrtoint ptr %ba.tmp12 to i64 - %ba.val14 = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i13, 1 + %ba.val14 = insertvalue { i64, i64 } { i64 96, i64 undef }, i64 %ba.p2i13, 1 %callN = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val14) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %callN) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2921,7 +4474,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_8(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.170, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.378, i64 8 }) ret { ptr, i64 } %call } @@ -2938,7 +4491,7 @@ entry: define internal void @print__ct_sa2a846ee0ce9045d__pack_f64(ptr %0, double %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.171, i64 12 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.379, i64 12 }, ptr %alloca, align 8 %allocaN = alloca double, align 8 store double %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2954,7 +4507,7 @@ entry: %gepN = getelementptr inbounds { 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.172, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.380, 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 9) @@ -2982,7 +4535,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_9(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.173, i64 12 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.381, i64 12 }) ret { ptr, i64 } %call } @@ -2990,7 +4543,7 @@ entry: define internal void @print__ct_sbc6305862a3a863d__pack_Sx__f32(ptr %0, { i64, [4 x i8] } %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.174, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.382, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { i64, [4 x i8] }, align 8 store { i64, [4 x i8] } %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2998,7 +4551,7 @@ entry: %ba.tmp = alloca { i64, [4 x i8] }, align 8 store { i64, [4 x i8] } %load, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 63, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 117, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -3008,13 +4561,13 @@ entry: %gepN = getelementptr inbounds { 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.175, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.383, i64 0 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { i64, [4 x i8] }, ptr %allocaN, align 8 %ba.tmp9 = alloca { i64, [4 x i8] }, align 8 store { i64, [4 x i8] } %loadN, ptr %ba.tmp9, align 8 %ba.p2i10 = ptrtoint ptr %ba.tmp9 to i64 - %ba.val11 = insertvalue { i64, i64 } { i64 63, i64 undef }, i64 %ba.p2i10, 1 + %ba.val11 = insertvalue { i64, i64 } { i64 117, i64 undef }, i64 %ba.p2i10, 1 %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val11) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -3033,7 +4586,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_10(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.176, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.384, i64 3 }) ret { ptr, i64 } %call } @@ -3041,7 +4594,7 @@ entry: define internal void @print__ct_sbc6305862a3a863d__pack_s64(ptr %0, i64 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.177, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.385, i64 3 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -3056,7 +4609,7 @@ entry: %gepN = getelementptr inbounds { 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.178, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.386, i64 0 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ba.val9 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %loadN, 1 @@ -3078,7 +4631,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_11(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.179, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.387, i64 3 }) ret { ptr, i64 } %call } @@ -3089,35 +4642,35 @@ entry: %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.180, i64 15 }, { ptr, i64 } { ptr @str.181, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.388, i64 15 }, { ptr, i64 } { ptr @str.389, 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.111 + br label %while.hdr.127 -while.hdr.111: ; preds = %fv.merge, %entry +while.hdr.127: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.112, label %while.exit.113 + br i1 %icmp, label %while.body.128, label %while.exit.129 -while.body.112: ; preds = %while.hdr.111 +while.body.128: ; preds = %while.hdr.127 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.114, label %if.merge.115 + br i1 %icmpN, label %if.then.130, label %if.merge.131 -while.exit.113: ; preds = %while.hdr.111 +while.exit.129: ; preds = %while.hdr.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.182, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.390, i64 1 }) ret { ptr, i64 } %callN -if.then.114: ; preds = %while.body.112 +if.then.130: ; preds = %while.body.128 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.183, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.115 + br label %if.merge.131 -if.merge.115: ; preds = %if.then.114, %while.body.112 +if.merge.131: ; preds = %if.then.130, %while.body.128 %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 @@ -3125,7 +4678,7 @@ if.merge.115: ; preds = %if.then.114, %while %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.187, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.395, 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 @@ -3145,31 +4698,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.111 + br label %while.hdr.127 -fv.default: ; preds = %if.merge.115 +fv.default: ; preds = %if.merge.131 br label %fv.merge -fv.case: ; preds = %if.merge.115 +fv.case: ; preds = %if.merge.131 %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.115 +fv.case17: ; preds = %if.merge.131 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.115 +fv.case20: ; preds = %if.merge.131 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.115 +fv.case24: ; preds = %if.merge.131 %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 @@ -3182,43 +4735,43 @@ 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.188, i64 10 }, { ptr, i64 } { ptr @str.189, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.396, i64 10 }, { ptr, i64 } { ptr @str.397, 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.116 + br label %while.hdr.132 -while.hdr.116: ; preds = %if.merge.120, %entry +while.hdr.132: ; preds = %if.merge.136, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.117, label %while.exit.118 + br i1 %icmp, label %while.body.133, label %while.exit.134 -while.body.117: ; preds = %while.hdr.116 +while.body.133: ; preds = %while.hdr.132 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.119, label %if.merge.120 + br i1 %icmpN, label %if.then.135, label %if.merge.136 -while.exit.118: ; preds = %while.hdr.116 +while.exit.134: ; preds = %while.hdr.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.190, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.398, i64 1 }) ret { ptr, i64 } %callN -if.then.119: ; preds = %while.body.117 +if.then.135: ; preds = %while.body.133 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.191, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.399, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.120 + br label %if.merge.136 -if.merge.120: ; preds = %if.then.119, %while.body.117 +if.merge.136: ; preds = %if.then.135, %while.body.133 %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.192, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.400, 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.193, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.401, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -3229,7 +4782,7 @@ if.merge.120: ; preds = %if.then.119, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.116 + br label %while.hdr.132 } ; Function Attrs: nounwind @@ -3237,43 +4790,43 @@ 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.194, i64 3 }, { ptr, i64 } { ptr @str.195, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.402, i64 3 }, { ptr, i64 } { ptr @str.403, 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.121 + br label %while.hdr.137 -while.hdr.121: ; preds = %fv.merge, %entry +while.hdr.137: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.122, label %while.exit.123 + br i1 %icmp, label %while.body.138, label %while.exit.139 -while.body.122: ; preds = %while.hdr.121 +while.body.138: ; preds = %while.hdr.137 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.124, label %if.merge.125 + br i1 %icmpN, label %if.then.140, label %if.merge.141 -while.exit.123: ; preds = %while.hdr.121 +while.exit.139: ; preds = %while.hdr.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.196, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.404, i64 1 }) ret { ptr, i64 } %callN -if.then.124: ; preds = %while.body.122 +if.then.140: ; preds = %while.body.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.197, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.405, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.125 + br label %if.merge.141 -if.merge.125: ; preds = %if.then.124, %while.body.122 +if.merge.141: ; preds = %if.then.140, %while.body.138 %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.199, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.407, 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.200, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, 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 @@ -3290,12 +4843,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.121 + br label %while.hdr.137 -fv.default: ; preds = %if.merge.125 +fv.default: ; preds = %if.merge.141 br label %fv.merge -fv.case: ; preds = %if.merge.125 +fv.case: ; preds = %if.merge.141 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -3306,43 +4859,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.201, i64 10 }, { ptr, i64 } { ptr @str.202, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.409, i64 10 }, { ptr, i64 } { ptr @str.410, 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.126 + br label %while.hdr.142 -while.hdr.126: ; preds = %fv.merge, %entry +while.hdr.142: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.127, label %while.exit.128 + br i1 %icmp, label %while.body.143, label %while.exit.144 -while.body.127: ; preds = %while.hdr.126 +while.body.143: ; preds = %while.hdr.142 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.129, label %if.merge.130 + br i1 %icmpN, label %if.then.145, label %if.merge.146 -while.exit.128: ; preds = %while.hdr.126 +while.exit.144: ; preds = %while.hdr.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, i64 1 }) ret { ptr, i64 } %callN -if.then.129: ; preds = %while.body.127 +if.then.145: ; preds = %while.body.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.204, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.130 + br label %if.merge.146 -if.merge.130: ; preds = %if.then.129, %while.body.127 +if.merge.146: ; preds = %if.then.145, %while.body.143 %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.207, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.415, 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.208, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.416, 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 @@ -3360,18 +4913,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.126 + br label %while.hdr.142 -fv.default: ; preds = %if.merge.130 +fv.default: ; preds = %if.merge.146 br label %fv.merge -fv.case: ; preds = %if.merge.130 +fv.case: ; preds = %if.merge.146 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.130 +fv.case17: ; preds = %if.merge.146 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -3382,43 +4935,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.209, i64 9 }, { ptr, i64 } { ptr @str.210, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.417, i64 9 }, { ptr, i64 } { ptr @str.418, 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.131 + br label %while.hdr.147 -while.hdr.131: ; preds = %fv.merge, %entry +while.hdr.147: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.132, label %while.exit.133 + br i1 %icmp, label %while.body.148, label %while.exit.149 -while.body.132: ; preds = %while.hdr.131 +while.body.148: ; preds = %while.hdr.147 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.134, label %if.merge.135 + br i1 %icmpN, label %if.then.150, label %if.merge.151 -while.exit.133: ; preds = %while.hdr.131 +while.exit.149: ; preds = %while.hdr.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.211, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 1 }) ret { ptr, i64 } %callN -if.then.134: ; preds = %while.body.132 +if.then.150: ; preds = %while.body.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.135 + br label %if.merge.151 -if.merge.135: ; preds = %if.then.134, %while.body.132 +if.merge.151: ; preds = %if.then.150, %while.body.148 %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.216, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.424, 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.217, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.425, 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 @@ -3437,24 +4990,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.131 + br label %while.hdr.147 -fv.default: ; preds = %if.merge.135 +fv.default: ; preds = %if.merge.151 br label %fv.merge -fv.case: ; preds = %if.merge.135 +fv.case: ; preds = %if.merge.151 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.135 +fv.case17: ; preds = %if.merge.151 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.135 +fv.case21: ; preds = %if.merge.151 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -3467,43 +5020,43 @@ 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.218, i64 5 }, { ptr, i64 } { ptr @str.219, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.426, i64 5 }, { ptr, i64 } { ptr @str.427, 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.136 + br label %while.hdr.152 -while.hdr.136: ; preds = %fv.merge, %entry +while.hdr.152: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.137, label %while.exit.138 + br i1 %icmp, label %while.body.153, label %while.exit.154 -while.body.137: ; preds = %while.hdr.136 +while.body.153: ; preds = %while.hdr.152 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.139, label %if.merge.140 + br i1 %icmpN, label %if.then.155, label %if.merge.156 -while.exit.138: ; preds = %while.hdr.136 +while.exit.154: ; preds = %while.hdr.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.220, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.428, i64 1 }) ret { ptr, i64 } %callN -if.then.139: ; preds = %while.body.137 +if.then.155: ; preds = %while.body.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.221, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.429, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.140 + br label %if.merge.156 -if.merge.140: ; preds = %if.then.139, %while.body.137 +if.merge.156: ; preds = %if.then.155, %while.body.153 %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.225, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.433, 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.226, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.434, 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 @@ -3522,23 +5075,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.136 + br label %while.hdr.152 -fv.default: ; preds = %if.merge.140 +fv.default: ; preds = %if.merge.156 br label %fv.merge -fv.case: ; preds = %if.merge.140 +fv.case: ; preds = %if.merge.156 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.140 +fv.case17: ; preds = %if.merge.156 %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.140 +fv.case20: ; preds = %if.merge.156 %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 @@ -3551,43 +5104,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.227, i64 8 }, { ptr, i64 } { ptr @str.228, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.435, i64 8 }, { ptr, i64 } { ptr @str.436, 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.141 + br label %while.hdr.157 -while.hdr.141: ; preds = %fv.merge, %entry +while.hdr.157: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.142, label %while.exit.143 + br i1 %icmp, label %while.body.158, label %while.exit.159 -while.body.142: ; preds = %while.hdr.141 +while.body.158: ; preds = %while.hdr.157 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.144, label %if.merge.145 + br i1 %icmpN, label %if.then.160, label %if.merge.161 -while.exit.143: ; preds = %while.hdr.141 +while.exit.159: ; preds = %while.hdr.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.229, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.437, i64 1 }) ret { ptr, i64 } %callN -if.then.144: ; preds = %while.body.142 +if.then.160: ; preds = %while.body.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.230, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.438, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.145 + br label %if.merge.161 -if.merge.145: ; preds = %if.then.144, %while.body.142 +if.merge.161: ; preds = %if.then.160, %while.body.158 %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.234, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.442, 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.235, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.443, 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 @@ -3606,23 +5159,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.141 + br label %while.hdr.157 -fv.default: ; preds = %if.merge.145 +fv.default: ; preds = %if.merge.161 br label %fv.merge -fv.case: ; preds = %if.merge.145 +fv.case: ; preds = %if.merge.161 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.145 +fv.case17: ; preds = %if.merge.161 %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.145 +fv.case20: ; preds = %if.merge.161 %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 @@ -3634,43 +5187,43 @@ 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.236, i64 17 }, { ptr, i64 } { ptr @str.237, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.444, i64 17 }, { ptr, i64 } { ptr @str.445, 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.146 + br label %while.hdr.162 -while.hdr.146: ; preds = %fv.merge, %entry +while.hdr.162: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.147, label %while.exit.148 + br i1 %icmp, label %while.body.163, label %while.exit.164 -while.body.147: ; preds = %while.hdr.146 +while.body.163: ; preds = %while.hdr.162 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.149, label %if.merge.150 + br i1 %icmpN, label %if.then.165, label %if.merge.166 -while.exit.148: ; preds = %while.hdr.146 +while.exit.164: ; preds = %while.hdr.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.238, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.446, i64 1 }) ret { ptr, i64 } %callN -if.then.149: ; preds = %while.body.147 +if.then.165: ; preds = %while.body.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.239, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.447, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.150 + br label %if.merge.166 -if.merge.150: ; preds = %if.then.149, %while.body.147 +if.merge.166: ; preds = %if.then.165, %while.body.163 %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.244, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.452, 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.245, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.453, 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 @@ -3690,29 +5243,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.146 + br label %while.hdr.162 -fv.default: ; preds = %if.merge.150 +fv.default: ; preds = %if.merge.166 br label %fv.merge -fv.case: ; preds = %if.merge.150 +fv.case: ; preds = %if.merge.166 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.150 +fv.case17: ; preds = %if.merge.166 %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.150 +fv.case20: ; preds = %if.merge.166 %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.150 +fv.case23: ; preds = %if.merge.166 %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 @@ -3724,43 +5277,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.246, i64 7 }, { ptr, i64 } { ptr @str.247, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.454, i64 7 }, { ptr, i64 } { ptr @str.455, 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.151 + br label %while.hdr.167 -while.hdr.151: ; preds = %fv.merge, %entry +while.hdr.167: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.152, label %while.exit.153 + br i1 %icmp, label %while.body.168, label %while.exit.169 -while.body.152: ; preds = %while.hdr.151 +while.body.168: ; preds = %while.hdr.167 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.154, label %if.merge.155 + br i1 %icmpN, label %if.then.170, label %if.merge.171 -while.exit.153: ; preds = %while.hdr.151 +while.exit.169: ; preds = %while.hdr.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.248, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.456, i64 1 }) ret { ptr, i64 } %callN -if.then.154: ; preds = %while.body.152 +if.then.170: ; preds = %while.body.168 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.249, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.457, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.155 + br label %if.merge.171 -if.merge.155: ; preds = %if.then.154, %while.body.152 +if.merge.171: ; preds = %if.then.170, %while.body.168 %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.252, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.460, 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.253, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.461, 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 %alloca, align 8 @@ -3778,68 +5331,1437 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.151 + br label %while.hdr.167 -fv.default: ; preds = %if.merge.155 +fv.default: ; preds = %if.merge.171 br label %fv.merge -fv.case: ; preds = %if.merge.155 +fv.case: ; preds = %if.merge.171 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.155 +fv.case17: ; preds = %if.merge.171 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.462, i64 4 }, { ptr, i64 } { ptr @str.463, 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.172 + +while.hdr.172: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.173, label %while.exit.174 + +while.body.173: ; preds = %while.hdr.172 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.175, label %if.merge.176 + +while.exit.174: ; preds = %while.hdr.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.464, i64 1 }) + ret { ptr, i64 } %callN + +if.then.175: ; preds = %while.body.173 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.465, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.176 + +if.merge.176: ; preds = %if.then.175, %while.body.173 + %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.467, 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.468, 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.172 + +fv.default: ; preds = %if.merge.176 + br label %fv.merge + +fv.case: ; preds = %if.merge.176 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.469, i64 10 }, { ptr, i64 } { ptr @str.470, 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.177 + +while.hdr.177: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.178, label %while.exit.179 + +while.body.178: ; preds = %while.hdr.177 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.180, label %if.merge.181 + +while.exit.179: ; preds = %while.hdr.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.471, i64 1 }) + ret { ptr, i64 } %callN + +if.then.180: ; preds = %while.body.178 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.472, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.181 + +if.merge.181: ; preds = %if.then.180, %while.body.178 + %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.478, 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.479, 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.177 + +fv.default: ; preds = %if.merge.181 + br label %fv.merge + +fv.case: ; preds = %if.merge.181 + %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.181 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.181 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.181 + %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.181 + %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.480, i64 13 }, { ptr, i64 } { ptr @str.481, 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.182 + +while.hdr.182: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.183, label %while.exit.184 + +while.body.183: ; preds = %while.hdr.182 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.185, label %if.merge.186 + +while.exit.184: ; preds = %while.hdr.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.482, i64 1 }) + ret { ptr, i64 } %callN + +if.then.185: ; preds = %while.body.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.483, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.186 + +if.merge.186: ; preds = %if.then.185, %while.body.183 + %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.486, 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.487, 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.182 + +fv.default: ; preds = %if.merge.186 + br label %fv.merge + +fv.case: ; preds = %if.merge.186 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.186 + %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.488, i64 8 }, { ptr, i64 } { ptr @str.489, 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.187 + +while.hdr.187: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.188, label %while.exit.189 + +while.body.188: ; preds = %while.hdr.187 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.190, label %if.merge.191 + +while.exit.189: ; preds = %while.hdr.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.490, i64 1 }) + ret { ptr, i64 } %callN + +if.then.190: ; preds = %while.body.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.491, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.191 + +if.merge.191: ; preds = %if.then.190, %while.body.188 + %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.497, 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.498, 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.187 + +fv.default: ; preds = %if.merge.191 + br label %fv.merge + +fv.case: ; preds = %if.merge.191 + %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.191 + %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.191 + %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.191 + %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.191 + %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.499, i64 5 }, { ptr, i64 } { ptr @str.500, 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.192 + +while.hdr.192: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.193, label %while.exit.194 + +while.body.193: ; preds = %while.hdr.192 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.195, label %if.merge.196 + +while.exit.194: ; preds = %while.hdr.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.501, i64 1 }) + ret { ptr, i64 } %callN + +if.then.195: ; preds = %while.body.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.502, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.196 + +if.merge.196: ; preds = %if.then.195, %while.body.193 + %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.506, 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.507, 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.192 + +fv.default: ; preds = %if.merge.196 + br label %fv.merge + +fv.case: ; preds = %if.merge.196 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.196 + %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.196 + %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.508, i64 6 }, { ptr, i64 } { ptr @str.509, 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.197 + +while.hdr.197: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.198, label %while.exit.199 + +while.body.198: ; preds = %while.hdr.197 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.200, label %if.merge.201 + +while.exit.199: ; preds = %while.hdr.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.510, i64 1 }) + ret { ptr, i64 } %callN + +if.then.200: ; preds = %while.body.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.511, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.201 + +if.merge.201: ; preds = %if.then.200, %while.body.198 + %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.515, 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.516, 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.197 + +fv.default: ; preds = %if.merge.201 + br label %fv.merge + +fv.case: ; preds = %if.merge.201 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.201 + %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.201 + %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.517, i64 6 }, { ptr, i64 } { ptr @str.518, 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.202 + +while.hdr.202: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.203, label %while.exit.204 + +while.body.203: ; preds = %while.hdr.202 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.205, label %if.merge.206 + +while.exit.204: ; preds = %while.hdr.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.519, i64 1 }) + ret { ptr, i64 } %callN + +if.then.205: ; preds = %while.body.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.520, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.206 + +if.merge.206: ; preds = %if.then.205, %while.body.203 + %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.523, 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.524, 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.202 + +fv.default: ; preds = %if.merge.206 + br label %fv.merge + +fv.case: ; preds = %if.merge.206 + %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.206 + %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 54, 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.525, i64 4 }, { ptr, i64 } { ptr @str.526, 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.207 + +while.hdr.207: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.208, label %while.exit.209 + +while.body.208: ; preds = %while.hdr.207 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.210, label %if.merge.211 + +while.exit.209: ; preds = %while.hdr.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.527, i64 1 }) + ret { ptr, i64 } %callN + +if.then.210: ; preds = %while.body.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.528, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.211 + +if.merge.211: ; preds = %if.then.210, %while.body.208 + %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.532, 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.533, 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.207 + +fv.default: ; preds = %if.merge.211 + br label %fv.merge + +fv.case: ; preds = %if.merge.211 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.211 + %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.211 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.534, i64 6 }, { ptr, i64 } { ptr @str.535, 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.212 + +while.hdr.212: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.213, label %while.exit.214 + +while.body.213: ; preds = %while.hdr.212 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.215, label %if.merge.216 + +while.exit.214: ; preds = %while.hdr.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.536, i64 1 }) + ret { ptr, i64 } %callN + +if.then.215: ; preds = %while.body.213 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.537, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.216 + +if.merge.216: ; preds = %if.then.215, %while.body.213 + %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.541, 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.542, 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.212 + +fv.default: ; preds = %if.merge.216 + br label %fv.merge + +fv.case: ; preds = %if.merge.216 + %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.216 + %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.216 + %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 26, i64 undef }, i64 %ba.p2i23, 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.543, i64 12 }, { ptr, i64 } { ptr @str.544, 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.217 + +while.hdr.217: ; preds = %if.merge.221, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.218, label %while.exit.219 + +while.body.218: ; preds = %while.hdr.217 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.220, label %if.merge.221 + +while.exit.219: ; preds = %while.hdr.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.545, i64 1 }) + ret { ptr, i64 } %callN + +if.then.220: ; preds = %while.body.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.546, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.221 + +if.merge.221: ; preds = %if.then.220, %while.body.218 + %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.547, 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.548, 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.217 +} + +; 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.549, i64 8 }, { ptr, i64 } { ptr @str.550, 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.222 + +while.hdr.222: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.223, label %while.exit.224 + +while.body.223: ; preds = %while.hdr.222 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.225, label %if.merge.226 + +while.exit.224: ; preds = %while.hdr.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.551, i64 1 }) + ret { ptr, i64 } %callN + +if.then.225: ; preds = %while.body.223 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.552, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.226 + +if.merge.226: ; preds = %if.then.225, %while.body.223 + %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.556, 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.557, 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.222 + +fv.default: ; preds = %if.merge.226 + br label %fv.merge + +fv.case: ; preds = %if.merge.226 + %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.226 + %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.226 + %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.558, i64 7 }, { ptr, i64 } { ptr @str.559, 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.227 + +while.hdr.227: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.228, label %while.exit.229 + +while.body.228: ; preds = %while.hdr.227 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.230, label %if.merge.231 + +while.exit.229: ; preds = %while.hdr.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.560, i64 1 }) + ret { ptr, i64 } %callN + +if.then.230: ; preds = %while.body.228 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.561, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.231 + +if.merge.231: ; preds = %if.then.230, %while.body.228 + %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.565, 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.566, 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.227 + +fv.default: ; preds = %if.merge.231 + br label %fv.merge + +fv.case: ; preds = %if.merge.231 + %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.231 + %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.231 + %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 77, 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.567, i64 9 }, { ptr, i64 } { ptr @str.568, 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.232 + +while.hdr.232: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.233, label %while.exit.234 + +while.body.233: ; preds = %while.hdr.232 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.235, label %if.merge.236 + +while.exit.234: ; preds = %while.hdr.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.569, i64 1 }) + ret { ptr, i64 } %callN + +if.then.235: ; preds = %while.body.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.570, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.236 + +if.merge.236: ; preds = %if.then.235, %while.body.233 + %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.573, 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.574, 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.232 + +fv.default: ; preds = %if.merge.236 + br label %fv.merge + +fv.case: ; preds = %if.merge.236 + %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.236 + %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.575, i64 4 }, { ptr, i64 } { ptr @str.576, 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.237 + +while.hdr.237: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.238, label %while.exit.239 + +while.body.238: ; preds = %while.hdr.237 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.240, label %if.merge.241 + +while.exit.239: ; preds = %while.hdr.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.577, i64 1 }) + ret { ptr, i64 } %callN + +if.then.240: ; preds = %while.body.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.578, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.241 + +if.merge.241: ; preds = %if.then.240, %while.body.238 + %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.581, 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.582, 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.237 + +fv.default: ; preds = %if.merge.241 + br label %fv.merge + +fv.case: ; preds = %if.merge.241 + %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.241 + %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.583, i64 6 }, { ptr, i64 } { ptr @str.584, 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.242 + +while.hdr.242: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.243, label %while.exit.244 + +while.body.243: ; preds = %while.hdr.242 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.245, label %if.merge.246 + +while.exit.244: ; preds = %while.hdr.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.585, i64 1 }) + ret { ptr, i64 } %callN + +if.then.245: ; preds = %while.body.243 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.586, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.246 + +if.merge.246: ; preds = %if.then.245, %while.body.243 + %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.594, 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.595, 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.242 + +fv.default: ; preds = %if.merge.246 + br label %fv.merge + +fv.case: ; preds = %if.merge.246 + %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.246 + %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.246 + %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.246 + %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.246 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.246 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.246 + %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 81, 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.596, i64 6 }, { ptr, i64 } { ptr @str.597, 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.247 + +while.hdr.247: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.248, label %while.exit.249 + +while.body.248: ; preds = %while.hdr.247 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.250, label %if.merge.251 + +while.exit.249: ; preds = %while.hdr.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.598, i64 1 }) + ret { ptr, i64 } %callN + +if.then.250: ; preds = %while.body.248 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.599, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.251 + +if.merge.251: ; preds = %if.then.250, %while.body.248 + %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.604, 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.605, 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.247 + +fv.default: ; preds = %if.merge.251 + br label %fv.merge + +fv.case: ; preds = %if.merge.251 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.251 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.251 + %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.251 + %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__Mat4(ptr %0, { [16 x float] } %1) #0 { entry: %alloca = alloca { [16 x float] }, align 8 %ba.tmp = alloca [16 x float], align 4 store { [16 x float] } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.254, i64 4 }, { ptr, i64 } { ptr @str.255, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.606, i64 4 }, { ptr, i64 } { ptr @str.607, 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.156 + br label %while.hdr.252 -while.hdr.156: ; preds = %fv.merge, %entry +while.hdr.252: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.157, label %while.exit.158 + br i1 %icmp, label %while.body.253, label %while.exit.254 -while.body.157: ; preds = %while.hdr.156 +while.body.253: ; preds = %while.hdr.252 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.159, label %if.merge.160 + br i1 %icmpN, label %if.then.255, label %if.merge.256 -while.exit.158: ; preds = %while.hdr.156 +while.exit.254: ; preds = %while.hdr.252 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.256, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 1 }) ret { ptr, i64 } %callN -if.then.159: ; preds = %while.body.157 +if.then.255: ; preds = %while.body.253 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.257, i64 2 }) + %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 - br label %if.merge.160 + br label %if.merge.256 -if.merge.160: ; preds = %if.then.159, %while.body.157 +if.merge.256: ; preds = %if.then.255, %while.body.253 %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.259, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.611, 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.260, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { [16 x float] }, ptr %alloca, align 4 @@ -3856,16 +6778,16 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.156 + br label %while.hdr.252 -fv.default: ; preds = %if.merge.160 +fv.default: ; preds = %if.merge.256 br label %fv.merge -fv.case: ; preds = %if.merge.160 +fv.case: ; preds = %if.merge.256 %fv.field = extractvalue { [16 x float] } %loadN, 0 store [16 x float] %fv.field, ptr %ba.tmp, align 4 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1 + %fv.val = insertvalue { i64, i64 } { i64 93, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge } @@ -3874,43 +6796,43 @@ define internal { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %1 entry: %alloca = alloca { float, float }, align 8 store { float, float } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.261, i64 4 }, { ptr, i64 } { ptr @str.262, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.613, i64 4 }, { ptr, i64 } { ptr @str.614, 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.161 + br label %while.hdr.257 -while.hdr.161: ; preds = %fv.merge, %entry +while.hdr.257: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.162, label %while.exit.163 + br i1 %icmp, label %while.body.258, label %while.exit.259 -while.body.162: ; preds = %while.hdr.161 +while.body.258: ; preds = %while.hdr.257 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.164, label %if.merge.165 + br i1 %icmpN, label %if.then.260, label %if.merge.261 -while.exit.163: ; preds = %while.hdr.161 +while.exit.259: ; preds = %while.hdr.257 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.263, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 1 }) ret { ptr, i64 } %callN -if.then.164: ; preds = %while.body.162 +if.then.260: ; preds = %while.body.258 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.264, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.165 + br label %if.merge.261 -if.merge.165: ; preds = %if.then.164, %while.body.162 +if.merge.261: ; preds = %if.then.260, %while.body.258 %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.267, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.619, 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.268, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { float, float }, ptr %alloca, align 4 @@ -3928,19 +6850,19 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.161 + br label %while.hdr.257 -fv.default: ; preds = %if.merge.165 +fv.default: ; preds = %if.merge.261 br label %fv.merge -fv.case: ; preds = %if.merge.165 +fv.case: ; preds = %if.merge.261 %fv.field = extractvalue { float, float } %loadN, 0 %fNi32 = bitcast float %fv.field to i32 %zN = zext i32 %fNi32 to i64 %fv.val = insertvalue { i64, i64 } { i64 10, i64 undef }, i64 %zN, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.165 +fv.case17: ; preds = %if.merge.261 %fv.field18 = extractvalue { float, float } %loadN, 1 %fNi3219 = bitcast float %fv.field18 to i32 %zN = zext i32 %fNi3219 to i64 @@ -3954,43 +6876,43 @@ entry: %alloca = alloca { <3 x float> }, align 16 %ba.tmp = alloca <3 x float>, align 16 store { <3 x float> } %1, ptr %alloca, align 16 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.269, i64 11 }, { ptr, i64 } { ptr @str.270, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.621, i64 11 }, { ptr, i64 } { ptr @str.622, 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.166 + br label %while.hdr.262 -while.hdr.166: ; preds = %fv.merge, %entry +while.hdr.262: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.167, label %while.exit.168 + br i1 %icmp, label %while.body.263, label %while.exit.264 -while.body.167: ; preds = %while.hdr.166 +while.body.263: ; preds = %while.hdr.262 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.169, label %if.merge.170 + br i1 %icmpN, label %if.then.265, label %if.merge.266 -while.exit.168: ; preds = %while.hdr.166 +while.exit.264: ; preds = %while.hdr.262 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.271, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 1 }) ret { ptr, i64 } %callN -if.then.169: ; preds = %while.body.167 +if.then.265: ; preds = %while.body.263 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.272, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.170 + br label %if.merge.266 -if.merge.170: ; preds = %if.then.169, %while.body.167 +if.merge.266: ; preds = %if.then.265, %while.body.263 %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.274, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.626, 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.275, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.627, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { <3 x float> }, ptr %alloca, align 16 @@ -4007,16 +6929,16 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.166 + br label %while.hdr.262 -fv.default: ; preds = %if.merge.170 +fv.default: ; preds = %if.merge.266 br label %fv.merge -fv.case: ; preds = %if.merge.170 +fv.case: ; preds = %if.merge.266 %fv.field = extractvalue { <3 x float> } %loadN, 0 store <3 x float> %fv.field, ptr %ba.tmp, align 16 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1 + %fv.val = insertvalue { i64, i64 } { i64 96, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge } @@ -4026,43 +6948,43 @@ entry: %alloca = alloca { <3 x float> }, align 16 %ba.tmp = alloca <3 x float>, align 16 store { <3 x float> } %1, ptr %alloca, align 16 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.276, i64 4 }, { ptr, i64 } { ptr @str.277, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.628, i64 4 }, { ptr, i64 } { ptr @str.629, 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.171 + br label %while.hdr.267 -while.hdr.171: ; preds = %fv.merge, %entry +while.hdr.267: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.172, label %while.exit.173 + br i1 %icmp, label %while.body.268, label %while.exit.269 -while.body.172: ; preds = %while.hdr.171 +while.body.268: ; preds = %while.hdr.267 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.174, label %if.merge.175 + br i1 %icmpN, label %if.then.270, label %if.merge.271 -while.exit.173: ; preds = %while.hdr.171 +while.exit.269: ; preds = %while.hdr.267 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.278, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.630, i64 1 }) ret { ptr, i64 } %callN -if.then.174: ; preds = %while.body.172 +if.then.270: ; preds = %while.body.268 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.279, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.631, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.175 + br label %if.merge.271 -if.merge.175: ; preds = %if.then.174, %while.body.172 +if.merge.271: ; preds = %if.then.270, %while.body.268 %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.281, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.633, 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.282, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.634, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { <3 x float> }, ptr %alloca, align 16 @@ -4079,16 +7001,16 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.171 + br label %while.hdr.267 -fv.default: ; preds = %if.merge.175 +fv.default: ; preds = %if.merge.271 br label %fv.merge -fv.case: ; preds = %if.merge.175 +fv.case: ; preds = %if.merge.271 %fv.field = extractvalue { <3 x float> } %loadN, 0 store <3 x float> %fv.field, ptr %ba.tmp, align 16 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1 + %fv.val = insertvalue { i64, i64 } { i64 96, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge } @@ -4097,43 +7019,43 @@ define internal { ptr, i64 } @struct_to_string__Complex__u32(ptr %0, { i32, i32 entry: %alloca = alloca { i32, i32 }, align 8 store { i32, i32 } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.283, i64 12 }, { ptr, i64 } { ptr @str.284, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.635, i64 12 }, { ptr, i64 } { ptr @str.636, 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.176 + br label %while.hdr.272 -while.hdr.176: ; preds = %fv.merge, %entry +while.hdr.272: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.177, label %while.exit.178 + br i1 %icmp, label %while.body.273, label %while.exit.274 -while.body.177: ; preds = %while.hdr.176 +while.body.273: ; preds = %while.hdr.272 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.179, label %if.merge.180 + br i1 %icmpN, label %if.then.275, label %if.merge.276 -while.exit.178: ; preds = %while.hdr.176 +while.exit.274: ; preds = %while.hdr.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.285, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.637, i64 1 }) ret { ptr, i64 } %callN -if.then.179: ; preds = %while.body.177 +if.then.275: ; preds = %while.body.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.286, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.638, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.180 + br label %if.merge.276 -if.merge.180: ; preds = %if.then.179, %while.body.177 +if.merge.276: ; preds = %if.then.275, %while.body.273 %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.289, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.641, 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.290, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.642, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { i32, i32 }, ptr %alloca, align 4 @@ -4151,18 +7073,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.176 + br label %while.hdr.272 -fv.default: ; preds = %if.merge.180 +fv.default: ; preds = %if.merge.276 br label %fv.merge -fv.case: ; preds = %if.merge.180 +fv.case: ; preds = %if.merge.276 %fv.field = extractvalue { i32, i32 } %loadN, 0 %zN = zext i32 %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 8, i64 undef }, i64 %zN, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.180 +fv.case17: ; preds = %if.merge.276 %fv.field18 = extractvalue { i32, i32 } %loadN, 1 %zN = zext i32 %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 8, i64 undef }, i64 %zN, 1 @@ -4174,43 +7096,43 @@ define internal { ptr, i64 } @struct_to_string__Foo(ptr %0, { i32, i32 } %1) #0 entry: %alloca = alloca { i32, i32 }, align 8 store { i32, i32 } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.291, i64 3 }, { ptr, i64 } { ptr @str.292, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, i64 3 }, { ptr, i64 } { ptr @str.644, 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.181 + br label %while.hdr.277 -while.hdr.181: ; preds = %fv.merge, %entry +while.hdr.277: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.182, label %while.exit.183 + br i1 %icmp, label %while.body.278, label %while.exit.279 -while.body.182: ; preds = %while.hdr.181 +while.body.278: ; preds = %while.hdr.277 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.184, label %if.merge.185 + br i1 %icmpN, label %if.then.280, label %if.merge.281 -while.exit.183: ; preds = %while.hdr.181 +while.exit.279: ; preds = %while.hdr.277 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.293, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.645, i64 1 }) ret { ptr, i64 } %callN -if.then.184: ; preds = %while.body.182 +if.then.280: ; preds = %while.body.278 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.294, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.646, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.185 + br label %if.merge.281 -if.merge.185: ; preds = %if.then.184, %while.body.182 +if.merge.281: ; preds = %if.then.280, %while.body.278 %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.297, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.649, 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.298, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.650, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { i32, i32 }, ptr %alloca, align 4 @@ -4228,24 +7150,297 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.181 + br label %while.hdr.277 -fv.default: ; preds = %if.merge.185 +fv.default: ; preds = %if.merge.281 br label %fv.merge -fv.case: ; preds = %if.merge.185 +fv.case: ; preds = %if.merge.281 %fv.field = extractvalue { i32, i32 } %loadN, 0 %zN = zext i32 %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 8, i64 undef }, i64 %zN, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.185 +fv.case17: ; preds = %if.merge.281 %fv.field18 = extractvalue { i32, i32 } %loadN, 1 %zN = zext i32 %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 8, i64 undef }, i64 %zN, 1 br label %fv.merge } +; 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.656, 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.651, 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.290, label %if.merge.291 + +if.then.290: ; 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.658, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, 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.291 + +if.merge.291: ; preds = %if.then.290, %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.663, 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.659, 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.292, label %if.merge.293 + +if.then.292: ; 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.665, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.664, 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.293 + +if.merge.293: ; preds = %if.then.292, %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.673, 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.666, 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.294: ; 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.675, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.674, 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.295 + +if.merge.295: ; preds = %if.then.294, %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.294, label %if.merge.295 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.684, 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.676, 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.296, label %if.merge.297 + +if.then.296: ; 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.686, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.685, 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.297 + +if.merge.297: ; preds = %if.then.296, %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.693, 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.687, 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.298, label %if.merge.299 + +if.then.298: ; 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.695, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.694, 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.299 + +if.merge.299: ; preds = %if.then.298, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @enum_to_string__Sx__f32(ptr %0, { i64, [4 x i8] } %1) #0 { entry: @@ -4260,9 +7455,9 @@ entry: %allocaN = alloca i64, align 8 store i64 %etag, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 - %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.302, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.699, 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.299, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.696, i64 1 }, { ptr, i64 } %fn.load) %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8 %loadN = load { i64, [4 x i8] }, ptr %alloca, align 8 @@ -4272,16 +7467,16 @@ entry: i64 1, label %fv.case6 ] -if.then.189: ; preds = %fv.merge +if.then.300: ; 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.304, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.303, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.701, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.700, 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.190 + br label %if.merge.301 -if.merge.190: ; preds = %if.then.189, %fv.merge +if.merge.301: ; preds = %if.then.300, %fv.merge %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN @@ -4294,7 +7489,7 @@ fv.merge: ; preds = %fv.default, %fv.cas %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.189, label %if.merge.190 + br i1 %icmp, label %if.then.300, label %if.merge.301 fv.default: ; preds = %entry br label %fv.merge @@ -4323,33 +7518,33 @@ entry: %alloca = alloca <3 x float>, align 16 store <3 x float> %1, ptr %alloca, align 16 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.305, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.702, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.194 + br label %while.hdr.305 -while.hdr.194: ; preds = %if.merge.198, %entry +while.hdr.305: ; preds = %if.merge.309, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.195, label %while.exit.196 + br i1 %icmp, label %while.body.306, label %while.exit.307 -while.body.195: ; preds = %while.hdr.194 +while.body.306: ; preds = %while.hdr.305 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.197, label %if.merge.198 + br i1 %icmpN, label %if.then.308, label %if.merge.309 -while.exit.196: ; preds = %while.hdr.194 +while.exit.307: ; preds = %while.hdr.305 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.306, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.703, i64 1 }) ret { ptr, i64 } %call -if.then.197: ; preds = %while.body.195 +if.then.308: ; preds = %while.body.306 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.307, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.704, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.198 + br label %if.merge.309 -if.merge.198: ; preds = %if.then.197, %while.body.195 +if.merge.309: ; preds = %if.then.308, %while.body.306 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load <3 x float>, ptr %alloca, align 16 %loadN = load i64, ptr %allocaN, align 8 @@ -4364,7 +7559,7 @@ if.merge.198: ; preds = %if.then.197, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.194 + br label %while.hdr.305 } ; Function Attrs: nounwind @@ -4374,33 +7569,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.308, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.705, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.205 + br label %while.hdr.320 -while.hdr.205: ; preds = %if.merge.209, %entry +while.hdr.320: ; preds = %if.merge.324, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.206, label %while.exit.207 + br i1 %icmp, label %while.body.321, label %while.exit.322 -while.body.206: ; preds = %while.hdr.205 +while.body.321: ; preds = %while.hdr.320 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.208, label %if.merge.209 + br i1 %icmpN, label %if.then.323, label %if.merge.324 -while.exit.207: ; preds = %while.hdr.205 +while.exit.322: ; preds = %while.hdr.320 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.309, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.706, i64 1 }) ret { ptr, i64 } %call -if.then.208: ; preds = %while.body.206 +if.then.323: ; preds = %while.body.321 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.310, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.707, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.209 + br label %if.merge.324 -if.merge.209: ; preds = %if.then.208, %while.body.206 +if.merge.324: ; preds = %if.then.323, %while.body.321 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4414,7 +7609,211 @@ if.merge.209: ; preds = %if.then.208, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.205 + br label %while.hdr.320 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.708, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.325 + +while.hdr.325: ; preds = %if.merge.329, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.326, label %while.exit.327 + +while.body.326: ; preds = %while.hdr.325 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.328, label %if.merge.329 + +while.exit.327: ; preds = %while.hdr.325 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.709, i64 1 }) + ret { ptr, i64 } %call + +if.then.328: ; preds = %while.body.326 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.710, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.329 + +if.merge.329: ; preds = %if.then.328, %while.body.326 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.325 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.711, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.330 + +while.hdr.330: ; preds = %if.merge.334, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.331, label %while.exit.332 + +while.body.331: ; preds = %while.hdr.330 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.333, label %if.merge.334 + +while.exit.332: ; preds = %while.hdr.330 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.712, i64 1 }) + ret { ptr, i64 } %call + +if.then.333: ; preds = %while.body.331 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.713, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.334 + +if.merge.334: ; preds = %if.then.333, %while.body.331 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.330 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.714, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.335 + +while.hdr.335: ; preds = %if.merge.339, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.336, label %while.exit.337 + +while.body.336: ; preds = %while.hdr.335 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.338, label %if.merge.339 + +while.exit.337: ; preds = %while.hdr.335 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.715, i64 1 }) + ret { ptr, i64 } %call + +if.then.338: ; preds = %while.body.336 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.716, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.339 + +if.merge.339: ; preds = %if.then.338, %while.body.336 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.335 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.717, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.340 + +while.hdr.340: ; preds = %if.merge.344, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.341, label %while.exit.342 + +while.body.341: ; preds = %while.hdr.340 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.343, label %if.merge.344 + +while.exit.342: ; preds = %while.hdr.340 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.718, i64 1 }) + ret { ptr, i64 } %call + +if.then.343: ; preds = %while.body.341 + %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.344 + +if.merge.344: ; preds = %if.then.343, %while.body.341 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.340 } ; Function Attrs: nounwind @@ -4424,33 +7823,33 @@ entry: %ig.tmp = alloca [16 x float], align 4 store [16 x float] %1, ptr %alloca, align 4 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.311, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.720, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.210 + br label %while.hdr.345 -while.hdr.210: ; preds = %if.merge.214, %entry +while.hdr.345: ; preds = %if.merge.349, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 16 - br i1 %icmp, label %while.body.211, label %while.exit.212 + br i1 %icmp, label %while.body.346, label %while.exit.347 -while.body.211: ; preds = %while.hdr.210 +while.body.346: ; preds = %while.hdr.345 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.213, label %if.merge.214 + br i1 %icmpN, label %if.then.348, label %if.merge.349 -while.exit.212: ; preds = %while.hdr.210 +while.exit.347: ; preds = %while.hdr.345 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.721, i64 1 }) ret { ptr, i64 } %call -if.then.213: ; preds = %while.body.211 +if.then.348: ; preds = %while.body.346 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.313, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.722, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.214 + br label %if.merge.349 -if.merge.214: ; preds = %if.then.213, %while.body.211 +if.merge.349: ; preds = %if.then.348, %while.body.346 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [16 x float], ptr %alloca, align 4 %loadN = load i64, ptr %allocaN, align 8 @@ -4466,7 +7865,7 @@ if.merge.214: ; preds = %if.then.213, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.210 + br label %while.hdr.345 } ; Function Attrs: nounwind @@ -4477,33 +7876,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.314, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.723, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.215 + br label %while.hdr.350 -while.hdr.215: ; preds = %if.merge.219, %entry +while.hdr.350: ; preds = %if.merge.354, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.216, label %while.exit.217 + br i1 %icmp, label %while.body.351, label %while.exit.352 -while.body.216: ; preds = %while.hdr.215 +while.body.351: ; preds = %while.hdr.350 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.218, label %if.merge.219 + br i1 %icmpN, label %if.then.353, label %if.merge.354 -while.exit.217: ; preds = %while.hdr.215 +while.exit.352: ; preds = %while.hdr.350 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.724, i64 1 }) ret { ptr, i64 } %call -if.then.218: ; preds = %while.body.216 +if.then.353: ; preds = %while.body.351 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.725, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.219 + br label %if.merge.354 -if.merge.219: ; preds = %if.then.218, %while.body.216 +if.merge.354: ; preds = %if.then.353, %while.body.351 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4519,7 +7918,7 @@ if.merge.219: ; preds = %if.then.218, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.215 + br label %while.hdr.350 } ; Function Attrs: nounwind @@ -4529,33 +7928,33 @@ entry: %ig.tmp = alloca [5 x float], align 4 store [5 x float] %1, ptr %alloca, align 4 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.317, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.726, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.220 + br label %while.hdr.355 -while.hdr.220: ; preds = %if.merge.224, %entry +while.hdr.355: ; preds = %if.merge.359, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 5 - br i1 %icmp, label %while.body.221, label %while.exit.222 + br i1 %icmp, label %while.body.356, label %while.exit.357 -while.body.221: ; preds = %while.hdr.220 +while.body.356: ; preds = %while.hdr.355 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.223, label %if.merge.224 + br i1 %icmpN, label %if.then.358, label %if.merge.359 -while.exit.222: ; preds = %while.hdr.220 +while.exit.357: ; preds = %while.hdr.355 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.727, i64 1 }) ret { ptr, i64 } %call -if.then.223: ; preds = %while.body.221 +if.then.358: ; preds = %while.body.356 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, i64 2 }) + %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.224 + br label %if.merge.359 -if.merge.224: ; preds = %if.then.223, %while.body.221 +if.merge.359: ; preds = %if.then.358, %while.body.356 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [5 x float], ptr %alloca, align 4 %loadN = load i64, ptr %allocaN, align 8 @@ -4571,7 +7970,7 @@ if.merge.224: ; preds = %if.then.223, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.220 + br label %while.hdr.355 } ; Function Attrs: nounwind @@ -4581,35 +7980,35 @@ entry: %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.320, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.729, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.229 + br label %while.hdr.367 -while.hdr.229: ; preds = %if.merge.233, %entry +while.hdr.367: ; preds = %if.merge.371, %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.230, label %while.exit.231 + br i1 %icmp, label %while.body.368, label %while.exit.369 -while.body.230: ; preds = %while.hdr.229 +while.body.368: ; preds = %while.hdr.367 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.232, label %if.merge.233 + br i1 %icmpN, label %if.then.370, label %if.merge.371 -while.exit.231: ; preds = %while.hdr.229 +while.exit.369: ; preds = %while.hdr.367 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.730, i64 1 }) ret { ptr, i64 } %call -if.then.232: ; preds = %while.body.230 +if.then.370: ; preds = %while.body.368 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.731, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.233 + br label %if.merge.371 -if.merge.233: ; preds = %if.then.232, %while.body.230 +if.merge.371: ; preds = %if.then.370, %while.body.368 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4625,7 +8024,167 @@ if.merge.233: ; preds = %if.then.232, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.229 + br label %while.hdr.367 +} + +; 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.732, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.372 + +while.hdr.372: ; preds = %if.merge.376, %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.373, label %while.exit.374 + +while.body.373: ; preds = %while.hdr.372 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.375, label %if.merge.376 + +while.exit.374: ; preds = %while.hdr.372 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.733, i64 1 }) + ret { ptr, i64 } %call + +if.then.375: ; preds = %while.body.373 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.734, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.376 + +if.merge.376: ; preds = %if.then.375, %while.body.373 + %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.372 +} + +; 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.735, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.377 + +while.hdr.377: ; preds = %if.merge.381, %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.378, label %while.exit.379 + +while.body.378: ; preds = %while.hdr.377 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.380, label %if.merge.381 + +while.exit.379: ; preds = %while.hdr.377 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.736, i64 1 }) + ret { ptr, i64 } %call + +if.then.380: ; preds = %while.body.378 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.737, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.381 + +if.merge.381: ; preds = %if.then.380, %while.body.378 + %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 76, 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.377 +} + +; 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.738, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.382 + +while.hdr.382: ; preds = %if.merge.386, %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.383, label %while.exit.384 + +while.body.383: ; preds = %while.hdr.382 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.385, label %if.merge.386 + +while.exit.384: ; preds = %while.hdr.382 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.739, i64 1 }) + ret { ptr, i64 } %call + +if.then.385: ; preds = %while.body.383 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.740, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.386 + +if.merge.386: ; preds = %if.then.385, %while.body.383 + %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 78, 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.382 } ; Function Attrs: nounwind @@ -4635,35 +8194,35 @@ entry: %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.323, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.741, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.234 + br label %while.hdr.387 -while.hdr.234: ; preds = %if.merge.238, %entry +while.hdr.387: ; preds = %if.merge.391, %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.235, label %while.exit.236 + br i1 %icmp, label %while.body.388, label %while.exit.389 -while.body.235: ; preds = %while.hdr.234 +while.body.388: ; preds = %while.hdr.387 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.237, label %if.merge.238 + br i1 %icmpN, label %if.then.390, label %if.merge.391 -while.exit.236: ; preds = %while.hdr.234 +while.exit.389: ; preds = %while.hdr.387 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.742, i64 1 }) ret { ptr, i64 } %call -if.then.237: ; preds = %while.body.235 +if.then.390: ; preds = %while.body.388 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.743, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.238 + br label %if.merge.391 -if.merge.238: ; preds = %if.then.237, %while.body.235 +if.merge.391: ; preds = %if.then.390, %while.body.388 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4679,7 +8238,7 @@ if.merge.238: ; preds = %if.then.237, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.234 + br label %while.hdr.387 } ; Function Attrs: nounwind @@ -4693,20 +8252,20 @@ entry: 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.265, label %if.else.266 + br i1 %icmp, label %if.then.431, label %if.else.432 -if.then.265: ; preds = %entry - br label %if.merge.267 +if.then.431: ; preds = %entry + br label %if.merge.433 -if.else.266: ; preds = %entry +if.else.432: ; 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.328, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.327, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.267 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.746, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.745, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.433 -if.merge.267: ; preds = %if.else.266, %if.then.265 - %bp = phi { ptr, i64 } [ { ptr @str.326, i64 4 }, %if.then.265 ], [ %callN, %if.else.266 ] +if.merge.433: ; preds = %if.else.432, %if.then.431 + %bp = phi { ptr, i64 } [ { ptr @str.744, i64 4 }, %if.then.431 ], [ %callN, %if.else.432 ] ret { ptr, i64 } %bp } @@ -4721,20 +8280,20 @@ entry: 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.281, label %if.else.282 + br i1 %icmp, label %if.then.447, label %if.else.448 -if.then.281: ; preds = %entry - br label %if.merge.283 +if.then.447: ; preds = %entry + br label %if.merge.449 -if.else.282: ; preds = %entry +if.else.448: ; 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.331, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.330, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.283 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.749, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.748, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.449 -if.merge.283: ; preds = %if.else.282, %if.then.281 - %bp = phi { ptr, i64 } [ { ptr @str.329, i64 4 }, %if.then.281 ], [ %callN, %if.else.282 ] +if.merge.449: ; preds = %if.else.448, %if.then.447 + %bp = phi { ptr, i64 } [ { ptr @str.747, i64 4 }, %if.then.447 ], [ %callN, %if.else.448 ] ret { ptr, i64 } %bp } @@ -4749,20 +8308,20 @@ entry: 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.284, label %if.else.285 + br i1 %icmp, label %if.then.450, label %if.else.451 -if.then.284: ; preds = %entry - br label %if.merge.286 +if.then.450: ; preds = %entry + br label %if.merge.452 -if.else.285: ; preds = %entry +if.else.451: ; 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.334, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.333, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.286 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.752, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.751, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.452 -if.merge.286: ; preds = %if.else.285, %if.then.284 - %bp = phi { ptr, i64 } [ { ptr @str.332, i64 4 }, %if.then.284 ], [ %callN, %if.else.285 ] +if.merge.452: ; preds = %if.else.451, %if.then.450 + %bp = phi { ptr, i64 } [ { ptr @str.750, i64 4 }, %if.then.450 ], [ %callN, %if.else.451 ] ret { ptr, i64 } %bp } @@ -4777,20 +8336,20 @@ entry: 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.287, label %if.else.288 + br i1 %icmp, label %if.then.453, label %if.else.454 -if.then.287: ; preds = %entry - br label %if.merge.289 +if.then.453: ; preds = %entry + br label %if.merge.455 -if.else.288: ; preds = %entry +if.else.454: ; 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.337, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.336, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.289 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.755, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.754, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.455 -if.merge.289: ; preds = %if.else.288, %if.then.287 - %bp = phi { ptr, i64 } [ { ptr @str.335, i64 4 }, %if.then.287 ], [ %callN, %if.else.288 ] +if.merge.455: ; preds = %if.else.454, %if.then.453 + %bp = phi { ptr, i64 } [ { ptr @str.753, i64 4 }, %if.then.453 ], [ %callN, %if.else.454 ] ret { ptr, i64 } %bp } @@ -4805,20 +8364,20 @@ entry: 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.290, label %if.else.291 + br i1 %icmp, label %if.then.456, label %if.else.457 -if.then.290: ; preds = %entry - br label %if.merge.292 +if.then.456: ; preds = %entry + br label %if.merge.458 -if.else.291: ; preds = %entry +if.else.457: ; 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.340, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.339, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.292 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.758, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.757, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.458 -if.merge.292: ; preds = %if.else.291, %if.then.290 - %bp = phi { ptr, i64 } [ { ptr @str.338, i64 4 }, %if.then.290 ], [ %callN, %if.else.291 ] +if.merge.458: ; preds = %if.else.457, %if.then.456 + %bp = phi { ptr, i64 } [ { ptr @str.756, i64 4 }, %if.then.456 ], [ %callN, %if.else.457 ] ret { ptr, i64 } %bp } @@ -4832,20 +8391,20 @@ entry: 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.293, label %if.else.294 + br i1 %icmp, label %if.then.459, label %if.else.460 -if.then.293: ; preds = %entry - br label %if.merge.295 +if.then.459: ; preds = %entry + br label %if.merge.461 -if.else.294: ; preds = %entry +if.else.460: ; 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.343, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.342, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.295 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.761, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.760, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.461 -if.merge.295: ; preds = %if.else.294, %if.then.293 - %bp = phi { ptr, i64 } [ { ptr @str.341, i64 4 }, %if.then.293 ], [ %callN, %if.else.294 ] +if.merge.461: ; preds = %if.else.460, %if.then.459 + %bp = phi { ptr, i64 } [ { ptr @str.759, i64 4 }, %if.then.459 ], [ %callN, %if.else.460 ] ret { ptr, i64 } %bp } @@ -4860,20 +8419,20 @@ entry: 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.296, label %if.else.297 + br i1 %icmp, label %if.then.462, label %if.else.463 -if.then.296: ; preds = %entry - br label %if.merge.298 +if.then.462: ; preds = %entry + br label %if.merge.464 -if.else.297: ; preds = %entry +if.else.463: ; 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.346, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.345, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.298 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.764, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.763, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.464 -if.merge.298: ; preds = %if.else.297, %if.then.296 - %bp = phi { ptr, i64 } [ { ptr @str.344, i64 4 }, %if.then.296 ], [ %callN, %if.else.297 ] +if.merge.464: ; preds = %if.else.463, %if.then.462 + %bp = phi { ptr, i64 } [ { ptr @str.762, i64 4 }, %if.then.462 ], [ %callN, %if.else.463 ] ret { ptr, i64 } %bp } @@ -4888,25 +8447,25 @@ entry: 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.299, label %if.else.300 + br i1 %icmp, label %if.then.465, label %if.else.466 -if.then.299: ; preds = %entry - br label %if.merge.301 +if.then.465: ; preds = %entry + br label %if.merge.467 -if.else.300: ; preds = %entry +if.else.466: ; 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.349, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.348, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.301 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.767, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.766, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.467 -if.merge.301: ; preds = %if.else.300, %if.then.299 - %bp = phi { ptr, i64 } [ { ptr @str.347, i64 4 }, %if.then.299 ], [ %callN, %if.else.300 ] +if.merge.467: ; preds = %if.else.466, %if.then.465 + %bp = phi { ptr, i64 } [ { ptr @str.765, i64 4 }, %if.then.465 ], [ %callN, %if.else.466 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -4916,216 +8475,20 @@ entry: 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.302, label %if.else.303 + br i1 %icmp, label %if.then.468, label %if.else.469 -if.then.302: ; preds = %entry - br label %if.merge.304 +if.then.468: ; preds = %entry + br label %if.merge.470 -if.else.303: ; preds = %entry +if.else.469: ; 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.352, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.351, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.304 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.770, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.769, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.470 -if.merge.304: ; preds = %if.else.303, %if.then.302 - %bp = phi { ptr, i64 } [ { ptr @str.350, i64 4 }, %if.then.302 ], [ %callN, %if.else.303 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.305, label %if.else.306 - -if.then.305: ; preds = %entry - br label %if.merge.307 - -if.else.306: ; 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.355, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.354, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.307 - -if.merge.307: ; preds = %if.else.306, %if.then.305 - %bp = phi { ptr, i64 } [ { ptr @str.353, i64 4 }, %if.then.305 ], [ %callN, %if.else.306 ] - 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.308, label %if.else.309 - -if.then.308: ; preds = %entry - br label %if.merge.310 - -if.else.309: ; 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.358, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.357, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.310 - -if.merge.310: ; preds = %if.else.309, %if.then.308 - %bp = phi { ptr, i64 } [ { ptr @str.356, i64 4 }, %if.then.308 ], [ %callN, %if.else.309 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Vec3(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.311, label %if.else.312 - -if.then.311: ; preds = %entry - br label %if.merge.313 - -if.else.312: ; 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.361, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.360, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.313 - -if.merge.313: ; preds = %if.else.312, %if.then.311 - %bp = phi { ptr, i64 } [ { ptr @str.359, i64 4 }, %if.then.311 ], [ %callN, %if.else.312 ] - 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.314, label %if.else.315 - -if.then.314: ; preds = %entry - br label %if.merge.316 - -if.else.315: ; 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.364, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.363, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.316 - -if.merge.316: ; preds = %if.else.315, %if.then.314 - %bp = phi { ptr, i64 } [ { ptr @str.362, i64 4 }, %if.then.314 ], [ %callN, %if.else.315 ] - 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.317, label %if.else.318 - -if.then.317: ; preds = %entry - br label %if.merge.319 - -if.else.318: ; 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.367, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.366, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.319 - -if.merge.319: ; preds = %if.else.318, %if.then.317 - %bp = phi { ptr, i64 } [ { ptr @str.365, i64 4 }, %if.then.317 ], [ %callN, %if.else.318 ] - 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.320, label %if.else.321 - -if.then.320: ; preds = %entry - br label %if.merge.322 - -if.else.321: ; 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.370, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.369, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.322 - -if.merge.322: ; preds = %if.else.321, %if.then.320 - %bp = phi { ptr, i64 } [ { ptr @str.368, i64 4 }, %if.then.320 ], [ %callN, %if.else.321 ] - 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.323, label %if.else.324 - -if.then.323: ; preds = %entry - br label %if.merge.325 - -if.else.324: ; 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.373, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.372, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.325 - -if.merge.325: ; preds = %if.else.324, %if.then.323 - %bp = phi { ptr, i64 } [ { ptr @str.371, i64 4 }, %if.then.323 ], [ %callN, %if.else.324 ] +if.merge.470: ; preds = %if.else.469, %if.then.468 + %bp = phi { ptr, i64 } [ { ptr @str.768, i64 4 }, %if.then.468 ], [ %callN, %if.else.469 ] ret { ptr, i64 } %bp } @@ -5140,20 +8503,578 @@ entry: 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.326, label %if.else.327 + br i1 %icmp, label %if.then.471, label %if.else.472 -if.then.326: ; preds = %entry - br label %if.merge.328 +if.then.471: ; preds = %entry + br label %if.merge.473 -if.else.327: ; preds = %entry +if.else.472: ; 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.376, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.375, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.328 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.773, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.772, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.473 -if.merge.328: ; preds = %if.else.327, %if.then.326 - %bp = phi { ptr, i64 } [ { ptr @str.374, i64 4 }, %if.then.326 ], [ %callN, %if.else.327 ] +if.merge.473: ; preds = %if.else.472, %if.then.471 + %bp = phi { ptr, i64 } [ { ptr @str.771, i64 4 }, %if.then.471 ], [ %callN, %if.else.472 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.474, label %if.else.475 + +if.then.474: ; preds = %entry + br label %if.merge.476 + +if.else.475: ; 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.776, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.775, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.476 + +if.merge.476: ; preds = %if.else.475, %if.then.474 + %bp = phi { ptr, i64 } [ { ptr @str.774, i64 4 }, %if.then.474 ], [ %callN, %if.else.475 ] + 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.477, label %if.else.478 + +if.then.477: ; preds = %entry + br label %if.merge.479 + +if.else.478: ; 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.779, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.778, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.479 + +if.merge.479: ; preds = %if.else.478, %if.then.477 + %bp = phi { ptr, i64 } [ { ptr @str.777, i64 4 }, %if.then.477 ], [ %callN, %if.else.478 ] + 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.480, label %if.else.481 + +if.then.480: ; preds = %entry + br label %if.merge.482 + +if.else.481: ; 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.782, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.781, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.482 + +if.merge.482: ; preds = %if.else.481, %if.then.480 + %bp = phi { ptr, i64 } [ { ptr @str.780, i64 4 }, %if.then.480 ], [ %callN, %if.else.481 ] + 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.483, label %if.else.484 + +if.then.483: ; preds = %entry + br label %if.merge.485 + +if.else.484: ; 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.785, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.784, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.485 + +if.merge.485: ; preds = %if.else.484, %if.then.483 + %bp = phi { ptr, i64 } [ { ptr @str.783, i64 4 }, %if.then.483 ], [ %callN, %if.else.484 ] + 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.486, label %if.else.487 + +if.then.486: ; preds = %entry + br label %if.merge.488 + +if.else.487: ; 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.788, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.787, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.488 + +if.merge.488: ; preds = %if.else.487, %if.then.486 + %bp = phi { ptr, i64 } [ { ptr @str.786, i64 4 }, %if.then.486 ], [ %callN, %if.else.487 ] + 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.489, label %if.else.490 + +if.then.489: ; preds = %entry + br label %if.merge.491 + +if.else.490: ; 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.791, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.790, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.491 + +if.merge.491: ; preds = %if.else.490, %if.then.489 + %bp = phi { ptr, i64 } [ { ptr @str.789, i64 4 }, %if.then.489 ], [ %callN, %if.else.490 ] + 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.492, label %if.else.493 + +if.then.492: ; preds = %entry + br label %if.merge.494 + +if.else.493: ; 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.794, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.793, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.494 + +if.merge.494: ; preds = %if.else.493, %if.then.492 + %bp = phi { ptr, i64 } [ { ptr @str.792, i64 4 }, %if.then.492 ], [ %callN, %if.else.493 ] + 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.495, label %if.else.496 + +if.then.495: ; preds = %entry + br label %if.merge.497 + +if.else.496: ; 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.797, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.796, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.497 + +if.merge.497: ; preds = %if.else.496, %if.then.495 + %bp = phi { ptr, i64 } [ { ptr @str.795, i64 4 }, %if.then.495 ], [ %callN, %if.else.496 ] + 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.498, label %if.else.499 + +if.then.498: ; preds = %entry + br label %if.merge.500 + +if.else.499: ; 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.800, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.799, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.500 + +if.merge.500: ; preds = %if.else.499, %if.then.498 + %bp = phi { ptr, i64 } [ { ptr @str.798, i64 4 }, %if.then.498 ], [ %callN, %if.else.499 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.501, label %if.else.502 + +if.then.501: ; preds = %entry + br label %if.merge.503 + +if.else.502: ; 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.803, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.802, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.503 + +if.merge.503: ; preds = %if.else.502, %if.then.501 + %bp = phi { ptr, i64 } [ { ptr @str.801, i64 4 }, %if.then.501 ], [ %callN, %if.else.502 ] + 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.504, label %if.else.505 + +if.then.504: ; preds = %entry + br label %if.merge.506 + +if.else.505: ; 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.806, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.805, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.506 + +if.merge.506: ; preds = %if.else.505, %if.then.504 + %bp = phi { ptr, i64 } [ { ptr @str.804, i64 4 }, %if.then.504 ], [ %callN, %if.else.505 ] + 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.507, label %if.else.508 + +if.then.507: ; preds = %entry + br label %if.merge.509 + +if.else.508: ; 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.809, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.808, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.509 + +if.merge.509: ; preds = %if.else.508, %if.then.507 + %bp = phi { ptr, i64 } [ { ptr @str.807, i64 4 }, %if.then.507 ], [ %callN, %if.else.508 ] + 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.510, label %if.else.511 + +if.then.510: ; preds = %entry + br label %if.merge.512 + +if.else.511: ; 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.812, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.811, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.512 + +if.merge.512: ; preds = %if.else.511, %if.then.510 + %bp = phi { ptr, i64 } [ { ptr @str.810, i64 4 }, %if.then.510 ], [ %callN, %if.else.511 ] + 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.513, label %if.else.514 + +if.then.513: ; preds = %entry + br label %if.merge.515 + +if.else.514: ; 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.815, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.814, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.515 + +if.merge.515: ; preds = %if.else.514, %if.then.513 + %bp = phi { ptr, i64 } [ { ptr @str.813, i64 4 }, %if.then.513 ], [ %callN, %if.else.514 ] + 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.516, label %if.else.517 + +if.then.516: ; preds = %entry + br label %if.merge.518 + +if.else.517: ; 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.818, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.817, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.518 + +if.merge.518: ; preds = %if.else.517, %if.then.516 + %bp = phi { ptr, i64 } [ { ptr @str.816, i64 4 }, %if.then.516 ], [ %callN, %if.else.517 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Vec3(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.519, label %if.else.520 + +if.then.519: ; preds = %entry + br label %if.merge.521 + +if.else.520: ; 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.821, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.820, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.521 + +if.merge.521: ; preds = %if.else.520, %if.then.519 + %bp = phi { ptr, i64 } [ { ptr @str.819, i64 4 }, %if.then.519 ], [ %callN, %if.else.520 ] + 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.522, label %if.else.523 + +if.then.522: ; preds = %entry + br label %if.merge.524 + +if.else.523: ; 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.824, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.823, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.524 + +if.merge.524: ; preds = %if.else.523, %if.then.522 + %bp = phi { ptr, i64 } [ { ptr @str.822, i64 4 }, %if.then.522 ], [ %callN, %if.else.523 ] + 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.525, label %if.else.526 + +if.then.525: ; preds = %entry + br label %if.merge.527 + +if.else.526: ; 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.827, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.826, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.527 + +if.merge.527: ; preds = %if.else.526, %if.then.525 + %bp = phi { ptr, i64 } [ { ptr @str.825, i64 4 }, %if.then.525 ], [ %callN, %if.else.526 ] + 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.528, label %if.else.529 + +if.then.528: ; preds = %entry + br label %if.merge.530 + +if.else.529: ; 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.830, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.829, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.530 + +if.merge.530: ; preds = %if.else.529, %if.then.528 + %bp = phi { ptr, i64 } [ { ptr @str.828, i64 4 }, %if.then.528 ], [ %callN, %if.else.529 ] + 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.531, label %if.else.532 + +if.then.531: ; preds = %entry + br label %if.merge.533 + +if.else.532: ; 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.833, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.832, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.533 + +if.merge.533: ; preds = %if.else.532, %if.then.531 + %bp = phi { ptr, i64 } [ { ptr @str.831, i64 4 }, %if.then.531 ], [ %callN, %if.else.532 ] ret { ptr, i64 } %bp } @@ -5168,20 +9089,20 @@ entry: 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.329, label %if.else.330 + br i1 %icmp, label %if.then.534, label %if.else.535 -if.then.329: ; preds = %entry - br label %if.merge.331 +if.then.534: ; preds = %entry + br label %if.merge.536 -if.else.330: ; preds = %entry +if.else.535: ; 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.379, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.378, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.331 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.836, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.835, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.536 -if.merge.331: ; preds = %if.else.330, %if.then.329 - %bp = phi { ptr, i64 } [ { ptr @str.377, i64 4 }, %if.then.329 ], [ %callN, %if.else.330 ] +if.merge.536: ; preds = %if.else.535, %if.then.534 + %bp = phi { ptr, i64 } [ { ptr @str.834, i64 4 }, %if.then.534 ], [ %callN, %if.else.535 ] ret { ptr, i64 } %bp } @@ -5196,20 +9117,20 @@ entry: 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.332, label %if.else.333 + br i1 %icmp, label %if.then.537, label %if.else.538 -if.then.332: ; preds = %entry - br label %if.merge.334 +if.then.537: ; preds = %entry + br label %if.merge.539 -if.else.333: ; preds = %entry +if.else.538: ; 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.382, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.381, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.334 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.839, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.838, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.539 -if.merge.334: ; preds = %if.else.333, %if.then.332 - %bp = phi { ptr, i64 } [ { ptr @str.380, i64 4 }, %if.then.332 ], [ %callN, %if.else.333 ] +if.merge.539: ; preds = %if.else.538, %if.then.537 + %bp = phi { ptr, i64 } [ { ptr @str.837, i64 4 }, %if.then.537 ], [ %callN, %if.else.538 ] ret { ptr, i64 } %bp } @@ -5224,20 +9145,20 @@ entry: 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.335, label %if.else.336 + br i1 %icmp, label %if.then.540, label %if.else.541 -if.then.335: ; preds = %entry - br label %if.merge.337 +if.then.540: ; preds = %entry + br label %if.merge.542 -if.else.336: ; preds = %entry +if.else.541: ; 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.385, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.384, i64 14 }, { ptr, i64 } %callN) - br label %if.merge.337 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.842, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.841, i64 14 }, { ptr, i64 } %callN) + br label %if.merge.542 -if.merge.337: ; preds = %if.else.336, %if.then.335 - %bp = phi { ptr, i64 } [ { ptr @str.383, i64 4 }, %if.then.335 ], [ %callN, %if.else.336 ] +if.merge.542: ; preds = %if.else.541, %if.then.540 + %bp = phi { ptr, i64 } [ { ptr @str.840, i64 4 }, %if.then.540 ], [ %callN, %if.else.541 ] ret { ptr, i64 } %bp } @@ -5252,20 +9173,20 @@ entry: 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.338, label %if.else.339 + br i1 %icmp, label %if.then.543, label %if.else.544 -if.then.338: ; preds = %entry - br label %if.merge.340 +if.then.543: ; preds = %entry + br label %if.merge.545 -if.else.339: ; preds = %entry +if.else.544: ; 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.388, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.387, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.340 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.845, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.844, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.545 -if.merge.340: ; preds = %if.else.339, %if.then.338 - %bp = phi { ptr, i64 } [ { ptr @str.386, i64 4 }, %if.then.338 ], [ %callN, %if.else.339 ] +if.merge.545: ; preds = %if.else.544, %if.then.543 + %bp = phi { ptr, i64 } [ { ptr @str.843, i64 4 }, %if.then.543 ], [ %callN, %if.else.544 ] ret { ptr, i64 } %bp } @@ -5280,20 +9201,20 @@ entry: 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.341, label %if.else.342 + br i1 %icmp, label %if.then.546, label %if.else.547 -if.then.341: ; preds = %entry - br label %if.merge.343 +if.then.546: ; preds = %entry + br label %if.merge.548 -if.else.342: ; preds = %entry +if.else.547: ; 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.391, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.390, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.343 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.848, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.847, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.548 -if.merge.343: ; preds = %if.else.342, %if.then.341 - %bp = phi { ptr, i64 } [ { ptr @str.389, i64 4 }, %if.then.341 ], [ %callN, %if.else.342 ] +if.merge.548: ; preds = %if.else.547, %if.then.546 + %bp = phi { ptr, i64 } [ { ptr @str.846, i64 4 }, %if.then.546 ], [ %callN, %if.else.547 ] ret { ptr, i64 } %bp } @@ -5308,20 +9229,20 @@ entry: 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.344, label %if.else.345 + br i1 %icmp, label %if.then.549, label %if.else.550 -if.then.344: ; preds = %entry - br label %if.merge.346 +if.then.549: ; preds = %entry + br label %if.merge.551 -if.else.345: ; preds = %entry +if.else.550: ; 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.394, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.393, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.346 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.851, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.850, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.551 -if.merge.346: ; preds = %if.else.345, %if.then.344 - %bp = phi { ptr, i64 } [ { ptr @str.392, i64 4 }, %if.then.344 ], [ %callN, %if.else.345 ] +if.merge.551: ; preds = %if.else.550, %if.then.549 + %bp = phi { ptr, i64 } [ { ptr @str.849, i64 4 }, %if.then.549 ], [ %callN, %if.else.550 ] ret { ptr, i64 } %bp } @@ -5336,21 +9257,117 @@ entry: 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.347, label %if.else.348 + br i1 %icmp, label %if.then.552, label %if.else.553 -if.then.347: ; preds = %entry - br label %if.merge.349 +if.then.552: ; preds = %entry + br label %if.merge.554 -if.else.348: ; preds = %entry +if.else.553: ; 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.397, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.396, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.349 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.854, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.853, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.554 -if.merge.349: ; preds = %if.else.348, %if.then.347 - %bp = phi { ptr, i64 } [ { ptr @str.395, i64 4 }, %if.then.347 ], [ %callN, %if.else.348 ] +if.merge.554: ; preds = %if.else.553, %if.then.552 + %bp = phi { ptr, i64 } [ { ptr @str.852, i64 4 }, %if.then.552 ], [ %callN, %if.else.553 ] 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.561, label %if.merge.562 + +if.then.561: ; preds = %entry + ret { ptr, i64 } { ptr @str.855, i64 4 } + +if.merge.562: ; 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 39, 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.563, label %if.merge.564 + +if.then.563: ; preds = %entry + ret { ptr, i64 } { ptr @str.856, i64 4 } + +if.merge.564: ; 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_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.565, label %if.merge.566 + +if.then.565: ; preds = %entry + ret { ptr, i64 } { ptr @str.857, i64 4 } + +if.merge.566: ; 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 45, 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.567, label %if.merge.568 + +if.then.567: ; preds = %entry + ret { ptr, i64 } { ptr @str.858, i64 4 } + +if.merge.568: ; 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 88, i64 undef }, i64 %ba.p2i, 1 + %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + ret { ptr, i64 } %call +} + declare double @sqrt(double) diff --git a/examples/expected/0301-closures-fn-pointers.ir b/examples/expected/0301-closures-fn-pointers.ir index edf4459..3952cdf 100644 --- a/examples/expected/0301-closures-fn-pointers.ir +++ b/examples/expected/0301-closures-fn-pointers.ir @@ -1,261 +1,616 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [74 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [162 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [18 x i8] c"(s32, s32) -> s32\00" -@tn.str.64 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.65 = private constant [5 x i8] c"*s64\00" -@tn.str.66 = private constant [7 x i8] c"**void\00" -@tn.str.67 = private constant [19 x i8] c"*(s32, s32) -> s32\00" -@tn.str.68 = private constant [5 x i8] c"*s32\00" -@tn.str.69 = private constant [8 x i8] c"*string\00" -@tn.str.70 = private constant [6 x i8] c"[]Any\00" -@tn.str.71 = private constant [5 x i8] c"*Any\00" -@tn.str.72 = private constant [7 x i8] c"[1]Any\00" -@tn.str.73 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.74 = private constant [7 x i8] c"*[]Any\00" -@tn.str.75 = private constant [4 x i8] c"*u8\00" -@tn.str.76 = private constant [6 x i8] c"*bool\00" -@tn.str.77 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.78 = private constant [5 x i8] c"*f64\00" -@tn.str.79 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.80 = private constant [11 x i8] c"*Allocator\00" -@tn.str.81 = private constant [9 x i8] c"*Context\00" -@tn.str.82 = private constant [10 x i8] c"*[]string\00" -@tn.str.83 = private constant [6 x i8] c"**GPA\00" -@tn.str.84 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.85 = private constant [8 x i8] c"**Arena\00" -@tn.str.86 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.87 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.88 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.89 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.90 = private constant [6 x i8] c"**s64\00" -@tn.str.91 = private constant [8 x i8] c"***void\00" -@tn.str.92 = private constant [20 x i8] c"**(s32, s32) -> s32\00" -@tn.str.93 = private constant [6 x i8] c"**s32\00" -@tn.str.94 = private constant [9 x i8] c"**string\00" -@tn.str.95 = private constant [6 x i8] c"**Any\00" -@tn.str.96 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.97 = private constant [8 x i8] c"**[]Any\00" -@tn.str.98 = private constant [5 x i8] c"**u8\00" -@tn.str.99 = private constant [7 x i8] c"**bool\00" -@__sx_type_names = private constant [74 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 17 }, { ptr, i64 } { ptr @tn.str.64, i64 12 }, { ptr, i64 } { ptr @tn.str.65, i64 4 }, { ptr, i64 } { ptr @tn.str.66, i64 6 }, { ptr, i64 } { ptr @tn.str.67, i64 18 }, { ptr, i64 } { ptr @tn.str.68, i64 4 }, { ptr, i64 } { ptr @tn.str.69, i64 7 }, { ptr, i64 } { ptr @tn.str.70, i64 5 }, { ptr, i64 } { ptr @tn.str.71, i64 4 }, { ptr, i64 } { ptr @tn.str.72, i64 6 }, { ptr, i64 } { ptr @tn.str.73, i64 7 }, { ptr, i64 } { ptr @tn.str.74, i64 6 }, { ptr, i64 } { ptr @tn.str.75, i64 3 }, { ptr, i64 } { ptr @tn.str.76, i64 5 }, { ptr, i64 } { ptr @tn.str.77, i64 7 }, { ptr, i64 } { ptr @tn.str.78, i64 4 }, { ptr, i64 } { ptr @tn.str.79, i64 16 }, { ptr, i64 } { ptr @tn.str.80, i64 10 }, { ptr, i64 } { ptr @tn.str.81, i64 8 }, { ptr, i64 } { ptr @tn.str.82, i64 9 }, { ptr, i64 } { ptr @tn.str.83, i64 5 }, { ptr, i64 } { ptr @tn.str.84, i64 12 }, { ptr, i64 } { ptr @tn.str.85, i64 7 }, { ptr, i64 } { ptr @tn.str.86, i64 6 }, { ptr, i64 } { ptr @tn.str.87, i64 10 }, { ptr, i64 } { ptr @tn.str.88, i64 19 }, { ptr, i64 } { ptr @tn.str.89, i64 13 }, { ptr, i64 } { ptr @tn.str.90, i64 5 }, { ptr, i64 } { ptr @tn.str.91, i64 7 }, { ptr, i64 } { ptr @tn.str.92, i64 19 }, { ptr, i64 } { ptr @tn.str.93, i64 5 }, { ptr, i64 } { ptr @tn.str.94, i64 8 }, { ptr, i64 } { ptr @tn.str.95, i64 5 }, { ptr, i64 } { ptr @tn.str.96, i64 8 }, { ptr, i64 } { ptr @tn.str.97, i64 7 }, { ptr, i64 } { ptr @tn.str.98, i64 4 }, { ptr, i64 } { ptr @tn.str.99, i64 6 }] -@str.100 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.101 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.102 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.103 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.104 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.105 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.106 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.107 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.108 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.109 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.110 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.111 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.112 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.113 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.114 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.115 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.116 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.117 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.118 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.119 = private unnamed_addr constant [14 x i8] c"fp(3,4) = {}\0A\00", align 1 -@str.120 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.121 = private unnamed_addr constant [14 x i8] c"fp(3,4) = {}\0A\00", align 1 -@str.122 = private unnamed_addr constant [21 x i8] c"apply(add,5,6) = {}\0A\00", align 1 -@str.123 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.124 = private unnamed_addr constant [21 x i8] c"apply(add,5,6) = {}\0A\00", align 1 -@str.125 = private unnamed_addr constant [21 x i8] c"apply(mul,5,6) = {}\0A\00", align 1 -@str.126 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.127 = private unnamed_addr constant [21 x i8] c"apply(mul,5,6) = {}\0A\00", align 1 -@str.128 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.129 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.130 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [18 x i8] c"(s32, s32) -> s32\00" +@tn.str.237 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.238 = private constant [7 x i8] c"**void\00" +@tn.str.239 = private constant [19 x i8] c"*(s32, s32) -> s32\00" +@tn.str.240 = private constant [8 x i8] c"*string\00" +@tn.str.241 = private constant [6 x i8] c"[]Any\00" +@tn.str.242 = private constant [5 x i8] c"*Any\00" +@tn.str.243 = private constant [7 x i8] c"[1]Any\00" +@tn.str.244 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.245 = private constant [7 x i8] c"*[]Any\00" +@tn.str.246 = private constant [6 x i8] c"*bool\00" +@tn.str.247 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.248 = private constant [5 x i8] c"*f64\00" +@tn.str.249 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.250 = private constant [11 x i8] c"*Allocator\00" +@tn.str.251 = private constant [9 x i8] c"*Context\00" +@tn.str.252 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.253 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.254 = private constant [8 x i8] c"*Member\00" +@tn.str.255 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.256 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.257 = private constant [9 x i8] c"*Command\00" +@tn.str.258 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.259 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.260 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.261 = private constant [7 x i8] c"*Value\00" +@tn.str.262 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.263 = private constant [14 x i8] c"*Architecture\00" +@tn.str.264 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.265 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.266 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.267 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.268 = private constant [10 x i8] c"*[]string\00" +@tn.str.269 = private constant [6 x i8] c"*[]u8\00" +@tn.str.270 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.271 = private constant [11 x i8] c"*[]Command\00" +@tn.str.272 = private constant [6 x i8] c"**GPA\00" +@tn.str.273 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.274 = private constant [8 x i8] c"**Arena\00" +@tn.str.275 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.276 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.277 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.278 = private constant [7 x i8] c"**File\00" +@tn.str.279 = private constant [5 x i8] c"**u8\00" +@tn.str.280 = private constant [6 x i8] c"**s32\00" +@tn.str.281 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.282 = private constant [6 x i8] c"**u32\00" +@tn.str.283 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.284 = private constant [8 x i8] c"**Array\00" +@tn.str.285 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.286 = private constant [9 x i8] c"**Object\00" +@tn.str.287 = private constant [7 x i8] c"**Sink\00" +@tn.str.288 = private constant [9 x i8] c"**Parser\00" +@tn.str.289 = private constant [6 x i8] c"**s64\00" +@tn.str.290 = private constant [9 x i8] c"**Parsed\00" +@tn.str.291 = private constant [7 x i8] c"**Diag\00" +@tn.str.292 = private constant [9 x i8] c"**Sha256\00" +@tn.str.293 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.294 = private constant [8 x i8] c"***void\00" +@tn.str.295 = private constant [20 x i8] c"**(s32, s32) -> s32\00" +@tn.str.296 = private constant [9 x i8] c"**string\00" +@tn.str.297 = private constant [6 x i8] c"**Any\00" +@tn.str.298 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.299 = private constant [8 x i8] c"**[]Any\00" +@tn.str.300 = private constant [7 x i8] c"**bool\00" +@tn.str.301 = private constant [7 x i8] c"*?File\00" +@tn.str.302 = private constant [9 x i8] c"*?string\00" +@tn.str.303 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.304 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [162 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 17 }, { ptr, i64 } { ptr @tn.str.237, i64 12 }, { ptr, i64 } { ptr @tn.str.238, i64 6 }, { ptr, i64 } { ptr @tn.str.239, i64 18 }, { ptr, i64 } { ptr @tn.str.240, i64 7 }, { ptr, i64 } { ptr @tn.str.241, i64 5 }, { ptr, i64 } { ptr @tn.str.242, i64 4 }, { ptr, i64 } { ptr @tn.str.243, i64 6 }, { ptr, i64 } { ptr @tn.str.244, i64 7 }, { ptr, i64 } { ptr @tn.str.245, i64 6 }, { ptr, i64 } { ptr @tn.str.246, i64 5 }, { ptr, i64 } { ptr @tn.str.247, i64 7 }, { ptr, i64 } { ptr @tn.str.248, i64 4 }, { ptr, i64 } { ptr @tn.str.249, i64 16 }, { ptr, i64 } { ptr @tn.str.250, i64 10 }, { ptr, i64 } { ptr @tn.str.251, i64 8 }, { ptr, i64 } { ptr @tn.str.252, i64 11 }, { ptr, i64 } { ptr @tn.str.253, i64 14 }, { ptr, i64 } { ptr @tn.str.254, i64 7 }, { ptr, i64 } { ptr @tn.str.255, i64 13 }, { ptr, i64 } { ptr @tn.str.256, i64 9 }, { ptr, i64 } { ptr @tn.str.257, i64 8 }, { ptr, i64 } { ptr @tn.str.258, i64 10 }, { ptr, i64 } { ptr @tn.str.259, i64 9 }, { ptr, i64 } { ptr @tn.str.260, i64 9 }, { ptr, i64 } { ptr @tn.str.261, i64 6 }, { ptr, i64 } { ptr @tn.str.262, i64 16 }, { ptr, i64 } { ptr @tn.str.263, i64 13 }, { ptr, i64 } { ptr @tn.str.264, i64 14 }, { ptr, i64 } { ptr @tn.str.265, i64 7 }, { ptr, i64 } { ptr @tn.str.266, i64 7 }, { ptr, i64 } { ptr @tn.str.267, i64 8 }, { ptr, i64 } { ptr @tn.str.268, i64 9 }, { ptr, i64 } { ptr @tn.str.269, i64 5 }, { ptr, i64 } { ptr @tn.str.270, i64 11 }, { ptr, i64 } { ptr @tn.str.271, i64 10 }, { ptr, i64 } { ptr @tn.str.272, i64 5 }, { ptr, i64 } { ptr @tn.str.273, i64 12 }, { ptr, i64 } { ptr @tn.str.274, i64 7 }, { ptr, i64 } { ptr @tn.str.275, i64 6 }, { ptr, i64 } { ptr @tn.str.276, i64 10 }, { ptr, i64 } { ptr @tn.str.277, i64 19 }, { ptr, i64 } { ptr @tn.str.278, i64 6 }, { ptr, i64 } { ptr @tn.str.279, i64 4 }, { ptr, i64 } { ptr @tn.str.280, i64 5 }, { ptr, i64 } { ptr @tn.str.281, i64 10 }, { ptr, i64 } { ptr @tn.str.282, i64 5 }, { ptr, i64 } { ptr @tn.str.283, i64 9 }, { ptr, i64 } { ptr @tn.str.284, i64 7 }, { ptr, i64 } { ptr @tn.str.285, i64 10 }, { ptr, i64 } { ptr @tn.str.286, i64 8 }, { ptr, i64 } { ptr @tn.str.287, i64 6 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 5 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 6 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 13 }, { ptr, i64 } { ptr @tn.str.294, i64 7 }, { ptr, i64 } { ptr @tn.str.295, i64 19 }, { ptr, i64 } { ptr @tn.str.296, i64 8 }, { ptr, i64 } { ptr @tn.str.297, i64 5 }, { ptr, i64 } { ptr @tn.str.298, i64 8 }, { ptr, i64 } { ptr @tn.str.299, i64 7 }, { ptr, i64 } { ptr @tn.str.300, i64 6 }, { ptr, i64 } { ptr @tn.str.301, i64 6 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }, { ptr, i64 } { ptr @tn.str.303, i64 15 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }] +@str.305 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.306 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.307 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.311 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.312 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.313 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.314 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.315 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.316 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.317 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.318 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.319 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.320 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.321 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.322 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.323 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.324 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.325 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.326 = private unnamed_addr constant [14 x i8] c"fp(3,4) = {}\0A\00", align 1 +@str.327 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.328 = private unnamed_addr constant [14 x i8] c"fp(3,4) = {}\0A\00", align 1 +@str.329 = private unnamed_addr constant [21 x i8] c"apply(add,5,6) = {}\0A\00", align 1 +@str.330 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.331 = private unnamed_addr constant [21 x i8] c"apply(add,5,6) = {}\0A\00", align 1 +@str.332 = private unnamed_addr constant [21 x i8] c"apply(mul,5,6) = {}\0A\00", align 1 +@str.333 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.334 = private unnamed_addr constant [21 x i8] c"apply(mul,5,6) = {}\0A\00", align 1 +@str.335 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.336 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.337 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.338 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.132 = private constant [5 x i8] c"line\00" -@fld.str.133 = private constant [4 x i8] c"col\00" -@fld.str.134 = 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.132, i64 4 }, { ptr, i64 } { ptr @fld.str.133, i64 3 }, { ptr, i64 } { ptr @fld.str.134, i64 4 }] -@str.135 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.136 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.137 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.138 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.140 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.141 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.142 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.144 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.145 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.146 = private constant [12 x i8] c"alloc_count\00" -@field_names.147 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.146, i64 11 }] -@str.148 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.149 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.152 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.153 = private constant [5 x i8] c"next\00" -@fld.str.154 = private constant [4 x i8] c"cap\00" -@field_names.155 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.153, i64 4 }, { ptr, i64 } { ptr @fld.str.154, i64 3 }] -@str.156 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.157 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.158 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.159 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.160 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.161 = private constant [4 x i8] c"ctx\00" -@fld.str.162 = private constant [6 x i8] c"alloc\00" -@fld.str.163 = private constant [8 x i8] c"dealloc\00" -@field_names.164 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.161, i64 3 }, { ptr, i64 } { ptr @fld.str.162, i64 5 }, { ptr, i64 } { ptr @fld.str.163, i64 7 }] -@str.165 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.166 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.167 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.168 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.170 = private constant [6 x i8] c"first\00" -@fld.str.171 = private constant [10 x i8] c"end_index\00" -@fld.str.172 = private constant [7 x i8] c"parent\00" -@field_names.173 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.170, i64 5 }, { ptr, i64 } { ptr @fld.str.171, i64 9 }, { ptr, i64 } { ptr @fld.str.172, i64 6 }] -@str.174 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.175 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.176 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.177 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.178 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.179 = private constant [4 x i8] c"buf\00" -@fld.str.180 = private constant [4 x i8] c"len\00" -@fld.str.181 = private constant [4 x i8] c"pos\00" -@field_names.182 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.179, i64 3 }, { ptr, i64 } { ptr @fld.str.180, i64 3 }, { ptr, i64 } { ptr @fld.str.181, i64 3 }] -@str.183 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.184 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.185 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.186 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.187 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.188 = private constant [7 x i8] c"parent\00" -@fld.str.189 = private constant [12 x i8] c"alloc_count\00" -@fld.str.190 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.191 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.192 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.188, i64 6 }, { ptr, i64 } { ptr @fld.str.189, i64 11 }, { ptr, i64 } { ptr @fld.str.190, i64 13 }, { ptr, i64 } { ptr @fld.str.191, i64 17 }] -@str.193 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.194 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.195 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.196 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.197 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.198 = private constant [10 x i8] c"allocator\00" -@fld.str.199 = private constant [5 x i8] c"data\00" -@field_names.200 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.198, i64 9 }, { ptr, i64 } { ptr @fld.str.199, i64 4 }] -@str.201 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.203 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.204 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.205 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.206 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.207 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.209 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.210 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.212 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.213 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.214 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.215 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.216 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.217 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.218 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.219 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.220 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.221 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.222 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.223 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.224 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.225 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.226 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.227 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.228 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.229 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.230 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.231 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.232 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.233 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.234 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.235 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.236 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.237 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.238 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.239 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.240 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.241 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.242 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.243 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.244 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.245 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.246 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.247 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.248 = private unnamed_addr constant [10 x i8] c"*function\00", align 1 -@str.249 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.250 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.251 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.252 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.253 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.254 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.255 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.256 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.257 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.258 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.259 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.260 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.261 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.262 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.263 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.264 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.265 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.266 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.267 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.268 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.269 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.270 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.339 = private constant [5 x i8] c"line\00" +@fld.str.340 = private constant [4 x i8] c"col\00" +@fld.str.341 = 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.339, i64 4 }, { ptr, i64 } { ptr @fld.str.340, i64 3 }, { ptr, i64 } { ptr @fld.str.341, i64 4 }] +@str.342 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.343 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.344 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.345 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.346 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.347 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.348 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.349 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.350 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.352 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.353 = private constant [12 x i8] c"alloc_count\00" +@field_names.354 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.353, i64 11 }] +@str.355 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.356 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.357 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.358 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.359 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.360 = private constant [5 x i8] c"next\00" +@fld.str.361 = private constant [4 x i8] c"cap\00" +@field_names.362 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.360, i64 4 }, { ptr, i64 } { ptr @fld.str.361, i64 3 }] +@str.363 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.364 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.365 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.366 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.367 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.368 = private constant [4 x i8] c"ctx\00" +@fld.str.369 = private constant [6 x i8] c"alloc\00" +@fld.str.370 = private constant [8 x i8] c"dealloc\00" +@field_names.371 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.368, i64 3 }, { ptr, i64 } { ptr @fld.str.369, i64 5 }, { ptr, i64 } { ptr @fld.str.370, i64 7 }] +@str.372 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.373 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.374 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.375 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.376 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.377 = private constant [6 x i8] c"first\00" +@fld.str.378 = private constant [10 x i8] c"end_index\00" +@fld.str.379 = private constant [7 x i8] c"parent\00" +@field_names.380 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.377, i64 5 }, { ptr, i64 } { ptr @fld.str.378, i64 9 }, { ptr, i64 } { ptr @fld.str.379, i64 6 }] +@str.381 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.382 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.383 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.384 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.385 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.386 = private constant [4 x i8] c"buf\00" +@fld.str.387 = private constant [4 x i8] c"len\00" +@fld.str.388 = private constant [4 x i8] c"pos\00" +@field_names.389 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.386, i64 3 }, { ptr, i64 } { ptr @fld.str.387, i64 3 }, { ptr, i64 } { ptr @fld.str.388, i64 3 }] +@str.390 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.391 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.392 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.393 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.394 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.395 = private constant [7 x i8] c"parent\00" +@fld.str.396 = private constant [12 x i8] c"alloc_count\00" +@fld.str.397 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.398 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.399 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.395, i64 6 }, { ptr, i64 } { ptr @fld.str.396, i64 11 }, { ptr, i64 } { ptr @fld.str.397, i64 13 }, { ptr, i64 } { ptr @fld.str.398, i64 17 }] +@str.400 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.401 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.402 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.403 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.404 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.405 = private constant [10 x i8] c"allocator\00" +@fld.str.406 = private constant [5 x i8] c"data\00" +@field_names.407 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.405, i64 9 }, { ptr, i64 } { ptr @fld.str.406, i64 4 }] +@str.408 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.409 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.410 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.412 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.413 = private constant [3 x i8] c"fd\00" +@field_names.414 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.413, i64 2 }] +@str.415 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.416 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.417 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.419 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.420 = private constant [5 x i8] c"file\00" +@fld.str.421 = private constant [5 x i8] c"line\00" +@fld.str.422 = private constant [4 x i8] c"col\00" +@fld.str.423 = private constant [5 x i8] c"func\00" +@fld.str.424 = private constant [10 x i8] c"line_text\00" +@field_names.425 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.420, i64 4 }, { ptr, i64 } { ptr @fld.str.421, i64 4 }, { ptr, i64 } { ptr @fld.str.422, i64 3 }, { ptr, i64 } { ptr @fld.str.423, i64 4 }, { ptr, i64 } { ptr @fld.str.424, i64 9 }] +@str.426 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.427 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.428 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.429 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.430 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.431 = private constant [10 x i8] c"exit_code\00" +@fld.str.432 = private constant [7 x i8] c"stdout\00" +@field_names.433 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.431, i64 9 }, { ptr, i64 } { ptr @fld.str.432, i64 6 }] +@str.434 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.435 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.436 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.437 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.438 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.439 = private constant [8 x i8] c"sin_len\00" +@fld.str.440 = private constant [11 x i8] c"sin_family\00" +@fld.str.441 = private constant [9 x i8] c"sin_port\00" +@fld.str.442 = private constant [9 x i8] c"sin_addr\00" +@fld.str.443 = private constant [9 x i8] c"sin_zero\00" +@field_names.444 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.439, i64 7 }, { ptr, i64 } { ptr @fld.str.440, i64 10 }, { ptr, i64 } { ptr @fld.str.441, i64 8 }, { ptr, i64 } { ptr @fld.str.442, i64 8 }, { ptr, i64 } { ptr @fld.str.443, i64 8 }] +@str.445 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.446 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.447 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.448 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.449 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.450 = private constant [6 x i8] c"items\00" +@fld.str.451 = private constant [4 x i8] c"len\00" +@fld.str.452 = private constant [4 x i8] c"cap\00" +@field_names.453 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.450, i64 5 }, { ptr, i64 } { ptr @fld.str.451, i64 3 }, { ptr, i64 } { ptr @fld.str.452, i64 3 }] +@str.454 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.455 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.456 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.457 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.458 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.459 = private constant [6 x i8] c"items\00" +@fld.str.460 = private constant [4 x i8] c"len\00" +@fld.str.461 = private constant [4 x i8] c"cap\00" +@field_names.462 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.459, i64 5 }, { ptr, i64 } { ptr @fld.str.460, i64 3 }, { ptr, i64 } { ptr @fld.str.461, i64 3 }] +@str.463 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.464 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.465 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.466 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.467 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.468 = private constant [4 x i8] c"key\00" +@fld.str.469 = private constant [4 x i8] c"val\00" +@field_names.470 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.468, i64 3 }, { ptr, i64 } { ptr @fld.str.469, i64 3 }] +@str.471 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.472 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.473 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.474 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.475 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.476 = private constant [4 x i8] c"dst\00" +@fld.str.477 = private constant [4 x i8] c"pos\00" +@fld.str.478 = private constant [5 x i8] c"file\00" +@field_names.479 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.476, i64 3 }, { ptr, i64 } { ptr @fld.str.477, i64 3 }, { ptr, i64 } { ptr @fld.str.478, i64 4 }] +@str.480 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.481 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.482 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.483 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.484 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.485 = private constant [4 x i8] c"src\00" +@fld.str.486 = private constant [4 x i8] c"pos\00" +@fld.str.487 = private constant [6 x i8] c"alloc\00" +@field_names.488 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.485, i64 3 }, { ptr, i64 } { ptr @fld.str.486, i64 3 }, { ptr, i64 } { ptr @fld.str.487, i64 5 }] +@str.489 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.490 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.491 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.493 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.494 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.495 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.496 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.497 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.498 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.499 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.500 = private constant [5 x i8] c"name\00" +@fld.str.501 = private constant [12 x i8] c"takes_value\00" +@fld.str.502 = private constant [9 x i8] c"required\00" +@field_names.503 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.500, i64 4 }, { ptr, i64 } { ptr @fld.str.501, i64 11 }, { ptr, i64 } { ptr @fld.str.502, i64 8 }] +@str.504 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.505 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.506 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.507 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.508 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.509 = private constant [6 x i8] c"group\00" +@fld.str.510 = private constant [8 x i8] c"command\00" +@fld.str.511 = private constant [6 x i8] c"flags\00" +@field_names.512 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.509, i64 5 }, { ptr, i64 } { ptr @fld.str.510, i64 7 }, { ptr, i64 } { ptr @fld.str.511, i64 5 }] +@str.513 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.514 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.515 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.516 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.517 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.518 = private constant [4 x i8] c"set\00" +@fld.str.519 = private constant [6 x i8] c"value\00" +@field_names.520 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.518, i64 3 }, { ptr, i64 } { ptr @fld.str.519, i64 5 }] +@str.521 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.522 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.523 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.524 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.525 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.526 = private constant [6 x i8] c"index\00" +@fld.str.527 = private constant [6 x i8] c"token\00" +@field_names.528 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.526, i64 5 }, { ptr, i64 } { ptr @fld.str.527, i64 5 }] +@str.529 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.530 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.531 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.532 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.533 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.534 = private constant [6 x i8] c"group\00" +@fld.str.535 = private constant [8 x i8] c"command\00" +@fld.str.536 = private constant [10 x i8] c"cmd_index\00" +@fld.str.537 = private constant [5 x i8] c"json\00" +@fld.str.538 = private constant [5 x i8] c"rest\00" +@fld.str.539 = private constant [5 x i8] c"spec\00" +@fld.str.540 = private constant [7 x i8] c"values\00" +@field_names.541 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.534, i64 5 }, { ptr, i64 } { ptr @fld.str.535, i64 7 }, { ptr, i64 } { ptr @fld.str.536, i64 9 }, { ptr, i64 } { ptr @fld.str.537, i64 4 }, { ptr, i64 } { ptr @fld.str.538, i64 4 }, { ptr, i64 } { ptr @fld.str.539, i64 4 }, { ptr, i64 } { ptr @fld.str.540, i64 6 }] +@str.542 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.543 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.544 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.545 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.546 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.547 = private constant [2 x i8] c"h\00" +@fld.str.548 = private constant [4 x i8] c"buf\00" +@fld.str.549 = private constant [8 x i8] c"buf_len\00" +@fld.str.550 = private constant [10 x i8] c"total_len\00" +@field_names.551 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.547, i64 1 }, { ptr, i64 } { ptr @fld.str.548, i64 3 }, { ptr, i64 } { ptr @fld.str.549, i64 7 }, { ptr, i64 } { ptr @fld.str.550, i64 9 }] +@str.552 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.553 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.554 = private constant [5 x i8] c"read\00" +@fld.str.555 = private constant [6 x i8] c"write\00" +@fld.str.556 = private constant [7 x i8] c"append\00" +@fld.str.557 = private constant [11 x i8] c"read_write\00" +@field_names.558 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.554, i64 4 }, { ptr, i64 } { ptr @fld.str.555, i64 5 }, { ptr, i64 } { ptr @fld.str.556, i64 6 }, { ptr, i64 } { ptr @fld.str.557, i64 10 }] +@str.559 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.560 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.562 = private constant [4 x i8] c"set\00" +@fld.str.563 = private constant [8 x i8] c"current\00" +@fld.str.564 = private constant [4 x i8] c"end\00" +@field_names.565 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.562, i64 3 }, { ptr, i64 } { ptr @fld.str.563, i64 7 }, { ptr, i64 } { ptr @fld.str.564, i64 3 }] +@str.566 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.567 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.569 = private constant [6 x i8] c"null_\00" +@fld.str.570 = private constant [6 x i8] c"bool_\00" +@fld.str.571 = private constant [5 x i8] c"int_\00" +@fld.str.572 = private constant [4 x i8] c"str\00" +@fld.str.573 = private constant [6 x i8] c"array\00" +@fld.str.574 = private constant [7 x i8] c"object\00" +@field_names.575 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.569, i64 5 }, { ptr, i64 } { ptr @fld.str.570, i64 5 }, { ptr, i64 } { ptr @fld.str.571, i64 4 }, { ptr, i64 } { ptr @fld.str.572, i64 3 }, { ptr, i64 } { ptr @fld.str.573, i64 5 }, { ptr, i64 } { ptr @fld.str.574, i64 6 }] +@str.576 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.577 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.578 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.579 = private constant [6 x i8] c"macos\00" +@fld.str.580 = private constant [6 x i8] c"linux\00" +@fld.str.581 = private constant [8 x i8] c"windows\00" +@fld.str.582 = private constant [5 x i8] c"wasm\00" +@fld.str.583 = private constant [4 x i8] c"ios\00" +@fld.str.584 = private constant [8 x i8] c"android\00" +@fld.str.585 = private constant [8 x i8] c"unknown\00" +@field_names.586 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.579, i64 5 }, { ptr, i64 } { ptr @fld.str.580, i64 5 }, { ptr, i64 } { ptr @fld.str.581, i64 7 }, { ptr, i64 } { ptr @fld.str.582, i64 4 }, { ptr, i64 } { ptr @fld.str.583, i64 3 }, { ptr, i64 } { ptr @fld.str.584, i64 7 }, { ptr, i64 } { ptr @fld.str.585, i64 7 }] +@str.587 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.588 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.589 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.590 = private constant [8 x i8] c"aarch64\00" +@fld.str.591 = private constant [7 x i8] c"x86_64\00" +@fld.str.592 = private constant [7 x i8] c"wasm32\00" +@fld.str.593 = private constant [7 x i8] c"wasm64\00" +@fld.str.594 = private constant [8 x i8] c"unknown\00" +@field_names.595 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.590, i64 7 }, { ptr, i64 } { ptr @fld.str.591, i64 6 }, { ptr, i64 } { ptr @fld.str.592, i64 6 }, { ptr, i64 } { ptr @fld.str.593, i64 6 }, { ptr, i64 } { ptr @fld.str.594, i64 7 }] +@str.596 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.597 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.600 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.601 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.602 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.603 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.604 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.606 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.609 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.612 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.615 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.618 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.621 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.624 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.627 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.628 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.629 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.630 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.631 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.632 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.633 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.634 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.635 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.636 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.637 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.638 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.639 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.640 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.641 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.642 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.643 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.644 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.645 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.646 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.647 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.648 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.649 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.650 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.651 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.652 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.653 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.654 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.655 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.656 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.657 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.658 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.659 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.660 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.661 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.662 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.663 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.664 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.665 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.666 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.667 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.668 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.669 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.670 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.671 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.672 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.673 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.674 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.675 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.677 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.678 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.679 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.680 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.681 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.682 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.683 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.684 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.685 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.686 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.687 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.688 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.689 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.690 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.691 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.692 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.693 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.694 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.695 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.696 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.698 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.699 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.700 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.701 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.702 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.703 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.704 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.705 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.706 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.707 = private unnamed_addr constant [10 x i8] c"*function\00", align 1 +@str.708 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.709 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.710 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.711 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.712 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.713 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.714 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.715 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.716 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.717 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.718 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.719 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.720 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.722 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.723 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.724 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.725 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -487,7 +842,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -614,7 +969,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -783,38 +1138,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.204 + br label %while.hdr.371 -while.hdr.204: ; preds = %if.merge.209, %entry +while.hdr.371: ; preds = %if.merge.376, %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.205, label %while.exit.206 + br i1 %icmp, label %while.body.372, label %while.exit.373 -while.body.205: ; preds = %while.hdr.204 +while.body.372: ; preds = %while.hdr.371 %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.207, label %if.else.208 + br i1 %icmpN, label %if.then.374, label %if.else.375 -while.exit.206: ; preds = %while.hdr.204 +while.exit.373: ; preds = %while.hdr.371 ret void -if.then.207: ; preds = %while.body.205 +if.then.374: ; preds = %while.body.372 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.209 + br label %if.merge.376 -if.else.208: ; preds = %while.body.205 +if.else.375: ; preds = %while.body.372 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.209 + br label %if.merge.376 -if.merge.209: ; preds = %if.else.208, %if.then.207 - %bp = phi i64 [ %addN, %if.then.207 ], [ %addN, %if.else.208 ] +if.merge.376: ; preds = %if.else.375, %if.then.374 + %bp = phi i64 [ %addN, %if.then.374 ], [ %addN, %if.else.375 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -827,7 +1182,7 @@ if.merge.209: ; preds = %if.else.208, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.204 + br label %while.hdr.371 } ; Function Attrs: nounwind @@ -945,12 +1300,12 @@ entry: 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.202, label %if.merge.203 + br i1 %icmp, label %if.then.369, label %if.merge.370 -if.then.202: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.369: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.203: ; preds = %entry +if.merge.370: ; 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 @@ -981,14 +1336,14 @@ if.merge.203: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.210 + br label %while.hdr.377 -while.hdr.210: ; preds = %if.merge.214, %if.merge.203 +while.hdr.377: ; preds = %if.merge.381, %if.merge.370 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.211, label %while.exit.212 + br i1 %icmpN, label %while.body.378, label %while.exit.379 -while.body.211: ; preds = %while.hdr.210 +while.body.378: ; preds = %while.hdr.377 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -996,9 +1351,9 @@ while.body.211: ; preds = %while.hdr.210 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.213, label %if.merge.214 + br i1 %icmpN, label %if.then.380, label %if.merge.381 -while.exit.212: ; preds = %if.then.213, %while.hdr.210 +while.exit.379: ; preds = %if.then.380, %while.hdr.377 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1006,14 +1361,14 @@ while.exit.212: ; preds = %if.then.213, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.213: ; preds = %while.body.211 - br label %while.exit.212 +if.then.380: ; preds = %while.body.378 + br label %while.exit.379 -if.merge.214: ; preds = %while.body.211 +if.merge.381: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.210 + br label %while.hdr.377 } ; Function Attrs: nounwind @@ -1091,11 +1446,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1128,10 +1486,41 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 + i64 39, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 46, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 100, label %match.arm.47 i64 36, label %match.arm.48 - i64 44, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 98, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1140,26 +1529,42 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 38, label %match.arm.49 - i64 39, label %match.arm.49 i64 40, label %match.arm.49 - i64 41, label %match.arm.49 - i64 42, label %match.arm.49 - i64 43, label %match.arm.49 - i64 45, label %match.arm.49 + i64 44, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 i64 49, label %match.arm.49 i64 50, label %match.arm.49 + i64 56, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 94, label %match.arm.49 + i64 95, label %match.arm.49 + i64 96, label %match.arm.49 + i64 97, label %match.arm.49 + i64 99, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 103, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.178, %dispatch.merge.164, %dispatch.merge.150, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.472, %dispatch.merge.333, %dispatch.merge.301, %dispatch.merge.263, %dispatch.merge.246, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1168,7 +1573,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [74 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [162 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1196,7 +1601,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1210,71 +1615,132 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.247 [ + i64 37, label %dispatch.case.248 + i64 38, label %dispatch.case.249 + i64 54, label %dispatch.case.250 + i64 70, label %dispatch.case.251 + i64 71, label %dispatch.case.252 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.151 [ - i64 35, label %dispatch.case.152 - i64 46, label %dispatch.case.153 + switch i64 %ua.raw29, label %dispatch.default.264 [ + i64 35, label %dispatch.case.265 + i64 81, label %dispatch.case.266 + i64 87, label %dispatch.case.267 + i64 88, label %dispatch.case.268 + i64 92, label %dispatch.case.269 + i64 100, label %dispatch.case.270 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.165 [ - i64 36, label %dispatch.case.166 - i64 44, label %dispatch.case.167 + switch i64 %ua.raw33, label %dispatch.default.302 [ + i64 36, label %dispatch.case.303 + i64 60, label %dispatch.case.304 + i64 77, label %dispatch.case.305 + i64 85, label %dispatch.case.306 + i64 98, label %dispatch.case.307 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.179 [ - i64 18, label %dispatch.case.180 - i64 21, label %dispatch.case.181 - i64 23, label %dispatch.case.182 - i64 25, label %dispatch.case.183 - i64 28, label %dispatch.case.184 - i64 29, label %dispatch.case.185 - i64 31, label %dispatch.case.186 - i64 33, label %dispatch.case.187 - i64 38, label %dispatch.case.188 - i64 39, label %dispatch.case.189 - i64 40, label %dispatch.case.190 - i64 41, label %dispatch.case.191 - i64 42, label %dispatch.case.192 - i64 43, label %dispatch.case.193 - i64 45, label %dispatch.case.194 - i64 47, label %dispatch.case.195 - i64 48, label %dispatch.case.196 - i64 49, label %dispatch.case.197 - i64 50, label %dispatch.case.198 + switch i64 %ua.raw37, label %dispatch.default.334 [ + i64 18, label %dispatch.case.335 + i64 21, label %dispatch.case.336 + i64 23, label %dispatch.case.337 + i64 25, label %dispatch.case.338 + i64 28, label %dispatch.case.339 + i64 29, label %dispatch.case.340 + i64 31, label %dispatch.case.341 + i64 33, label %dispatch.case.342 + i64 40, label %dispatch.case.343 + i64 44, label %dispatch.case.344 + i64 47, label %dispatch.case.345 + i64 49, label %dispatch.case.346 + i64 50, label %dispatch.case.347 + i64 56, label %dispatch.case.348 + i64 57, label %dispatch.case.349 + i64 58, label %dispatch.case.350 + i64 59, label %dispatch.case.351 + i64 62, label %dispatch.case.352 + i64 67, label %dispatch.case.353 + i64 74, label %dispatch.case.354 + i64 83, label %dispatch.case.355 + i64 86, label %dispatch.case.356 + i64 90, label %dispatch.case.357 + i64 94, label %dispatch.case.358 + i64 95, label %dispatch.case.359 + i64 96, label %dispatch.case.360 + i64 97, label %dispatch.case.361 + i64 99, label %dispatch.case.362 + i64 101, label %dispatch.case.363 + i64 102, label %dispatch.case.364 + i64 103, label %dispatch.case.365 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.473 [ + i64 41, label %dispatch.case.474 + i64 42, label %dispatch.case.475 + i64 46, label %dispatch.case.476 + i64 91, label %dispatch.case.477 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [74 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [162 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1284,15 +1750,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1300,16 +1766,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1319,278 +1785,628 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.100, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.305, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.150: ; preds = %dispatch.case.153, %dispatch.case.152, %dispatch.default.151 +dispatch.case.105: ; preds = %match.arm.43 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.106: ; preds = %match.arm.43 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.107: ; preds = %match.arm.43 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.246: ; preds = %dispatch.case.252, %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.default.247 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.151: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.101, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.150 +dispatch.default.247: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.306, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.246 -dispatch.case.152: ; preds = %match.arm.47 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86) +dispatch.case.248: ; preds = %match.arm.44 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.case.153: ; preds = %match.arm.47 - %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr - %ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90) +dispatch.case.249: ; preds = %match.arm.44 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.merge.164: ; preds = %dispatch.case.167, %dispatch.case.166, %dispatch.default.165 +dispatch.case.250: ; preds = %match.arm.44 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.251: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.252: ; preds = %match.arm.44 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.merge.263: ; preds = %dispatch.case.270, %dispatch.case.269, %dispatch.case.268, %dispatch.case.267, %dispatch.case.266, %dispatch.case.265, %dispatch.default.264 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.165: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.102, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.164 +dispatch.default.264: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.307, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.263 -dispatch.case.166: ; preds = %match.arm.48 - %ua.raw93 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr94 = inttoptr i64 %ua.raw93 to ptr - %ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95) +dispatch.case.265: ; preds = %match.arm.47 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.164 + br label %dispatch.merge.263 -dispatch.case.167: ; preds = %match.arm.48 - %ua.raw97 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr98 = inttoptr i64 %ua.raw97 to ptr - %ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99) +dispatch.case.266: ; preds = %match.arm.47 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.164 + br label %dispatch.merge.263 -dispatch.merge.178: ; preds = %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.case.189, %dispatch.case.188, %dispatch.case.187, %dispatch.case.186, %dispatch.case.185, %dispatch.case.184, %dispatch.case.183, %dispatch.case.182, %dispatch.case.181, %dispatch.case.180, %dispatch.default.179 +dispatch.case.267: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.268: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.269: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.270: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.merge.301: ; preds = %dispatch.case.307, %dispatch.case.306, %dispatch.case.305, %dispatch.case.304, %dispatch.case.303, %dispatch.default.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.179: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.103, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.178 +dispatch.default.302: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.301 -dispatch.case.180: ; preds = %match.arm.49 - %ua.raw102 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw102 to ptr +dispatch.case.303: ; preds = %match.arm.48 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr200 = inttoptr i64 %ua.raw199 to ptr + %ua.load201 = load { ptr, i64 }, ptr %ua.ptr200, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load201) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.304: ; preds = %match.arm.48 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.305: ; preds = %match.arm.48 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.306: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.307: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.merge.333: ; preds = %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.case.340, %dispatch.case.339, %dispatch.case.338, %dispatch.case.337, %dispatch.case.336, %dispatch.case.335, %dispatch.default.334 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.334: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.335: ; preds = %match.arm.49 + %ua.raw220 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw220 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.181: ; preds = %match.arm.49 - %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 - %iNp105 = inttoptr i64 %ua.raw104 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105) +dispatch.case.336: ; preds = %match.arm.49 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %iNp223 = inttoptr i64 %ua.raw222 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp223) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.182: ; preds = %match.arm.49 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %iNp108 = inttoptr i64 %ua.raw107 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108) +dispatch.case.337: ; preds = %match.arm.49 + %ua.raw225 = extractvalue { i64, i64 } %loadN, 1 + %iNp226 = inttoptr i64 %ua.raw225 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp226) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.183: ; preds = %match.arm.49 - %ua.raw110 = extractvalue { i64, i64 } %loadN, 1 - %iNp111 = inttoptr i64 %ua.raw110 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111) +dispatch.case.338: ; preds = %match.arm.49 + %ua.raw228 = extractvalue { i64, i64 } %loadN, 1 + %iNp229 = inttoptr i64 %ua.raw228 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp229) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.184: ; preds = %match.arm.49 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %iNp114 = inttoptr i64 %ua.raw113 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114) +dispatch.case.339: ; preds = %match.arm.49 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %iNp232 = inttoptr i64 %ua.raw231 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp232) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.185: ; preds = %match.arm.49 - %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 - %iNp117 = inttoptr i64 %ua.raw116 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117) +dispatch.case.340: ; preds = %match.arm.49 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.186: ; preds = %match.arm.49 - %ua.raw119 = extractvalue { i64, i64 } %loadN, 1 - %iNp120 = inttoptr i64 %ua.raw119 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120) +dispatch.case.341: ; preds = %match.arm.49 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.187: ; preds = %match.arm.49 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %iNp123 = inttoptr i64 %ua.raw122 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123) +dispatch.case.342: ; preds = %match.arm.49 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.188: ; preds = %match.arm.49 - %ua.raw125 = extractvalue { i64, i64 } %loadN, 1 - %iNp126 = inttoptr i64 %ua.raw125 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126) +dispatch.case.343: ; preds = %match.arm.49 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.189: ; preds = %match.arm.49 - %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 - %iNp129 = inttoptr i64 %ua.raw128 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129) +dispatch.case.344: ; preds = %match.arm.49 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.190: ; preds = %match.arm.49 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp132 = inttoptr i64 %ua.raw131 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132) +dispatch.case.345: ; preds = %match.arm.49 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.191: ; preds = %match.arm.49 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %iNp135 = inttoptr i64 %ua.raw134 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_fn_s32_s32__s32(ptr %0, ptr %iNp135) +dispatch.case.346: ; preds = %match.arm.49 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.192: ; preds = %match.arm.49 - %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 - %iNp138 = inttoptr i64 %ua.raw137 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp138) +dispatch.case.347: ; preds = %match.arm.49 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.193: ; preds = %match.arm.49 - %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 - %iNp141 = inttoptr i64 %ua.raw140 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp141) +dispatch.case.348: ; preds = %match.arm.49 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.194: ; preds = %match.arm.49 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %iNp144 = inttoptr i64 %ua.raw143 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp144) +dispatch.case.349: ; preds = %match.arm.49 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.195: ; preds = %match.arm.49 - %ua.raw146 = extractvalue { i64, i64 } %loadN, 1 - %iNp147 = inttoptr i64 %ua.raw146 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp147) +dispatch.case.350: ; preds = %match.arm.49 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.196: ; preds = %match.arm.49 - %ua.raw149 = extractvalue { i64, i64 } %loadN, 1 - %iNp150 = inttoptr i64 %ua.raw149 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp150) +dispatch.case.351: ; preds = %match.arm.49 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.197: ; preds = %match.arm.49 - %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 - %iNp153 = inttoptr i64 %ua.raw152 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp153) +dispatch.case.352: ; preds = %match.arm.49 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.198: ; preds = %match.arm.49 - %ua.raw155 = extractvalue { i64, i64 } %loadN, 1 - %iNp156 = inttoptr i64 %ua.raw155 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp156) +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 + +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp280) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp283) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp286) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp289) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_fn_s32_s32__s32(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.merge.472: ; preds = %dispatch.case.477, %dispatch.case.476, %dispatch.case.475, %dispatch.case.474, %dispatch.default.473 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.473: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.310, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.474: ; preds = %match.arm.50 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr314 = inttoptr i64 %ua.raw313 to ptr + %ua.load315 = load { { i32 }, i1 }, ptr %ua.ptr314, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load315) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.475: ; preds = %match.arm.50 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { ptr, i64 }, i1 }, ptr %ua.ptr318, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.476: ; preds = %match.arm.50 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.477: ; preds = %match.arm.50 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { [64 x i8], i1 }, ptr %ua.ptr326, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 } ; Function Attrs: nounwind @@ -1599,7 +2415,7 @@ 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.104, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.311, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1695,7 +2511,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.105, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, 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 @@ -1703,7 +2519,7 @@ if.then.12: ; preds = %if.then.9 %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.106, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.313, 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 @@ -1713,13 +2529,13 @@ if.then.12: ; preds = %if.then.9 %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.107, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.314, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.108, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, 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 @@ -1727,7 +2543,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.109, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1741,7 +2557,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, 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 @@ -1749,7 +2565,7 @@ if.then.23: ; preds = %if.else.10 %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.111, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, 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 @@ -1760,7 +2576,7 @@ if.then.23: ; preds = %if.else.10 %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.112, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1817,7 +2633,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, 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 @@ -1825,7 +2641,7 @@ if.then.32: ; preds = %if.then.29 %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.114, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1836,7 +2652,7 @@ if.then.32: ; preds = %if.then.29 %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.115, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1856,7 +2672,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, 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 @@ -1864,7 +2680,7 @@ if.then.35: ; preds = %while.exit.2 %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.117, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, 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 @@ -1875,7 +2691,7 @@ if.then.35: ; preds = %while.exit.2 %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.118, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -1952,6 +2768,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i32 @add(ptr %0, i32 %1, i32 %2) #0 { entry: @@ -2031,7 +3585,7 @@ entry: define internal void @print__ct_sab6a3b1f9bc359ad__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.119, i64 13 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.326, i64 13 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2047,7 +3601,7 @@ entry: %gepN = getelementptr inbounds { 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.120, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.327, 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 10) @@ -2075,7 +3629,7 @@ entry: ; 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.121, i64 13 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.328, i64 13 }) ret { ptr, i64 } %call } @@ -2083,7 +3637,7 @@ entry: define internal void @print__ct_s3417a75739024851__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.122, i64 20 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.329, i64 20 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2099,7 +3653,7 @@ entry: %gepN = getelementptr inbounds { 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.123, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.330, 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 17) @@ -2127,7 +3681,7 @@ entry: ; 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.124, i64 20 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.331, i64 20 }) ret { ptr, i64 } %call } @@ -2135,7 +3689,7 @@ entry: define internal void @print__ct_s2ed9f416bd1dfc65__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.125, i64 20 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.332, i64 20 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2151,7 +3705,7 @@ entry: %gepN = getelementptr inbounds { 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.126, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.333, 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 17) @@ -2179,7 +3733,7 @@ entry: ; 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.127, i64 20 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.334, i64 20 }) ret { ptr, i64 } %call } @@ -2190,35 +3744,35 @@ entry: %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.128, i64 15 }, { ptr, i64 } { ptr @str.129, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.335, i64 15 }, { ptr, i64 } { ptr @str.336, 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.105 + br label %while.hdr.121 -while.hdr.105: ; preds = %fv.merge, %entry +while.hdr.121: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.106, label %while.exit.107 + br i1 %icmp, label %while.body.122, label %while.exit.123 -while.body.106: ; preds = %while.hdr.105 +while.body.122: ; preds = %while.hdr.121 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.108, label %if.merge.109 + br i1 %icmpN, label %if.then.124, label %if.merge.125 -while.exit.107: ; preds = %while.hdr.105 +while.exit.123: ; preds = %while.hdr.121 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.337, i64 1 }) ret { ptr, i64 } %callN -if.then.108: ; preds = %while.body.106 +if.then.124: ; preds = %while.body.122 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.109 + br label %if.merge.125 -if.merge.109: ; preds = %if.then.108, %while.body.106 +if.merge.125: ; preds = %if.then.124, %while.body.122 %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 @@ -2226,7 +3780,7 @@ if.merge.109: ; preds = %if.then.108, %while %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.135, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.342, 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 @@ -2246,31 +3800,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.105 + br label %while.hdr.121 -fv.default: ; preds = %if.merge.109 +fv.default: ; preds = %if.merge.125 br label %fv.merge -fv.case: ; preds = %if.merge.109 +fv.case: ; preds = %if.merge.125 %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.109 +fv.case17: ; preds = %if.merge.125 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.109 +fv.case20: ; preds = %if.merge.125 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.109 +fv.case24: ; preds = %if.merge.125 %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 @@ -2283,43 +3837,43 @@ 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.136, i64 10 }, { ptr, i64 } { ptr @str.137, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.343, i64 10 }, { ptr, i64 } { ptr @str.344, 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.110 + br label %while.hdr.126 -while.hdr.110: ; preds = %if.merge.114, %entry +while.hdr.126: ; preds = %if.merge.130, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.111, label %while.exit.112 + br i1 %icmp, label %while.body.127, label %while.exit.128 -while.body.111: ; preds = %while.hdr.110 +while.body.127: ; preds = %while.hdr.126 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.113, label %if.merge.114 + br i1 %icmpN, label %if.then.129, label %if.merge.130 -while.exit.112: ; preds = %while.hdr.110 +while.exit.128: ; preds = %while.hdr.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, i64 1 }) ret { ptr, i64 } %callN -if.then.113: ; preds = %while.body.111 +if.then.129: ; preds = %while.body.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.114 + br label %if.merge.130 -if.merge.114: ; preds = %if.then.113, %while.body.111 +if.merge.130: ; preds = %if.then.129, %while.body.127 %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.140, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.347, 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.141, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.348, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2330,7 +3884,7 @@ if.merge.114: ; preds = %if.then.113, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.110 + br label %while.hdr.126 } ; Function Attrs: nounwind @@ -2338,43 +3892,43 @@ 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.142, i64 3 }, { ptr, i64 } { ptr @str.143, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.349, i64 3 }, { ptr, i64 } { ptr @str.350, 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.115 + br label %while.hdr.131 -while.hdr.115: ; preds = %fv.merge, %entry +while.hdr.131: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.116: ; preds = %while.hdr.115 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.117: ; preds = %while.hdr.115 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.351, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.145, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.135 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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.147, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.354, 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.148, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.355, 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 @@ -2391,12 +3945,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.131 -fv.default: ; preds = %if.merge.119 +fv.default: ; preds = %if.merge.135 br label %fv.merge -fv.case: ; preds = %if.merge.119 +fv.case: ; preds = %if.merge.135 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2407,43 +3961,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.149, i64 10 }, { ptr, i64 } { ptr @str.150, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.356, i64 10 }, { ptr, i64 } { ptr @str.357, 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.120 + br label %while.hdr.136 -while.hdr.120: ; preds = %fv.merge, %entry +while.hdr.136: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.121: ; preds = %while.hdr.120 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.122: ; preds = %while.hdr.120 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.124 + br label %if.merge.140 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.155, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.362, 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.156, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.363, 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 @@ -2461,18 +4015,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.136 -fv.default: ; preds = %if.merge.124 +fv.default: ; preds = %if.merge.140 br label %fv.merge -fv.case: ; preds = %if.merge.124 +fv.case: ; preds = %if.merge.140 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.124 +fv.case17: ; preds = %if.merge.140 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2483,43 +4037,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.157, i64 9 }, { ptr, i64 } { ptr @str.158, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.364, i64 9 }, { ptr, i64 } { ptr @str.365, 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.125 + br label %while.hdr.141 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.126: ; preds = %while.hdr.125 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.127: ; preds = %while.hdr.125 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.160, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.145 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.164, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.371, 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.165, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.372, 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 @@ -2538,24 +4092,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.129 +fv.case17: ; preds = %if.merge.145 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.129 +fv.case21: ; preds = %if.merge.145 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2568,43 +4122,43 @@ 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.166, i64 5 }, { ptr, i64 } { ptr @str.167, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.373, i64 5 }, { ptr, i64 } { ptr @str.374, 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.130 + br label %while.hdr.146 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.131: ; preds = %while.hdr.130 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.132: ; preds = %while.hdr.130 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.376, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.150 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.173, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.380, 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.174, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.381, 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 @@ -2623,23 +4177,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.150 %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.134 +fv.case20: ; preds = %if.merge.150 %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 @@ -2652,43 +4206,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.175, i64 8 }, { ptr, i64 } { ptr @str.176, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.382, i64 8 }, { ptr, i64 } { ptr @str.383, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.384, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.385, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.182, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.389, 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.183, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.390, 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 @@ -2707,23 +4261,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.155 %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.139 +fv.case20: ; preds = %if.merge.155 %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 @@ -2735,43 +4289,43 @@ 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.184, i64 17 }, { ptr, i64 } { ptr @str.185, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.391, i64 17 }, { ptr, i64 } { ptr @str.392, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.393, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.187, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.394, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.192, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.399, 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.193, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.400, 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 @@ -2791,29 +4345,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.160 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.160 %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.144 +fv.case20: ; preds = %if.merge.160 %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.144 +fv.case23: ; preds = %if.merge.160 %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 @@ -2825,43 +4379,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.194, i64 7 }, { ptr, i64 } { ptr @str.195, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.401, i64 7 }, { ptr, i64 } { ptr @str.402, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.196, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.403, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.197, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.404, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.200, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.407, 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.201, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, 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 %alloca, align 8 @@ -2879,25 +4433,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.165 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.409, i64 4 }, { ptr, i64 } { ptr @str.410, 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.166 + +while.hdr.166: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.167, label %while.exit.168 + +while.body.167: ; preds = %while.hdr.166 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.169, label %if.merge.170 + +while.exit.168: ; preds = %while.hdr.166 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, i64 1 }) + ret { ptr, i64 } %callN + +if.then.169: ; preds = %while.body.167 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.170 + +if.merge.170: ; preds = %if.then.169, %while.body.167 + %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.414, 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.415, 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.166 + +fv.default: ; preds = %if.merge.170 + br label %fv.merge + +fv.case: ; preds = %if.merge.170 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.416, i64 10 }, { ptr, i64 } { ptr @str.417, 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.171 + +while.hdr.171: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.172, label %while.exit.173 + +while.body.172: ; preds = %while.hdr.171 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.174, label %if.merge.175 + +while.exit.173: ; preds = %while.hdr.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.418, i64 1 }) + ret { ptr, i64 } %callN + +if.then.174: ; preds = %while.body.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.175 + +if.merge.175: ; preds = %if.then.174, %while.body.172 + %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.425, 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.426, 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.171 + +fv.default: ; preds = %if.merge.175 + br label %fv.merge + +fv.case: ; preds = %if.merge.175 + %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.175 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.175 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.175 + %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.175 + %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.427, i64 13 }, { ptr, i64 } { ptr @str.428, 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.176 + +while.hdr.176: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.177, label %while.exit.178 + +while.body.177: ; preds = %while.hdr.176 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.179, label %if.merge.180 + +while.exit.178: ; preds = %while.hdr.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.429, i64 1 }) + ret { ptr, i64 } %callN + +if.then.179: ; preds = %while.body.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.430, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.180 + +if.merge.180: ; preds = %if.then.179, %while.body.177 + %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.433, 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.434, 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.176 + +fv.default: ; preds = %if.merge.180 + br label %fv.merge + +fv.case: ; preds = %if.merge.180 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.180 + %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.435, i64 8 }, { ptr, i64 } { ptr @str.436, 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.181 + +while.hdr.181: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.182, label %while.exit.183 + +while.body.182: ; preds = %while.hdr.181 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.184, label %if.merge.185 + +while.exit.183: ; preds = %while.hdr.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.437, i64 1 }) + ret { ptr, i64 } %callN + +if.then.184: ; preds = %while.body.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.438, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.185 + +if.merge.185: ; preds = %if.then.184, %while.body.182 + %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.444, 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.445, 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.181 + +fv.default: ; preds = %if.merge.185 + br label %fv.merge + +fv.case: ; preds = %if.merge.185 + %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.185 + %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.185 + %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.185 + %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.185 + %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.446, i64 5 }, { ptr, i64 } { ptr @str.447, 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.186 + +while.hdr.186: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.187, label %while.exit.188 + +while.body.187: ; preds = %while.hdr.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 + +while.exit.188: ; preds = %while.hdr.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.448, i64 1 }) + ret { ptr, i64 } %callN + +if.then.189: ; preds = %while.body.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.449, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.190 + +if.merge.190: ; preds = %if.then.189, %while.body.187 + %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.453, 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.454, 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.186 + +fv.default: ; preds = %if.merge.190 + br label %fv.merge + +fv.case: ; preds = %if.merge.190 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.190 + %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.190 + %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.455, i64 6 }, { ptr, i64 } { ptr @str.456, 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.191 + +while.hdr.191: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.192, label %while.exit.193 + +while.body.192: ; preds = %while.hdr.191 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.194, label %if.merge.195 + +while.exit.193: ; preds = %while.hdr.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.457, i64 1 }) + ret { ptr, i64 } %callN + +if.then.194: ; preds = %while.body.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.458, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.195 + +if.merge.195: ; preds = %if.then.194, %while.body.192 + %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.462, 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.463, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.195 + %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.195 + %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.464, i64 6 }, { ptr, i64 } { ptr @str.465, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.466, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.467, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.470, 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.471, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %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.200 + %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 54, 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.472, i64 4 }, { ptr, i64 } { ptr @str.473, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.474, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.475, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.479, 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.480, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.205 + %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.205 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.481, i64 6 }, { ptr, i64 } { ptr @str.482, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.483, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.484, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.488, 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.489, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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.210 + %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.210 + %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 26, i64 undef }, i64 %ba.p2i23, 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.490, i64 12 }, { ptr, i64 } { ptr @str.491, 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.211 + +while.hdr.211: ; preds = %if.merge.215, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.492, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.494, 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.495, 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.211 +} + +; 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.496, i64 8 }, { ptr, i64 } { ptr @str.497, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.498, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.499, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.503, 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.504, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %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.220 + %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.220 + %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.505, i64 7 }, { ptr, i64 } { ptr @str.506, 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.221 + +while.hdr.221: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.507, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.508, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.512, 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.513, 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.221 + +fv.default: ; preds = %if.merge.225 + br label %fv.merge + +fv.case: ; preds = %if.merge.225 + %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.225 + %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.225 + %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 77, 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.514, i64 9 }, { ptr, i64 } { ptr @str.515, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.516, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.517, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.520, 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.521, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.522, i64 4 }, { ptr, i64 } { ptr @str.523, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.524, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.525, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.528, 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.529, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.530, i64 6 }, { ptr, i64 } { ptr @str.531, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.532, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.533, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.541, 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.542, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.240 + %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.240 + %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.240 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.240 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.240 + %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 81, 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.543, i64 6 }, { ptr, i64 } { ptr @str.544, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.545, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.546, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.551, 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.552, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.245 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.245 + %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.245 + %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 } @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.558, 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.553, 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.253, label %if.merge.254 + +if.then.253: ; 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.560, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.559, 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.254 + +if.merge.254: ; preds = %if.then.253, %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.565, 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.561, 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.255, label %if.merge.256 + +if.then.255: ; 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.567, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.566, 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.256 + +if.merge.256: ; preds = %if.then.255, %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.575, 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.568, 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.257: ; 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.577, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.576, 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.258 + +if.merge.258: ; preds = %if.then.257, %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.257, label %if.merge.258 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.586, 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.578, 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.259, label %if.merge.260 + +if.then.259: ; 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.588, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.587, 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.260 + +if.merge.260: ; preds = %if.then.259, %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.595, 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.589, 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.261, label %if.merge.262 + +if.then.261: ; 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.597, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.596, 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.262 + +if.merge.262: ; preds = %if.then.261, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2905,33 +6101,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.202, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.598, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.154 + br label %while.hdr.271 -while.hdr.154: ; preds = %if.merge.158, %entry +while.hdr.271: ; preds = %if.merge.275, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.155, label %while.exit.156 + br i1 %icmp, label %while.body.272, label %while.exit.273 -while.body.155: ; preds = %while.hdr.154 +while.body.272: ; preds = %while.hdr.271 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.157, label %if.merge.158 + br i1 %icmpN, label %if.then.274, label %if.merge.275 -while.exit.156: ; preds = %while.hdr.154 +while.exit.273: ; preds = %while.hdr.271 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.599, i64 1 }) ret { ptr, i64 } %call -if.then.157: ; preds = %while.body.155 +if.then.274: ; preds = %while.body.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.204, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.158 + br label %if.merge.275 -if.merge.158: ; preds = %if.then.157, %while.body.155 +if.merge.275: ; preds = %if.then.274, %while.body.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2945,7 +6141,211 @@ if.merge.158: ; preds = %if.then.157, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.154 + br label %while.hdr.271 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.601, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.276 + +while.hdr.276: ; preds = %if.merge.280, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.277, label %while.exit.278 + +while.body.277: ; preds = %while.hdr.276 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.279, label %if.merge.280 + +while.exit.278: ; preds = %while.hdr.276 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.602, i64 1 }) + ret { ptr, i64 } %call + +if.then.279: ; preds = %while.body.277 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.280 + +if.merge.280: ; preds = %if.then.279, %while.body.277 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.276 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.604, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.281 + +while.hdr.281: ; preds = %if.merge.285, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.282, label %while.exit.283 + +while.body.282: ; preds = %while.hdr.281 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.284, label %if.merge.285 + +while.exit.283: ; preds = %while.hdr.281 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.605, i64 1 }) + ret { ptr, i64 } %call + +if.then.284: ; preds = %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.285 + +if.merge.285: ; preds = %if.then.284, %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.281 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.607, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.286 + +while.hdr.286: ; preds = %if.merge.290, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.287, label %while.exit.288 + +while.body.287: ; preds = %while.hdr.286 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.289, label %if.merge.290 + +while.exit.288: ; preds = %while.hdr.286 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 1 }) + ret { ptr, i64 } %call + +if.then.289: ; preds = %while.body.287 + %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 + br label %if.merge.290 + +if.merge.290: ; preds = %if.then.289, %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.286 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.610, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.291 + +while.hdr.291: ; preds = %if.merge.295, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.292, label %while.exit.293 + +while.body.292: ; preds = %while.hdr.291 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.294, label %if.merge.295 + +while.exit.293: ; preds = %while.hdr.291 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 1 }) + ret { ptr, i64 } %call + +if.then.294: ; preds = %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.295 + +if.merge.295: ; preds = %if.then.294, %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.291 } ; Function Attrs: nounwind @@ -2956,33 +6356,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.205, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.613, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.296 -while.hdr.159: ; preds = %if.merge.163, %entry +while.hdr.296: ; preds = %if.merge.300, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.160, label %while.exit.161 + br i1 %icmp, label %while.body.297, label %while.exit.298 -while.body.160: ; preds = %while.hdr.159 +while.body.297: ; preds = %while.hdr.296 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.162, label %if.merge.163 + br i1 %icmpN, label %if.then.299, label %if.merge.300 -while.exit.161: ; preds = %while.hdr.159 +while.exit.298: ; preds = %while.hdr.296 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.206, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 1 }) ret { ptr, i64 } %call -if.then.162: ; preds = %while.body.160 +if.then.299: ; preds = %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.207, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.163 + br label %if.merge.300 -if.merge.163: ; preds = %if.then.162, %while.body.160 +if.merge.300: ; preds = %if.then.299, %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2998,7 +6398,7 @@ if.merge.163: ; preds = %if.then.162, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.296 } ; Function Attrs: nounwind @@ -3008,35 +6408,35 @@ entry: %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.208, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.616, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.168 + br label %while.hdr.308 -while.hdr.168: ; preds = %if.merge.172, %entry +while.hdr.308: ; preds = %if.merge.312, %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.169, label %while.exit.170 + br i1 %icmp, label %while.body.309, label %while.exit.310 -while.body.169: ; preds = %while.hdr.168 +while.body.309: ; preds = %while.hdr.308 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.171, label %if.merge.172 + br i1 %icmpN, label %if.then.311, label %if.merge.312 -while.exit.170: ; preds = %while.hdr.168 +while.exit.310: ; preds = %while.hdr.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 1 }) ret { ptr, i64 } %call -if.then.171: ; preds = %while.body.169 +if.then.311: ; preds = %while.body.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.210, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.172 + br label %if.merge.312 -if.merge.172: ; preds = %if.then.171, %while.body.169 +if.merge.312: ; preds = %if.then.311, %while.body.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3052,7 +6452,167 @@ if.merge.172: ; preds = %if.then.171, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.168 + br label %while.hdr.308 +} + +; 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.619, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.313 + +while.hdr.313: ; preds = %if.merge.317, %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.314, label %while.exit.315 + +while.body.314: ; preds = %while.hdr.313 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.316, label %if.merge.317 + +while.exit.315: ; preds = %while.hdr.313 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 1 }) + ret { ptr, i64 } %call + +if.then.316: ; preds = %while.body.314 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.317 + +if.merge.317: ; preds = %if.then.316, %while.body.314 + %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.313 +} + +; 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.622, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.318 + +while.hdr.318: ; preds = %if.merge.322, %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.319, label %while.exit.320 + +while.body.319: ; preds = %while.hdr.318 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.321, label %if.merge.322 + +while.exit.320: ; preds = %while.hdr.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 1 }) + ret { ptr, i64 } %call + +if.then.321: ; preds = %while.body.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.322 + +if.merge.322: ; preds = %if.then.321, %while.body.319 + %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 76, 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.318 +} + +; 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.625, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.323 + +while.hdr.323: ; preds = %if.merge.327, %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.324, label %while.exit.325 + +while.body.324: ; preds = %while.hdr.323 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.326, label %if.merge.327 + +while.exit.325: ; preds = %while.hdr.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.626, i64 1 }) + ret { ptr, i64 } %call + +if.then.326: ; preds = %while.body.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.627, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.327 + +if.merge.327: ; preds = %if.then.326, %while.body.324 + %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 78, 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.323 } ; Function Attrs: nounwind @@ -3062,35 +6622,35 @@ entry: %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.211, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.628, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.173 + br label %while.hdr.328 -while.hdr.173: ; preds = %if.merge.177, %entry +while.hdr.328: ; preds = %if.merge.332, %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.174, label %while.exit.175 + br i1 %icmp, label %while.body.329, label %while.exit.330 -while.body.174: ; preds = %while.hdr.173 +while.body.329: ; preds = %while.hdr.328 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.176, label %if.merge.177 + br i1 %icmpN, label %if.then.331, label %if.merge.332 -while.exit.175: ; preds = %while.hdr.173 +while.exit.330: ; preds = %while.hdr.328 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.629, i64 1 }) ret { ptr, i64 } %call -if.then.176: ; preds = %while.body.174 +if.then.331: ; preds = %while.body.329 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.213, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.630, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.177 + br label %if.merge.332 -if.merge.177: ; preds = %if.then.176, %while.body.174 +if.merge.332: ; preds = %if.then.331, %while.body.329 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3106,7 +6666,7 @@ if.merge.177: ; preds = %if.then.176, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.173 + br label %while.hdr.328 } ; Function Attrs: nounwind @@ -3120,20 +6680,20 @@ entry: 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.199, label %if.else.200 + br i1 %icmp, label %if.then.366, label %if.else.367 -if.then.199: ; preds = %entry - br label %if.merge.201 +if.then.366: ; preds = %entry + br label %if.merge.368 -if.else.200: ; preds = %entry +if.else.367: ; 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.216, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.215, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.201 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.633, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.632, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.368 -if.merge.201: ; preds = %if.else.200, %if.then.199 - %bp = phi { ptr, i64 } [ { ptr @str.214, i64 4 }, %if.then.199 ], [ %callN, %if.else.200 ] +if.merge.368: ; preds = %if.else.367, %if.then.366 + %bp = phi { ptr, i64 } [ { ptr @str.631, i64 4 }, %if.then.366 ], [ %callN, %if.else.367 ] ret { ptr, i64 } %bp } @@ -3148,20 +6708,20 @@ entry: 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.215, label %if.else.216 + br i1 %icmp, label %if.then.382, label %if.else.383 -if.then.215: ; preds = %entry - br label %if.merge.217 +if.then.382: ; preds = %entry + br label %if.merge.384 -if.else.216: ; preds = %entry +if.else.383: ; 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.219, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.218, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.217 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.635, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.384 -if.merge.217: ; preds = %if.else.216, %if.then.215 - %bp = phi { ptr, i64 } [ { ptr @str.217, i64 4 }, %if.then.215 ], [ %callN, %if.else.216 ] +if.merge.384: ; preds = %if.else.383, %if.then.382 + %bp = phi { ptr, i64 } [ { ptr @str.634, i64 4 }, %if.then.382 ], [ %callN, %if.else.383 ] ret { ptr, i64 } %bp } @@ -3176,20 +6736,20 @@ entry: 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.218, label %if.else.219 + br i1 %icmp, label %if.then.385, label %if.else.386 -if.then.218: ; preds = %entry - br label %if.merge.220 +if.then.385: ; preds = %entry + br label %if.merge.387 -if.else.219: ; preds = %entry +if.else.386: ; 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.222, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.221, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.220 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.639, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.638, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.387 -if.merge.220: ; preds = %if.else.219, %if.then.218 - %bp = phi { ptr, i64 } [ { ptr @str.220, i64 4 }, %if.then.218 ], [ %callN, %if.else.219 ] +if.merge.387: ; preds = %if.else.386, %if.then.385 + %bp = phi { ptr, i64 } [ { ptr @str.637, i64 4 }, %if.then.385 ], [ %callN, %if.else.386 ] ret { ptr, i64 } %bp } @@ -3204,20 +6764,20 @@ entry: 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.221, label %if.else.222 + br i1 %icmp, label %if.then.388, label %if.else.389 -if.then.221: ; preds = %entry - br label %if.merge.223 +if.then.388: ; preds = %entry + br label %if.merge.390 -if.else.222: ; preds = %entry +if.else.389: ; 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.225, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.224, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.223 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.390 -if.merge.223: ; preds = %if.else.222, %if.then.221 - %bp = phi { ptr, i64 } [ { ptr @str.223, i64 4 }, %if.then.221 ], [ %callN, %if.else.222 ] +if.merge.390: ; preds = %if.else.389, %if.then.388 + %bp = phi { ptr, i64 } [ { ptr @str.640, i64 4 }, %if.then.388 ], [ %callN, %if.else.389 ] ret { ptr, i64 } %bp } @@ -3232,20 +6792,20 @@ entry: 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.224, label %if.else.225 + br i1 %icmp, label %if.then.391, label %if.else.392 -if.then.224: ; preds = %entry - br label %if.merge.226 +if.then.391: ; preds = %entry + br label %if.merge.393 -if.else.225: ; preds = %entry +if.else.392: ; 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.228, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.227, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.226 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.644, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.393 -if.merge.226: ; preds = %if.else.225, %if.then.224 - %bp = phi { ptr, i64 } [ { ptr @str.226, i64 4 }, %if.then.224 ], [ %callN, %if.else.225 ] +if.merge.393: ; preds = %if.else.392, %if.then.391 + %bp = phi { ptr, i64 } [ { ptr @str.643, i64 4 }, %if.then.391 ], [ %callN, %if.else.392 ] ret { ptr, i64 } %bp } @@ -3259,20 +6819,20 @@ entry: 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.227, label %if.else.228 + br i1 %icmp, label %if.then.394, label %if.else.395 -if.then.227: ; preds = %entry - br label %if.merge.229 +if.then.394: ; preds = %entry + br label %if.merge.396 -if.else.228: ; preds = %entry +if.else.395: ; 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.231, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.230, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.229 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.396 -if.merge.229: ; preds = %if.else.228, %if.then.227 - %bp = phi { ptr, i64 } [ { ptr @str.229, i64 4 }, %if.then.227 ], [ %callN, %if.else.228 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi { ptr, i64 } [ { ptr @str.646, i64 4 }, %if.then.394 ], [ %callN, %if.else.395 ] ret { ptr, i64 } %bp } @@ -3287,20 +6847,20 @@ entry: 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.230, label %if.else.231 + br i1 %icmp, label %if.then.397, label %if.else.398 -if.then.230: ; preds = %entry - br label %if.merge.232 +if.then.397: ; preds = %entry + br label %if.merge.399 -if.else.231: ; preds = %entry +if.else.398: ; 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.234, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.233, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.232 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.399 -if.merge.232: ; preds = %if.else.231, %if.then.230 - %bp = phi { ptr, i64 } [ { ptr @str.232, i64 4 }, %if.then.230 ], [ %callN, %if.else.231 ] +if.merge.399: ; preds = %if.else.398, %if.then.397 + %bp = phi { ptr, i64 } [ { ptr @str.649, i64 4 }, %if.then.397 ], [ %callN, %if.else.398 ] ret { ptr, i64 } %bp } @@ -3315,25 +6875,25 @@ entry: 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.233, label %if.else.234 + br i1 %icmp, label %if.then.400, label %if.else.401 -if.then.233: ; preds = %entry - br label %if.merge.235 +if.then.400: ; preds = %entry + br label %if.merge.402 -if.else.234: ; preds = %entry +if.else.401: ; 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.237, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.236, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.235 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.402 -if.merge.235: ; preds = %if.else.234, %if.then.233 - %bp = phi { ptr, i64 } [ { ptr @str.235, i64 4 }, %if.then.233 ], [ %callN, %if.else.234 ] +if.merge.402: ; preds = %if.else.401, %if.then.400 + %bp = phi { ptr, i64 } [ { ptr @str.652, i64 4 }, %if.then.400 ], [ %callN, %if.else.401 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3343,244 +6903,20 @@ entry: 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.236, label %if.else.237 + br i1 %icmp, label %if.then.403, label %if.else.404 -if.then.236: ; preds = %entry - br label %if.merge.238 +if.then.403: ; preds = %entry + br label %if.merge.405 -if.else.237: ; preds = %entry +if.else.404: ; 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.240, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.239, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.238 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.405 -if.merge.238: ; preds = %if.else.237, %if.then.236 - %bp = phi { ptr, i64 } [ { ptr @str.238, i64 4 }, %if.then.236 ], [ %callN, %if.else.237 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.239, label %if.else.240 - -if.then.239: ; preds = %entry - br label %if.merge.241 - -if.else.240: ; 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.243, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.242, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.241 - -if.merge.241: ; preds = %if.else.240, %if.then.239 - %bp = phi { ptr, i64 } [ { ptr @str.241, i64 4 }, %if.then.239 ], [ %callN, %if.else.240 ] - 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.242, label %if.else.243 - -if.then.242: ; preds = %entry - br label %if.merge.244 - -if.else.243: ; 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.246, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.245, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.244 - -if.merge.244: ; preds = %if.else.243, %if.then.242 - %bp = phi { ptr, i64 } [ { ptr @str.244, i64 4 }, %if.then.242 ], [ %callN, %if.else.243 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_fn_s32_s32__s32(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.245, label %if.else.246 - -if.then.245: ; preds = %entry - br label %if.merge.247 - -if.else.246: ; 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.249, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.248, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.247 - -if.merge.247: ; preds = %if.else.246, %if.then.245 - %bp = phi { ptr, i64 } [ { ptr @str.247, i64 4 }, %if.then.245 ], [ %callN, %if.else.246 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.248, label %if.else.249 - -if.then.248: ; preds = %entry - br label %if.merge.250 - -if.else.249: ; 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.252, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.251, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.250 - -if.merge.250: ; preds = %if.else.249, %if.then.248 - %bp = phi { ptr, i64 } [ { ptr @str.250, i64 4 }, %if.then.248 ], [ %callN, %if.else.249 ] - 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.251, label %if.else.252 - -if.then.251: ; preds = %entry - br label %if.merge.253 - -if.else.252: ; 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.255, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.254, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.253 - -if.merge.253: ; preds = %if.else.252, %if.then.251 - %bp = phi { ptr, i64 } [ { ptr @str.253, i64 4 }, %if.then.251 ], [ %callN, %if.else.252 ] - 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.254, label %if.else.255 - -if.then.254: ; preds = %entry - br label %if.merge.256 - -if.else.255: ; 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.258, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.257, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.256 - -if.merge.256: ; preds = %if.else.255, %if.then.254 - %bp = phi { ptr, i64 } [ { ptr @str.256, i64 4 }, %if.then.254 ], [ %callN, %if.else.255 ] - 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.257, label %if.else.258 - -if.then.257: ; preds = %entry - br label %if.merge.259 - -if.else.258: ; 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.261, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.260, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.259 - -if.merge.259: ; preds = %if.else.258, %if.then.257 - %bp = phi { ptr, i64 } [ { ptr @str.259, i64 4 }, %if.then.257 ], [ %callN, %if.else.258 ] - 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.260, label %if.else.261 - -if.then.260: ; preds = %entry - br label %if.merge.262 - -if.else.261: ; 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.264, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.263, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.262 - -if.merge.262: ; preds = %if.else.261, %if.then.260 - %bp = phi { ptr, i64 } [ { ptr @str.262, i64 4 }, %if.then.260 ], [ %callN, %if.else.261 ] +if.merge.405: ; preds = %if.else.404, %if.then.403 + %bp = phi { ptr, i64 } [ { ptr @str.655, i64 4 }, %if.then.403 ], [ %callN, %if.else.404 ] ret { ptr, i64 } %bp } @@ -3595,20 +6931,578 @@ entry: 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.263, label %if.else.264 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.263: ; preds = %entry - br label %if.merge.265 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.264: ; preds = %entry +if.else.407: ; 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.267, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.266, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.265 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.660, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.659, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.265: ; preds = %if.else.264, %if.then.263 - %bp = phi { ptr, i64 } [ { ptr @str.265, i64 4 }, %if.then.263 ], [ %callN, %if.else.264 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.658, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.409, label %if.else.410 + +if.then.409: ; preds = %entry + br label %if.merge.411 + +if.else.410: ; 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.663, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.662, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.411 + +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.661, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] + 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.412, label %if.else.413 + +if.then.412: ; preds = %entry + br label %if.merge.414 + +if.else.413: ; 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.666, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.665, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.414 + +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.664, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] + 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.415, label %if.else.416 + +if.then.415: ; preds = %entry + br label %if.merge.417 + +if.else.416: ; 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.669, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.668, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.417 + +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.667, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] + 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.418, label %if.else.419 + +if.then.418: ; preds = %entry + br label %if.merge.420 + +if.else.419: ; 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.672, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.671, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.420 + +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.670, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] + 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.421, label %if.else.422 + +if.then.421: ; preds = %entry + br label %if.merge.423 + +if.else.422: ; 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.675, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.674, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.423 + +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.673, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] + 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.424, label %if.else.425 + +if.then.424: ; preds = %entry + br label %if.merge.426 + +if.else.425: ; 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.678, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.677, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.426 + +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.676, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] + 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.427, label %if.else.428 + +if.then.427: ; preds = %entry + br label %if.merge.429 + +if.else.428: ; 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.681, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.680, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.429 + +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.679, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] + 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.430, label %if.else.431 + +if.then.430: ; preds = %entry + br label %if.merge.432 + +if.else.431: ; 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.684, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.683, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.432 + +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.682, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] + 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.433, label %if.else.434 + +if.then.433: ; preds = %entry + br label %if.merge.435 + +if.else.434: ; 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.687, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.686, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.435 + +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.685, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.436, label %if.else.437 + +if.then.436: ; preds = %entry + br label %if.merge.438 + +if.else.437: ; 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.690, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.689, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.438 + +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.688, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + 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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.693, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.692, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.691, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + 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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.696, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.695, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.694, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.699, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.698, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.697, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + 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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.702, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.701, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.700, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.705, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.704, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.703, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_fn_s32_s32__s32(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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.708, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.707, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.706, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.711, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.709, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + 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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.714, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.712, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.717, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.715, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + 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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.720, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.718, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] ret { ptr, i64 } %bp } @@ -3623,19 +7517,115 @@ entry: 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.266, label %if.else.267 + br i1 %icmp, label %if.then.469, label %if.else.470 -if.then.266: ; preds = %entry - br label %if.merge.268 +if.then.469: ; preds = %entry + br label %if.merge.471 -if.else.267: ; preds = %entry +if.else.470: ; 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.270, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.269, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.268 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.723, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.722, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.471 -if.merge.268: ; preds = %if.else.267, %if.then.266 - %bp = phi { ptr, i64 } [ { ptr @str.268, i64 4 }, %if.then.266 ], [ %callN, %if.else.267 ] +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.721, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] 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.478, label %if.merge.479 + +if.then.478: ; preds = %entry + ret { ptr, i64 } { ptr @str.724, i64 4 } + +if.merge.479: ; 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 39, 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.480, label %if.merge.481 + +if.then.480: ; preds = %entry + ret { ptr, i64 } { ptr @str.725, i64 4 } + +if.merge.481: ; 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_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.482, label %if.merge.483 + +if.then.482: ; preds = %entry + ret { ptr, i64 } { ptr @str.726, i64 4 } + +if.merge.483: ; 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 45, 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.484, label %if.merge.485 + +if.then.484: ; preds = %entry + ret { ptr, i64 } { ptr @str.727, i64 4 } + +if.merge.485: ; 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 88, 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/0400-protocols-impl-for-builtin.ir b/examples/expected/0400-protocols-impl-for-builtin.ir index 86e8448..dc45201 100644 --- a/examples/expected/0400-protocols-impl-for-builtin.ir +++ b/examples/expected/0400-protocols-impl-for-builtin.ir @@ -1,270 +1,630 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [75 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [165 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [9 x i8] c"Lerpable\00" -@tn.str.46 = private constant [16 x i8] c"Source_Location\00" -@tn.str.47 = private constant [11 x i8] c"CAllocator\00" -@tn.str.48 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.49 = private constant [4 x i8] c"GPA\00" -@tn.str.50 = private constant [5 x i8] c"*GPA\00" -@tn.str.51 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.52 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.53 = private constant [10 x i8] c"Allocator\00" -@tn.str.54 = private constant [6 x i8] c"Arena\00" -@tn.str.55 = private constant [7 x i8] c"*Arena\00" -@tn.str.56 = private constant [6 x i8] c"[*]u8\00" -@tn.str.57 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.58 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.59 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.60 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.61 = private constant [8 x i8] c"Context\00" -@tn.str.62 = private constant [7 x i8] c"[4]s64\00" -@tn.str.63 = private constant [9 x i8] c"[]string\00" -@tn.str.64 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.65 = private constant [5 x i8] c"*s64\00" -@tn.str.66 = private constant [7 x i8] c"**void\00" -@tn.str.67 = private constant [5 x i8] c"*f32\00" -@tn.str.68 = private constant [8 x i8] c"*string\00" -@tn.str.69 = private constant [6 x i8] c"[]Any\00" -@tn.str.70 = private constant [5 x i8] c"*Any\00" -@tn.str.71 = private constant [7 x i8] c"[1]Any\00" -@tn.str.72 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.73 = private constant [7 x i8] c"*[]Any\00" -@tn.str.74 = private constant [4 x i8] c"*u8\00" -@tn.str.75 = private constant [6 x i8] c"*bool\00" -@tn.str.76 = private constant [6 x i8] c"**f32\00" -@tn.str.77 = private constant [10 x i8] c"*Lerpable\00" -@tn.str.78 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.79 = private constant [5 x i8] c"*f64\00" -@tn.str.80 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.81 = private constant [11 x i8] c"*Allocator\00" -@tn.str.82 = private constant [9 x i8] c"*Context\00" -@tn.str.83 = private constant [10 x i8] c"*[]string\00" -@tn.str.84 = private constant [6 x i8] c"**GPA\00" -@tn.str.85 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.86 = private constant [8 x i8] c"**Arena\00" -@tn.str.87 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.88 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.89 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.90 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.91 = private constant [6 x i8] c"**s64\00" -@tn.str.92 = private constant [8 x i8] c"***void\00" -@tn.str.93 = private constant [9 x i8] c"**string\00" -@tn.str.94 = private constant [6 x i8] c"**Any\00" -@tn.str.95 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.96 = private constant [8 x i8] c"**[]Any\00" -@tn.str.97 = private constant [5 x i8] c"**u8\00" -@tn.str.98 = private constant [7 x i8] c"**bool\00" -@tn.str.99 = private constant [7 x i8] c"***f32\00" -@tn.str.100 = private constant [11 x i8] c"**Lerpable\00" -@__sx_type_names = private constant [75 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 8 }, { ptr, i64 } { ptr @tn.str.46, i64 15 }, { ptr, i64 } { ptr @tn.str.47, i64 10 }, { ptr, i64 } { ptr @tn.str.48, i64 11 }, { ptr, i64 } { ptr @tn.str.49, i64 3 }, { ptr, i64 } { ptr @tn.str.50, i64 4 }, { ptr, i64 } { ptr @tn.str.51, i64 10 }, { ptr, i64 } { ptr @tn.str.52, i64 11 }, { ptr, i64 } { ptr @tn.str.53, i64 9 }, { ptr, i64 } { ptr @tn.str.54, i64 5 }, { ptr, i64 } { ptr @tn.str.55, i64 6 }, { ptr, i64 } { ptr @tn.str.56, i64 5 }, { ptr, i64 } { ptr @tn.str.57, i64 8 }, { ptr, i64 } { ptr @tn.str.58, i64 9 }, { ptr, i64 } { ptr @tn.str.59, i64 17 }, { ptr, i64 } { ptr @tn.str.60, i64 18 }, { ptr, i64 } { ptr @tn.str.61, i64 7 }, { ptr, i64 } { ptr @tn.str.62, i64 6 }, { ptr, i64 } { ptr @tn.str.63, i64 8 }, { ptr, i64 } { ptr @tn.str.64, i64 12 }, { ptr, i64 } { ptr @tn.str.65, i64 4 }, { ptr, i64 } { ptr @tn.str.66, i64 6 }, { ptr, i64 } { ptr @tn.str.67, i64 4 }, { ptr, i64 } { ptr @tn.str.68, i64 7 }, { ptr, i64 } { ptr @tn.str.69, i64 5 }, { ptr, i64 } { ptr @tn.str.70, i64 4 }, { ptr, i64 } { ptr @tn.str.71, i64 6 }, { ptr, i64 } { ptr @tn.str.72, i64 7 }, { ptr, i64 } { ptr @tn.str.73, i64 6 }, { ptr, i64 } { ptr @tn.str.74, i64 3 }, { ptr, i64 } { ptr @tn.str.75, i64 5 }, { ptr, i64 } { ptr @tn.str.76, i64 5 }, { ptr, i64 } { ptr @tn.str.77, i64 9 }, { ptr, i64 } { ptr @tn.str.78, i64 7 }, { ptr, i64 } { ptr @tn.str.79, i64 4 }, { ptr, i64 } { ptr @tn.str.80, i64 16 }, { ptr, i64 } { ptr @tn.str.81, i64 10 }, { ptr, i64 } { ptr @tn.str.82, i64 8 }, { ptr, i64 } { ptr @tn.str.83, i64 9 }, { ptr, i64 } { ptr @tn.str.84, i64 5 }, { ptr, i64 } { ptr @tn.str.85, i64 12 }, { ptr, i64 } { ptr @tn.str.86, i64 7 }, { ptr, i64 } { ptr @tn.str.87, i64 6 }, { ptr, i64 } { ptr @tn.str.88, i64 10 }, { ptr, i64 } { ptr @tn.str.89, i64 19 }, { ptr, i64 } { ptr @tn.str.90, i64 13 }, { ptr, i64 } { ptr @tn.str.91, i64 5 }, { ptr, i64 } { ptr @tn.str.92, i64 7 }, { ptr, i64 } { ptr @tn.str.93, i64 8 }, { ptr, i64 } { ptr @tn.str.94, i64 5 }, { ptr, i64 } { ptr @tn.str.95, i64 8 }, { ptr, i64 } { ptr @tn.str.96, i64 7 }, { ptr, i64 } { ptr @tn.str.97, i64 4 }, { ptr, i64 } { ptr @tn.str.98, i64 6 }, { ptr, i64 } { ptr @tn.str.99, i64 6 }, { ptr, i64 } { ptr @tn.str.100, i64 10 }] -@str.101 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.102 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.103 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.104 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.105 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.106 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.107 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.108 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.109 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.110 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.111 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.112 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.113 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.120 = private unnamed_addr constant [23 x i8] c"lerp(0, 10, 0.5) = {}\0A\00", align 1 -@str.121 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.122 = private unnamed_addr constant [23 x i8] c"lerp(0, 10, 0.5) = {}\0A\00", align 1 -@str.123 = private unnamed_addr constant [24 x i8] c"lerp(0, 10, 0.25) = {}\0A\00", align 1 -@str.124 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.125 = private unnamed_addr constant [24 x i8] c"lerp(0, 10, 0.25) = {}\0A\00", align 1 -@str.126 = private unnamed_addr constant [9 x i8] c"Lerpable\00", align 1 -@str.127 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.128 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [9 x i8] c"Lerpable\00" +@tn.str.163 = private constant [16 x i8] c"Source_Location\00" +@tn.str.164 = private constant [11 x i8] c"CAllocator\00" +@tn.str.165 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.166 = private constant [4 x i8] c"GPA\00" +@tn.str.167 = private constant [5 x i8] c"*GPA\00" +@tn.str.168 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.169 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.170 = private constant [10 x i8] c"Allocator\00" +@tn.str.171 = private constant [6 x i8] c"Arena\00" +@tn.str.172 = private constant [7 x i8] c"*Arena\00" +@tn.str.173 = private constant [6 x i8] c"[*]u8\00" +@tn.str.174 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.175 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.176 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.177 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.178 = private constant [8 x i8] c"Context\00" +@tn.str.179 = private constant [7 x i8] c"[4]s64\00" +@tn.str.180 = private constant [9 x i8] c"[]string\00" +@tn.str.181 = private constant [9 x i8] c"OpenMode\00" +@tn.str.182 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.183 = private constant [5 x i8] c"File\00" +@tn.str.184 = private constant [6 x i8] c"*File\00" +@tn.str.185 = private constant [6 x i8] c"?File\00" +@tn.str.186 = private constant [8 x i8] c"?string\00" +@tn.str.187 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.188 = private constant [4 x i8] c"*u8\00" +@tn.str.189 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.190 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.191 = private constant [5 x i8] c"*s32\00" +@tn.str.192 = private constant [9 x i8] c"SockAddr\00" +@tn.str.193 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.194 = private constant [5 x i8] c"*u32\00" +@tn.str.195 = private constant [10 x i8] c"JsonError\00" +@tn.str.196 = private constant [6 x i8] c"Array\00" +@tn.str.197 = private constant [7 x i8] c"Object\00" +@tn.str.198 = private constant [6 x i8] c"Value\00" +@tn.str.199 = private constant [7 x i8] c"Member\00" +@tn.str.200 = private constant [9 x i8] c"[*]Value\00" +@tn.str.201 = private constant [7 x i8] c"*Array\00" +@tn.str.202 = private constant [10 x i8] c"[*]Member\00" +@tn.str.203 = private constant [8 x i8] c"*Object\00" +@tn.str.204 = private constant [5 x i8] c"[]u8\00" +@tn.str.205 = private constant [5 x i8] c"Sink\00" +@tn.str.206 = private constant [6 x i8] c"*Sink\00" +@tn.str.207 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.208 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.209 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.210 = private constant [7 x i8] c"Parser\00" +@tn.str.211 = private constant [8 x i8] c"*Parser\00" +@tn.str.212 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.213 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.214 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.215 = private constant [13 x i8] c"Architecture\00" +@tn.str.216 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.217 = private constant [11 x i8] c"() -> bool\00" +@tn.str.218 = private constant [5 x i8] c"*s64\00" +@tn.str.219 = private constant [9 x i8] c"CliError\00" +@tn.str.220 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.221 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.222 = private constant [8 x i8] c"Command\00" +@tn.str.223 = private constant [10 x i8] c"FlagValue\00" +@tn.str.224 = private constant [5 x i8] c"Diag\00" +@tn.str.225 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.226 = private constant [7 x i8] c"Parsed\00" +@tn.str.227 = private constant [8 x i8] c"*Parsed\00" +@tn.str.228 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.229 = private constant [10 x i8] c"[]Command\00" +@tn.str.230 = private constant [6 x i8] c"*Diag\00" +@tn.str.231 = private constant [7 x i8] c"[8]s64\00" +@tn.str.232 = private constant [7 x i8] c"[64]u8\00" +@tn.str.233 = private constant [7 x i8] c"Sha256\00" +@tn.str.234 = private constant [8 x i8] c"*Sha256\00" +@tn.str.235 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.236 = private constant [8 x i8] c"[64]s64\00" +@tn.str.237 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.238 = private constant [7 x i8] c"**void\00" +@tn.str.239 = private constant [5 x i8] c"*f32\00" +@tn.str.240 = private constant [8 x i8] c"*string\00" +@tn.str.241 = private constant [6 x i8] c"[]Any\00" +@tn.str.242 = private constant [5 x i8] c"*Any\00" +@tn.str.243 = private constant [7 x i8] c"[1]Any\00" +@tn.str.244 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.245 = private constant [7 x i8] c"*[]Any\00" +@tn.str.246 = private constant [6 x i8] c"*bool\00" +@tn.str.247 = private constant [6 x i8] c"**f32\00" +@tn.str.248 = private constant [10 x i8] c"*Lerpable\00" +@tn.str.249 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.250 = private constant [5 x i8] c"*f64\00" +@tn.str.251 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.252 = private constant [11 x i8] c"*Allocator\00" +@tn.str.253 = private constant [9 x i8] c"*Context\00" +@tn.str.254 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.255 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.256 = private constant [8 x i8] c"*Member\00" +@tn.str.257 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.258 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.259 = private constant [9 x i8] c"*Command\00" +@tn.str.260 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.261 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.262 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.263 = private constant [7 x i8] c"*Value\00" +@tn.str.264 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.265 = private constant [14 x i8] c"*Architecture\00" +@tn.str.266 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.267 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.268 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.269 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.270 = private constant [10 x i8] c"*[]string\00" +@tn.str.271 = private constant [6 x i8] c"*[]u8\00" +@tn.str.272 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.273 = private constant [11 x i8] c"*[]Command\00" +@tn.str.274 = private constant [6 x i8] c"**GPA\00" +@tn.str.275 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.276 = private constant [8 x i8] c"**Arena\00" +@tn.str.277 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.278 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.279 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.280 = private constant [7 x i8] c"**File\00" +@tn.str.281 = private constant [5 x i8] c"**u8\00" +@tn.str.282 = private constant [6 x i8] c"**s32\00" +@tn.str.283 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.284 = private constant [6 x i8] c"**u32\00" +@tn.str.285 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.286 = private constant [8 x i8] c"**Array\00" +@tn.str.287 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.288 = private constant [9 x i8] c"**Object\00" +@tn.str.289 = private constant [7 x i8] c"**Sink\00" +@tn.str.290 = private constant [9 x i8] c"**Parser\00" +@tn.str.291 = private constant [6 x i8] c"**s64\00" +@tn.str.292 = private constant [9 x i8] c"**Parsed\00" +@tn.str.293 = private constant [7 x i8] c"**Diag\00" +@tn.str.294 = private constant [9 x i8] c"**Sha256\00" +@tn.str.295 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.296 = private constant [8 x i8] c"***void\00" +@tn.str.297 = private constant [9 x i8] c"**string\00" +@tn.str.298 = private constant [6 x i8] c"**Any\00" +@tn.str.299 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.300 = private constant [8 x i8] c"**[]Any\00" +@tn.str.301 = private constant [7 x i8] c"**bool\00" +@tn.str.302 = private constant [7 x i8] c"***f32\00" +@tn.str.303 = private constant [11 x i8] c"**Lerpable\00" +@tn.str.304 = private constant [7 x i8] c"*?File\00" +@tn.str.305 = private constant [9 x i8] c"*?string\00" +@tn.str.306 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.307 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [165 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 8 }, { ptr, i64 } { ptr @tn.str.163, i64 15 }, { ptr, i64 } { ptr @tn.str.164, i64 10 }, { ptr, i64 } { ptr @tn.str.165, i64 11 }, { ptr, i64 } { ptr @tn.str.166, i64 3 }, { ptr, i64 } { ptr @tn.str.167, i64 4 }, { ptr, i64 } { ptr @tn.str.168, i64 10 }, { ptr, i64 } { ptr @tn.str.169, i64 11 }, { ptr, i64 } { ptr @tn.str.170, i64 9 }, { ptr, i64 } { ptr @tn.str.171, i64 5 }, { ptr, i64 } { ptr @tn.str.172, i64 6 }, { ptr, i64 } { ptr @tn.str.173, i64 5 }, { ptr, i64 } { ptr @tn.str.174, i64 8 }, { ptr, i64 } { ptr @tn.str.175, i64 9 }, { ptr, i64 } { ptr @tn.str.176, i64 17 }, { ptr, i64 } { ptr @tn.str.177, i64 18 }, { ptr, i64 } { ptr @tn.str.178, i64 7 }, { ptr, i64 } { ptr @tn.str.179, i64 6 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 8 }, { ptr, i64 } { ptr @tn.str.183, i64 4 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 5 }, { ptr, i64 } { ptr @tn.str.186, i64 7 }, { ptr, i64 } { ptr @tn.str.187, i64 10 }, { ptr, i64 } { ptr @tn.str.188, i64 3 }, { ptr, i64 } { ptr @tn.str.189, i64 13 }, { ptr, i64 } { ptr @tn.str.190, i64 14 }, { ptr, i64 } { ptr @tn.str.191, i64 4 }, { ptr, i64 } { ptr @tn.str.192, i64 8 }, { ptr, i64 } { ptr @tn.str.193, i64 9 }, { ptr, i64 } { ptr @tn.str.194, i64 4 }, { ptr, i64 } { ptr @tn.str.195, i64 9 }, { ptr, i64 } { ptr @tn.str.196, i64 5 }, { ptr, i64 } { ptr @tn.str.197, i64 6 }, { ptr, i64 } { ptr @tn.str.198, i64 5 }, { ptr, i64 } { ptr @tn.str.199, i64 6 }, { ptr, i64 } { ptr @tn.str.200, i64 8 }, { ptr, i64 } { ptr @tn.str.201, i64 6 }, { ptr, i64 } { ptr @tn.str.202, i64 9 }, { ptr, i64 } { ptr @tn.str.203, i64 7 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 4 }, { ptr, i64 } { ptr @tn.str.206, i64 5 }, { ptr, i64 } { ptr @tn.str.207, i64 16 }, { ptr, i64 } { ptr @tn.str.208, i64 14 }, { ptr, i64 } { ptr @tn.str.209, i64 21 }, { ptr, i64 } { ptr @tn.str.210, i64 6 }, { ptr, i64 } { ptr @tn.str.211, i64 7 }, { ptr, i64 } { ptr @tn.str.212, i64 24 }, { ptr, i64 } { ptr @tn.str.213, i64 23 }, { ptr, i64 } { ptr @tn.str.214, i64 15 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 12 }, { ptr, i64 } { ptr @tn.str.217, i64 10 }, { ptr, i64 } { ptr @tn.str.218, i64 4 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 8 }, { ptr, i64 } { ptr @tn.str.221, i64 10 }, { ptr, i64 } { ptr @tn.str.222, i64 7 }, { ptr, i64 } { ptr @tn.str.223, i64 9 }, { ptr, i64 } { ptr @tn.str.224, i64 4 }, { ptr, i64 } { ptr @tn.str.225, i64 13 }, { ptr, i64 } { ptr @tn.str.226, i64 6 }, { ptr, i64 } { ptr @tn.str.227, i64 7 }, { ptr, i64 } { ptr @tn.str.228, i64 18 }, { ptr, i64 } { ptr @tn.str.229, i64 9 }, { ptr, i64 } { ptr @tn.str.230, i64 5 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 6 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 7 }, { ptr, i64 } { ptr @tn.str.237, i64 12 }, { ptr, i64 } { ptr @tn.str.238, i64 6 }, { ptr, i64 } { ptr @tn.str.239, i64 4 }, { ptr, i64 } { ptr @tn.str.240, i64 7 }, { ptr, i64 } { ptr @tn.str.241, i64 5 }, { ptr, i64 } { ptr @tn.str.242, i64 4 }, { ptr, i64 } { ptr @tn.str.243, i64 6 }, { ptr, i64 } { ptr @tn.str.244, i64 7 }, { ptr, i64 } { ptr @tn.str.245, i64 6 }, { ptr, i64 } { ptr @tn.str.246, i64 5 }, { ptr, i64 } { ptr @tn.str.247, i64 5 }, { ptr, i64 } { ptr @tn.str.248, i64 9 }, { ptr, i64 } { ptr @tn.str.249, i64 7 }, { ptr, i64 } { ptr @tn.str.250, i64 4 }, { ptr, i64 } { ptr @tn.str.251, i64 16 }, { ptr, i64 } { ptr @tn.str.252, i64 10 }, { ptr, i64 } { ptr @tn.str.253, i64 8 }, { ptr, i64 } { ptr @tn.str.254, i64 11 }, { ptr, i64 } { ptr @tn.str.255, i64 14 }, { ptr, i64 } { ptr @tn.str.256, i64 7 }, { ptr, i64 } { ptr @tn.str.257, i64 13 }, { ptr, i64 } { ptr @tn.str.258, i64 9 }, { ptr, i64 } { ptr @tn.str.259, i64 8 }, { ptr, i64 } { ptr @tn.str.260, i64 10 }, { ptr, i64 } { ptr @tn.str.261, i64 9 }, { ptr, i64 } { ptr @tn.str.262, i64 9 }, { ptr, i64 } { ptr @tn.str.263, i64 6 }, { ptr, i64 } { ptr @tn.str.264, i64 16 }, { ptr, i64 } { ptr @tn.str.265, i64 13 }, { ptr, i64 } { ptr @tn.str.266, i64 14 }, { ptr, i64 } { ptr @tn.str.267, i64 7 }, { ptr, i64 } { ptr @tn.str.268, i64 7 }, { ptr, i64 } { ptr @tn.str.269, i64 8 }, { ptr, i64 } { ptr @tn.str.270, i64 9 }, { ptr, i64 } { ptr @tn.str.271, i64 5 }, { ptr, i64 } { ptr @tn.str.272, i64 11 }, { ptr, i64 } { ptr @tn.str.273, i64 10 }, { ptr, i64 } { ptr @tn.str.274, i64 5 }, { ptr, i64 } { ptr @tn.str.275, i64 12 }, { ptr, i64 } { ptr @tn.str.276, i64 7 }, { ptr, i64 } { ptr @tn.str.277, i64 6 }, { ptr, i64 } { ptr @tn.str.278, i64 10 }, { ptr, i64 } { ptr @tn.str.279, i64 19 }, { ptr, i64 } { ptr @tn.str.280, i64 6 }, { ptr, i64 } { ptr @tn.str.281, i64 4 }, { ptr, i64 } { ptr @tn.str.282, i64 5 }, { ptr, i64 } { ptr @tn.str.283, i64 10 }, { ptr, i64 } { ptr @tn.str.284, i64 5 }, { ptr, i64 } { ptr @tn.str.285, i64 9 }, { ptr, i64 } { ptr @tn.str.286, i64 7 }, { ptr, i64 } { ptr @tn.str.287, i64 10 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 6 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 5 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 6 }, { ptr, i64 } { ptr @tn.str.294, i64 8 }, { ptr, i64 } { ptr @tn.str.295, i64 13 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 8 }, { ptr, i64 } { ptr @tn.str.298, i64 5 }, { ptr, i64 } { ptr @tn.str.299, i64 8 }, { ptr, i64 } { ptr @tn.str.300, i64 7 }, { ptr, i64 } { ptr @tn.str.301, i64 6 }, { ptr, i64 } { ptr @tn.str.302, i64 6 }, { ptr, i64 } { ptr @tn.str.303, i64 10 }, { ptr, i64 } { ptr @tn.str.304, i64 6 }, { ptr, i64 } { ptr @tn.str.305, i64 8 }, { ptr, i64 } { ptr @tn.str.306, i64 15 }, { ptr, i64 } { ptr @tn.str.307, i64 8 }] +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.311 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.312 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.313 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.314 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.315 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.316 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.317 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.318 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.319 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.320 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.321 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.322 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.323 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.324 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.325 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.326 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.327 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.328 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.329 = private unnamed_addr constant [23 x i8] c"lerp(0, 10, 0.5) = {}\0A\00", align 1 +@str.330 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.331 = private unnamed_addr constant [23 x i8] c"lerp(0, 10, 0.5) = {}\0A\00", align 1 +@str.332 = private unnamed_addr constant [24 x i8] c"lerp(0, 10, 0.25) = {}\0A\00", align 1 +@str.333 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.334 = private unnamed_addr constant [24 x i8] c"lerp(0, 10, 0.25) = {}\0A\00", align 1 +@str.335 = private unnamed_addr constant [9 x i8] c"Lerpable\00", align 1 +@str.336 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.337 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.338 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [4 x i8] c"ctx\00" -@fld.str.130 = private constant [5 x i8] c"lerp\00" -@field_names = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str, i64 3 }, { ptr, i64 } { ptr @fld.str.130, i64 4 }] -@str.131 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.132 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.133 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.134 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.136 = private constant [5 x i8] c"file\00" -@fld.str.137 = private constant [5 x i8] c"line\00" -@fld.str.138 = private constant [4 x i8] c"col\00" -@fld.str.139 = private constant [5 x i8] c"func\00" -@field_names.140 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.136, i64 4 }, { ptr, i64 } { ptr @fld.str.137, i64 4 }, { ptr, i64 } { ptr @fld.str.138, i64 3 }, { ptr, i64 } { ptr @fld.str.139, i64 4 }] -@str.141 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.142 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.144 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.145 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.146 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.147 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.148 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.149 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.151 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.152 = private constant [12 x i8] c"alloc_count\00" -@field_names.153 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.152, i64 11 }] -@str.154 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.155 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.156 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.157 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.158 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.159 = private constant [5 x i8] c"next\00" -@fld.str.160 = private constant [4 x i8] c"cap\00" -@field_names.161 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.159, i64 4 }, { ptr, i64 } { ptr @fld.str.160, i64 3 }] -@str.162 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.163 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.164 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.165 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.166 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.167 = private constant [4 x i8] c"ctx\00" -@fld.str.168 = private constant [6 x i8] c"alloc\00" -@fld.str.169 = private constant [8 x i8] c"dealloc\00" -@field_names.170 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.167, i64 3 }, { ptr, i64 } { ptr @fld.str.168, i64 5 }, { ptr, i64 } { ptr @fld.str.169, i64 7 }] -@str.171 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.172 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.173 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.174 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.176 = private constant [6 x i8] c"first\00" -@fld.str.177 = private constant [10 x i8] c"end_index\00" -@fld.str.178 = private constant [7 x i8] c"parent\00" -@field_names.179 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.176, i64 5 }, { ptr, i64 } { ptr @fld.str.177, i64 9 }, { ptr, i64 } { ptr @fld.str.178, i64 6 }] -@str.180 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.181 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.182 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.183 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.184 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.185 = private constant [4 x i8] c"buf\00" -@fld.str.186 = private constant [4 x i8] c"len\00" -@fld.str.187 = private constant [4 x i8] c"pos\00" -@field_names.188 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.185, i64 3 }, { ptr, i64 } { ptr @fld.str.186, i64 3 }, { ptr, i64 } { ptr @fld.str.187, i64 3 }] -@str.189 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.190 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.191 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.192 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.193 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.194 = private constant [7 x i8] c"parent\00" -@fld.str.195 = private constant [12 x i8] c"alloc_count\00" -@fld.str.196 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.197 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.198 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.194, i64 6 }, { ptr, i64 } { ptr @fld.str.195, i64 11 }, { ptr, i64 } { ptr @fld.str.196, i64 13 }, { ptr, i64 } { ptr @fld.str.197, i64 17 }] -@str.199 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.200 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.201 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.203 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.204 = private constant [10 x i8] c"allocator\00" -@fld.str.205 = private constant [5 x i8] c"data\00" -@field_names.206 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.204, i64 9 }, { ptr, i64 } { ptr @fld.str.205, i64 4 }] -@str.207 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.209 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.210 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.212 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.213 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.214 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.215 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.216 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.217 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.218 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.219 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.220 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.221 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.222 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.223 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.224 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.225 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.226 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.227 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.228 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.229 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.230 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.231 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.232 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.233 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.234 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.235 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.236 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.237 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.238 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.239 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.240 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.241 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.242 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.243 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.244 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.245 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.246 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.247 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.248 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.249 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.250 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.251 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.252 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.253 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.254 = private unnamed_addr constant [5 x i8] c"*f32\00", align 1 -@str.255 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.256 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.257 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.258 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.259 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.260 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.261 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.262 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.263 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.264 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.265 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.266 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.267 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.268 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.269 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.270 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.271 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.272 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.273 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.274 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.275 = private unnamed_addr constant [6 x i8] c"**f32\00", align 1 -@str.276 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.277 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.278 = private unnamed_addr constant [10 x i8] c"*Lerpable\00", align 1 -@str.279 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.339 = private constant [5 x i8] c"lerp\00" +@field_names = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str, i64 3 }, { ptr, i64 } { ptr @fld.str.339, i64 4 }] +@str.340 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.341 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.342 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.343 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.344 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.345 = private constant [5 x i8] c"file\00" +@fld.str.346 = private constant [5 x i8] c"line\00" +@fld.str.347 = private constant [4 x i8] c"col\00" +@fld.str.348 = private constant [5 x i8] c"func\00" +@field_names.349 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.345, i64 4 }, { ptr, i64 } { ptr @fld.str.346, i64 4 }, { ptr, i64 } { ptr @fld.str.347, i64 3 }, { ptr, i64 } { ptr @fld.str.348, i64 4 }] +@str.350 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.351 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.353 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.354 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.355 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.356 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.357 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.358 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.360 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.361 = private constant [12 x i8] c"alloc_count\00" +@field_names.362 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.361, i64 11 }] +@str.363 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.364 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.365 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.366 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.367 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.368 = private constant [5 x i8] c"next\00" +@fld.str.369 = private constant [4 x i8] c"cap\00" +@field_names.370 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.368, i64 4 }, { ptr, i64 } { ptr @fld.str.369, i64 3 }] +@str.371 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.372 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.373 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.374 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.375 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.376 = private constant [4 x i8] c"ctx\00" +@fld.str.377 = private constant [6 x i8] c"alloc\00" +@fld.str.378 = private constant [8 x i8] c"dealloc\00" +@field_names.379 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.376, i64 3 }, { ptr, i64 } { ptr @fld.str.377, i64 5 }, { ptr, i64 } { ptr @fld.str.378, i64 7 }] +@str.380 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.381 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.382 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.383 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.384 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.385 = private constant [6 x i8] c"first\00" +@fld.str.386 = private constant [10 x i8] c"end_index\00" +@fld.str.387 = private constant [7 x i8] c"parent\00" +@field_names.388 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.385, i64 5 }, { ptr, i64 } { ptr @fld.str.386, i64 9 }, { ptr, i64 } { ptr @fld.str.387, i64 6 }] +@str.389 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.390 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.391 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.392 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.393 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.394 = private constant [4 x i8] c"buf\00" +@fld.str.395 = private constant [4 x i8] c"len\00" +@fld.str.396 = private constant [4 x i8] c"pos\00" +@field_names.397 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.394, i64 3 }, { ptr, i64 } { ptr @fld.str.395, i64 3 }, { ptr, i64 } { ptr @fld.str.396, i64 3 }] +@str.398 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.399 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.400 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.401 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.402 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.403 = private constant [7 x i8] c"parent\00" +@fld.str.404 = private constant [12 x i8] c"alloc_count\00" +@fld.str.405 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.406 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.407 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.403, i64 6 }, { ptr, i64 } { ptr @fld.str.404, i64 11 }, { ptr, i64 } { ptr @fld.str.405, i64 13 }, { ptr, i64 } { ptr @fld.str.406, i64 17 }] +@str.408 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.409 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.410 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.412 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.413 = private constant [10 x i8] c"allocator\00" +@fld.str.414 = private constant [5 x i8] c"data\00" +@field_names.415 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.413, i64 9 }, { ptr, i64 } { ptr @fld.str.414, i64 4 }] +@str.416 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.417 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.420 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.421 = private constant [3 x i8] c"fd\00" +@field_names.422 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.421, i64 2 }] +@str.423 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.424 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.425 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.426 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.427 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.428 = private constant [5 x i8] c"file\00" +@fld.str.429 = private constant [5 x i8] c"line\00" +@fld.str.430 = private constant [4 x i8] c"col\00" +@fld.str.431 = private constant [5 x i8] c"func\00" +@fld.str.432 = private constant [10 x i8] c"line_text\00" +@field_names.433 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.428, i64 4 }, { ptr, i64 } { ptr @fld.str.429, i64 4 }, { ptr, i64 } { ptr @fld.str.430, i64 3 }, { ptr, i64 } { ptr @fld.str.431, i64 4 }, { ptr, i64 } { ptr @fld.str.432, i64 9 }] +@str.434 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.435 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.436 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.437 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.438 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.439 = private constant [10 x i8] c"exit_code\00" +@fld.str.440 = private constant [7 x i8] c"stdout\00" +@field_names.441 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.439, i64 9 }, { ptr, i64 } { ptr @fld.str.440, i64 6 }] +@str.442 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.443 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.444 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.445 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.446 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.447 = private constant [8 x i8] c"sin_len\00" +@fld.str.448 = private constant [11 x i8] c"sin_family\00" +@fld.str.449 = private constant [9 x i8] c"sin_port\00" +@fld.str.450 = private constant [9 x i8] c"sin_addr\00" +@fld.str.451 = private constant [9 x i8] c"sin_zero\00" +@field_names.452 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.447, i64 7 }, { ptr, i64 } { ptr @fld.str.448, i64 10 }, { ptr, i64 } { ptr @fld.str.449, i64 8 }, { ptr, i64 } { ptr @fld.str.450, i64 8 }, { ptr, i64 } { ptr @fld.str.451, i64 8 }] +@str.453 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.454 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.455 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.456 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.457 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.458 = private constant [6 x i8] c"items\00" +@fld.str.459 = private constant [4 x i8] c"len\00" +@fld.str.460 = private constant [4 x i8] c"cap\00" +@field_names.461 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.458, i64 5 }, { ptr, i64 } { ptr @fld.str.459, i64 3 }, { ptr, i64 } { ptr @fld.str.460, i64 3 }] +@str.462 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.463 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.464 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.465 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.466 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.467 = private constant [6 x i8] c"items\00" +@fld.str.468 = private constant [4 x i8] c"len\00" +@fld.str.469 = private constant [4 x i8] c"cap\00" +@field_names.470 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.467, i64 5 }, { ptr, i64 } { ptr @fld.str.468, i64 3 }, { ptr, i64 } { ptr @fld.str.469, i64 3 }] +@str.471 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.472 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.473 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.474 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.475 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.476 = private constant [4 x i8] c"key\00" +@fld.str.477 = private constant [4 x i8] c"val\00" +@field_names.478 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.476, i64 3 }, { ptr, i64 } { ptr @fld.str.477, i64 3 }] +@str.479 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.480 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.481 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.482 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.483 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.484 = private constant [4 x i8] c"dst\00" +@fld.str.485 = private constant [4 x i8] c"pos\00" +@fld.str.486 = private constant [5 x i8] c"file\00" +@field_names.487 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.484, i64 3 }, { ptr, i64 } { ptr @fld.str.485, i64 3 }, { ptr, i64 } { ptr @fld.str.486, i64 4 }] +@str.488 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.489 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.490 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.491 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.492 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.493 = private constant [4 x i8] c"src\00" +@fld.str.494 = private constant [4 x i8] c"pos\00" +@fld.str.495 = private constant [6 x i8] c"alloc\00" +@field_names.496 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.493, i64 3 }, { ptr, i64 } { ptr @fld.str.494, i64 3 }, { ptr, i64 } { ptr @fld.str.495, i64 5 }] +@str.497 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.498 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.499 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.500 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.501 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.502 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.503 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.504 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.505 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.506 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.507 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.508 = private constant [5 x i8] c"name\00" +@fld.str.509 = private constant [12 x i8] c"takes_value\00" +@fld.str.510 = private constant [9 x i8] c"required\00" +@field_names.511 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.508, i64 4 }, { ptr, i64 } { ptr @fld.str.509, i64 11 }, { ptr, i64 } { ptr @fld.str.510, i64 8 }] +@str.512 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.513 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.514 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.515 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.516 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.517 = private constant [6 x i8] c"group\00" +@fld.str.518 = private constant [8 x i8] c"command\00" +@fld.str.519 = private constant [6 x i8] c"flags\00" +@field_names.520 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.517, i64 5 }, { ptr, i64 } { ptr @fld.str.518, i64 7 }, { ptr, i64 } { ptr @fld.str.519, i64 5 }] +@str.521 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.522 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.523 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.524 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.525 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.526 = private constant [4 x i8] c"set\00" +@fld.str.527 = private constant [6 x i8] c"value\00" +@field_names.528 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.526, i64 3 }, { ptr, i64 } { ptr @fld.str.527, i64 5 }] +@str.529 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.530 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.531 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.532 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.533 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.534 = private constant [6 x i8] c"index\00" +@fld.str.535 = private constant [6 x i8] c"token\00" +@field_names.536 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.534, i64 5 }, { ptr, i64 } { ptr @fld.str.535, i64 5 }] +@str.537 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.538 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.539 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.540 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.541 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.542 = private constant [6 x i8] c"group\00" +@fld.str.543 = private constant [8 x i8] c"command\00" +@fld.str.544 = private constant [10 x i8] c"cmd_index\00" +@fld.str.545 = private constant [5 x i8] c"json\00" +@fld.str.546 = private constant [5 x i8] c"rest\00" +@fld.str.547 = private constant [5 x i8] c"spec\00" +@fld.str.548 = private constant [7 x i8] c"values\00" +@field_names.549 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.542, i64 5 }, { ptr, i64 } { ptr @fld.str.543, i64 7 }, { ptr, i64 } { ptr @fld.str.544, i64 9 }, { ptr, i64 } { ptr @fld.str.545, i64 4 }, { ptr, i64 } { ptr @fld.str.546, i64 4 }, { ptr, i64 } { ptr @fld.str.547, i64 4 }, { ptr, i64 } { ptr @fld.str.548, i64 6 }] +@str.550 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.551 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.552 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.553 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.554 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.555 = private constant [2 x i8] c"h\00" +@fld.str.556 = private constant [4 x i8] c"buf\00" +@fld.str.557 = private constant [8 x i8] c"buf_len\00" +@fld.str.558 = private constant [10 x i8] c"total_len\00" +@field_names.559 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.555, i64 1 }, { ptr, i64 } { ptr @fld.str.556, i64 3 }, { ptr, i64 } { ptr @fld.str.557, i64 7 }, { ptr, i64 } { ptr @fld.str.558, i64 9 }] +@str.560 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.562 = private constant [5 x i8] c"read\00" +@fld.str.563 = private constant [6 x i8] c"write\00" +@fld.str.564 = private constant [7 x i8] c"append\00" +@fld.str.565 = private constant [11 x i8] c"read_write\00" +@field_names.566 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.562, i64 4 }, { ptr, i64 } { ptr @fld.str.563, i64 5 }, { ptr, i64 } { ptr @fld.str.564, i64 6 }, { ptr, i64 } { ptr @fld.str.565, i64 10 }] +@str.567 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.570 = private constant [4 x i8] c"set\00" +@fld.str.571 = private constant [8 x i8] c"current\00" +@fld.str.572 = private constant [4 x i8] c"end\00" +@field_names.573 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.570, i64 3 }, { ptr, i64 } { ptr @fld.str.571, i64 7 }, { ptr, i64 } { ptr @fld.str.572, i64 3 }] +@str.574 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.575 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.576 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.577 = private constant [6 x i8] c"null_\00" +@fld.str.578 = private constant [6 x i8] c"bool_\00" +@fld.str.579 = private constant [5 x i8] c"int_\00" +@fld.str.580 = private constant [4 x i8] c"str\00" +@fld.str.581 = private constant [6 x i8] c"array\00" +@fld.str.582 = private constant [7 x i8] c"object\00" +@field_names.583 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.577, i64 5 }, { ptr, i64 } { ptr @fld.str.578, i64 5 }, { ptr, i64 } { ptr @fld.str.579, i64 4 }, { ptr, i64 } { ptr @fld.str.580, i64 3 }, { ptr, i64 } { ptr @fld.str.581, i64 5 }, { ptr, i64 } { ptr @fld.str.582, i64 6 }] +@str.584 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.585 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.586 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.587 = private constant [6 x i8] c"macos\00" +@fld.str.588 = private constant [6 x i8] c"linux\00" +@fld.str.589 = private constant [8 x i8] c"windows\00" +@fld.str.590 = private constant [5 x i8] c"wasm\00" +@fld.str.591 = private constant [4 x i8] c"ios\00" +@fld.str.592 = private constant [8 x i8] c"android\00" +@fld.str.593 = private constant [8 x i8] c"unknown\00" +@field_names.594 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.587, i64 5 }, { ptr, i64 } { ptr @fld.str.588, i64 5 }, { ptr, i64 } { ptr @fld.str.589, i64 7 }, { ptr, i64 } { ptr @fld.str.590, i64 4 }, { ptr, i64 } { ptr @fld.str.591, i64 3 }, { ptr, i64 } { ptr @fld.str.592, i64 7 }, { ptr, i64 } { ptr @fld.str.593, i64 7 }] +@str.595 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.596 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.597 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.598 = private constant [8 x i8] c"aarch64\00" +@fld.str.599 = private constant [7 x i8] c"x86_64\00" +@fld.str.600 = private constant [7 x i8] c"wasm32\00" +@fld.str.601 = private constant [7 x i8] c"wasm64\00" +@fld.str.602 = private constant [8 x i8] c"unknown\00" +@field_names.603 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.598, i64 7 }, { ptr, i64 } { ptr @fld.str.599, i64 6 }, { ptr, i64 } { ptr @fld.str.600, i64 6 }, { ptr, i64 } { ptr @fld.str.601, i64 6 }, { ptr, i64 } { ptr @fld.str.602, i64 7 }] +@str.604 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.608 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.609 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.611 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.612 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.614 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.617 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.618 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.620 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.623 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.624 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.626 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.627 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.628 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.629 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.630 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.631 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.632 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.633 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.634 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.635 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.636 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.637 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.638 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.639 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.640 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.641 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.642 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.643 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.644 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.645 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.646 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.647 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.648 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.649 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.650 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.651 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.652 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.653 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.654 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.655 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.656 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.657 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.658 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.659 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.660 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.661 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.662 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.663 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.664 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.665 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.666 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.667 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.668 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.669 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.670 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.671 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.672 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.673 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.674 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.675 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.677 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.678 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.679 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.680 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.681 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.682 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.683 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.684 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.685 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.686 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.687 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.688 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.689 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.690 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.691 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.692 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.693 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.694 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.695 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.696 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.698 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.699 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.700 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.701 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.702 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.703 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.704 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.705 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.706 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.707 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.708 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.709 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.710 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.711 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.712 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.713 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.714 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.715 = private unnamed_addr constant [5 x i8] c"*f32\00", align 1 +@str.716 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.718 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.719 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.722 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.723 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.724 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.725 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.728 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.729 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.730 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.731 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.732 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.733 = private unnamed_addr constant [6 x i8] c"**f32\00", align 1 +@str.734 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.735 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.736 = private unnamed_addr constant [10 x i8] c"*Lerpable\00", align 1 +@str.737 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.738 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.739 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.740 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.741 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind define internal float @f32.lerp(ptr %0, float %1, float %2, float %3) #0 { @@ -562,7 +922,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -689,7 +1049,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -858,38 +1218,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.211 + br label %while.hdr.379 -while.hdr.211: ; preds = %if.merge.216, %entry +while.hdr.379: ; preds = %if.merge.384, %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.212, label %while.exit.213 + br i1 %icmp, label %while.body.380, label %while.exit.381 -while.body.212: ; preds = %while.hdr.211 +while.body.380: ; preds = %while.hdr.379 %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.214, label %if.else.215 + br i1 %icmpN, label %if.then.382, label %if.else.383 -while.exit.213: ; preds = %while.hdr.211 +while.exit.381: ; preds = %while.hdr.379 ret void -if.then.214: ; preds = %while.body.212 +if.then.382: ; preds = %while.body.380 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.216 + br label %if.merge.384 -if.else.215: ; preds = %while.body.212 +if.else.383: ; preds = %while.body.380 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.216 + br label %if.merge.384 -if.merge.216: ; preds = %if.else.215, %if.then.214 - %bp = phi i64 [ %addN, %if.then.214 ], [ %addN, %if.else.215 ] +if.merge.384: ; preds = %if.else.383, %if.then.382 + %bp = phi i64 [ %addN, %if.then.382 ], [ %addN, %if.else.383 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -902,7 +1262,7 @@ if.merge.216: ; preds = %if.else.215, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.211 + br label %while.hdr.379 } ; Function Attrs: nounwind @@ -1020,12 +1380,12 @@ entry: 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.209, label %if.merge.210 + br i1 %icmp, label %if.then.377, label %if.merge.378 -if.then.209: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.377: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.210: ; preds = %entry +if.merge.378: ; 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 @@ -1056,14 +1416,14 @@ if.merge.210: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.217 + br label %while.hdr.385 -while.hdr.217: ; preds = %if.merge.221, %if.merge.210 +while.hdr.385: ; preds = %if.merge.389, %if.merge.378 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.218, label %while.exit.219 + br i1 %icmpN, label %while.body.386, label %while.exit.387 -while.body.218: ; preds = %while.hdr.217 +while.body.386: ; preds = %while.hdr.385 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1071,9 +1431,9 @@ while.body.218: ; preds = %while.hdr.217 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.220, label %if.merge.221 + br i1 %icmpN, label %if.then.388, label %if.merge.389 -while.exit.219: ; preds = %if.then.220, %while.hdr.217 +while.exit.387: ; preds = %if.then.388, %while.hdr.385 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1081,14 +1441,14 @@ while.exit.219: ; preds = %if.then.220, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.220: ; preds = %while.body.218 - br label %while.exit.219 +if.then.388: ; preds = %while.body.386 + br label %while.exit.387 -if.merge.221: ; preds = %while.body.218 +if.merge.389: ; preds = %while.body.386 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.217 + br label %while.hdr.385 } ; Function Attrs: nounwind @@ -1166,11 +1526,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1204,10 +1567,41 @@ entry: i64 31, label %match.arm.43 i64 33, label %match.arm.43 i64 35, label %match.arm.43 + i64 40, label %match.arm.43 + i64 44, label %match.arm.43 + i64 46, label %match.arm.43 + i64 49, label %match.arm.43 + i64 53, label %match.arm.43 + i64 54, label %match.arm.43 + i64 56, label %match.arm.43 + i64 62, label %match.arm.43 + i64 67, label %match.arm.43 + i64 73, label %match.arm.43 + i64 77, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 81, label %match.arm.43 + i64 83, label %match.arm.43 + i64 90, label %match.arm.43 + i64 38, label %match.arm.44 + i64 39, label %match.arm.44 + i64 55, label %match.arm.44 + i64 71, label %match.arm.44 + i64 72, label %match.arm.44 + i64 52, label %match.arm.45 + i64 65, label %match.arm.45 + i64 76, label %match.arm.45 i64 36, label %match.arm.47 - i64 45, label %match.arm.47 + i64 82, label %match.arm.47 + i64 88, label %match.arm.47 + i64 89, label %match.arm.47 + i64 93, label %match.arm.47 + i64 100, label %match.arm.47 i64 37, label %match.arm.48 - i64 43, label %match.arm.48 + i64 61, label %match.arm.48 + i64 78, label %match.arm.48 + i64 86, label %match.arm.48 + i64 98, label %match.arm.48 i64 18, label %match.arm.49 i64 22, label %match.arm.49 i64 24, label %match.arm.49 @@ -1216,27 +1610,44 @@ entry: i64 30, label %match.arm.49 i64 32, label %match.arm.49 i64 34, label %match.arm.49 - i64 38, label %match.arm.49 - i64 39, label %match.arm.49 - i64 40, label %match.arm.49 i64 41, label %match.arm.49 - i64 42, label %match.arm.49 - i64 44, label %match.arm.49 - i64 46, label %match.arm.49 - i64 47, label %match.arm.49 + i64 45, label %match.arm.49 i64 48, label %match.arm.49 - i64 49, label %match.arm.49 i64 50, label %match.arm.49 i64 51, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 60, label %match.arm.49 + i64 63, label %match.arm.49 + i64 68, label %match.arm.49 + i64 75, label %match.arm.49 + i64 84, label %match.arm.49 + i64 87, label %match.arm.49 + i64 91, label %match.arm.49 + i64 94, label %match.arm.49 + i64 95, label %match.arm.49 + i64 96, label %match.arm.49 + i64 97, label %match.arm.49 + i64 99, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 103, label %match.arm.49 + i64 104, label %match.arm.49 + i64 105, label %match.arm.49 + i64 42, label %match.arm.50 + i64 43, label %match.arm.50 + i64 47, label %match.arm.50 + i64 92, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.184, %dispatch.merge.170, %dispatch.merge.156, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.486, %dispatch.merge.339, %dispatch.merge.307, %dispatch.merge.269, %dispatch.merge.252, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1245,7 +1656,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [165 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1273,7 +1684,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1288,72 +1699,134 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 31, label %dispatch.case.103 i64 33, label %dispatch.case.104 i64 35, label %dispatch.case.105 + i64 40, label %dispatch.case.106 + i64 44, label %dispatch.case.107 + i64 46, label %dispatch.case.108 + i64 49, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 54, label %dispatch.case.111 + i64 56, label %dispatch.case.112 + i64 62, label %dispatch.case.113 + i64 67, label %dispatch.case.114 + i64 73, label %dispatch.case.115 + i64 77, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 81, label %dispatch.case.119 + i64 83, label %dispatch.case.120 + i64 90, label %dispatch.case.121 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.253 [ + i64 38, label %dispatch.case.254 + i64 39, label %dispatch.case.255 + i64 55, label %dispatch.case.256 + i64 71, label %dispatch.case.257 + i64 72, label %dispatch.case.258 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.157 [ - i64 36, label %dispatch.case.158 - i64 45, label %dispatch.case.159 + switch i64 %ua.raw29, label %dispatch.default.270 [ + i64 36, label %dispatch.case.271 + i64 82, label %dispatch.case.272 + i64 88, label %dispatch.case.273 + i64 89, label %dispatch.case.274 + i64 93, label %dispatch.case.275 + i64 100, label %dispatch.case.276 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.171 [ - i64 37, label %dispatch.case.172 - i64 43, label %dispatch.case.173 + switch i64 %ua.raw33, label %dispatch.default.308 [ + i64 37, label %dispatch.case.309 + i64 61, label %dispatch.case.310 + i64 78, label %dispatch.case.311 + i64 86, label %dispatch.case.312 + i64 98, label %dispatch.case.313 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.185 [ - i64 18, label %dispatch.case.186 - i64 22, label %dispatch.case.187 - i64 24, label %dispatch.case.188 - i64 26, label %dispatch.case.189 - i64 29, label %dispatch.case.190 - i64 30, label %dispatch.case.191 - i64 32, label %dispatch.case.192 - i64 34, label %dispatch.case.193 - i64 38, label %dispatch.case.194 - i64 39, label %dispatch.case.195 - i64 40, label %dispatch.case.196 - i64 41, label %dispatch.case.197 - i64 42, label %dispatch.case.198 - i64 44, label %dispatch.case.199 - i64 46, label %dispatch.case.200 - i64 47, label %dispatch.case.201 - i64 48, label %dispatch.case.202 - i64 49, label %dispatch.case.203 - i64 50, label %dispatch.case.204 - i64 51, label %dispatch.case.205 + switch i64 %ua.raw37, label %dispatch.default.340 [ + i64 18, label %dispatch.case.341 + i64 22, label %dispatch.case.342 + i64 24, label %dispatch.case.343 + i64 26, label %dispatch.case.344 + i64 29, label %dispatch.case.345 + i64 30, label %dispatch.case.346 + i64 32, label %dispatch.case.347 + i64 34, label %dispatch.case.348 + i64 41, label %dispatch.case.349 + i64 45, label %dispatch.case.350 + i64 48, label %dispatch.case.351 + i64 50, label %dispatch.case.352 + i64 51, label %dispatch.case.353 + i64 57, label %dispatch.case.354 + i64 58, label %dispatch.case.355 + i64 59, label %dispatch.case.356 + i64 60, label %dispatch.case.357 + i64 63, label %dispatch.case.358 + i64 68, label %dispatch.case.359 + i64 75, label %dispatch.case.360 + i64 84, label %dispatch.case.361 + i64 87, label %dispatch.case.362 + i64 91, label %dispatch.case.363 + i64 94, label %dispatch.case.364 + i64 95, label %dispatch.case.365 + i64 96, label %dispatch.case.366 + i64 97, label %dispatch.case.367 + i64 99, label %dispatch.case.368 + i64 101, label %dispatch.case.369 + i64 102, label %dispatch.case.370 + i64 103, label %dispatch.case.371 + i64 104, label %dispatch.case.372 + i64 105, label %dispatch.case.373 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.487 [ + i64 42, label %dispatch.case.488 + i64 43, label %dispatch.case.489 + i64 47, label %dispatch.case.490 + i64 92, label %dispatch.case.491 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [165 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1363,15 +1836,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1379,16 +1852,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1398,293 +1871,650 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.101, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { ptr, ptr }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Lerpable(ptr %0, { ptr, ptr } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { ptr, ptr }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Lerpable(ptr %0, { ptr, ptr } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr65, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load {}, ptr %ua.ptr56, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load {}, ptr %ua.ptr69, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, i64 }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, ptr, ptr }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, ptr, ptr }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { ptr, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr97, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.156: ; preds = %dispatch.case.159, %dispatch.case.158, %dispatch.default.157 +dispatch.case.106: ; preds = %match.arm.43 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { i32 }, ptr %ua.ptr101, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.107: ; preds = %match.arm.43 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i32, { ptr, i64 } }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { ptr, i64, i64 }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr133, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load {}, ptr %ua.ptr137, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i1, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { i64, { ptr, i64 } }, ptr %ua.ptr153, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr157, 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.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr161, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.252: ; preds = %dispatch.case.258, %dispatch.case.257, %dispatch.case.256, %dispatch.case.255, %dispatch.case.254, %dispatch.default.253 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.157: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.102, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.156 +dispatch.default.253: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.252 -dispatch.case.158: ; preds = %match.arm.47 - %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr - %ua.load90 = load [4 x i64], ptr %ua.ptr89, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load90) +dispatch.case.254: ; preds = %match.arm.44 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw165) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.156 + br label %dispatch.merge.252 -dispatch.case.159: ; preds = %match.arm.47 - %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr - %ua.load94 = load [1 x { i64, i64 }], ptr %ua.ptr93, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load94) +dispatch.case.255: ; preds = %match.arm.44 + %ua.raw167 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw167) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.156 + br label %dispatch.merge.252 -dispatch.merge.170: ; preds = %dispatch.case.173, %dispatch.case.172, %dispatch.default.171 +dispatch.case.256: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr170 = inttoptr i64 %ua.raw169 to ptr + %ua.load171 = load { i64, [24 x i8] }, ptr %ua.ptr170, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.252 + +dispatch.case.257: ; preds = %match.arm.44 + %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw173) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.252 + +dispatch.case.258: ; preds = %match.arm.44 + %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw175) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.252 + +dispatch.merge.269: ; preds = %dispatch.case.276, %dispatch.case.275, %dispatch.case.274, %dispatch.case.273, %dispatch.case.272, %dispatch.case.271, %dispatch.default.270 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.171: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.103, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.170 +dispatch.default.270: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.310, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.269 -dispatch.case.172: ; preds = %match.arm.48 - %ua.raw97 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr98 = inttoptr i64 %ua.raw97 to ptr - %ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load99) +dispatch.case.271: ; preds = %match.arm.47 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [4 x i64], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.170 + br label %dispatch.merge.269 -dispatch.case.173: ; preds = %match.arm.48 - %ua.raw101 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr102 = inttoptr i64 %ua.raw101 to ptr - %ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load103) +dispatch.case.272: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load184) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.170 + br label %dispatch.merge.269 -dispatch.merge.184: ; preds = %dispatch.case.205, %dispatch.case.204, %dispatch.case.203, %dispatch.case.202, %dispatch.case.201, %dispatch.case.200, %dispatch.case.199, %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.case.189, %dispatch.case.188, %dispatch.case.187, %dispatch.case.186, %dispatch.default.185 +dispatch.case.273: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [8 x i64], ptr %ua.ptr187, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.269 + +dispatch.case.274: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i8], ptr %ua.ptr191, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.269 + +dispatch.case.275: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [64 x i64], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.269 + +dispatch.case.276: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [1 x { i64, i64 }], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.269 + +dispatch.merge.307: ; preds = %dispatch.case.313, %dispatch.case.312, %dispatch.case.311, %dispatch.case.310, %dispatch.case.309, %dispatch.default.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.185: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.104, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.184 +dispatch.default.308: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.311, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.307 -dispatch.case.186: ; preds = %match.arm.49 - %ua.raw106 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw106 to ptr +dispatch.case.309: ; preds = %match.arm.48 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.310: ; preds = %match.arm.48 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.311: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.312: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.313: ; preds = %match.arm.48 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.merge.339: ; preds = %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.default.340 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.340: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.312, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.341: ; preds = %match.arm.49 + %ua.raw224 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw224 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.187: ; preds = %match.arm.49 - %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 - %iNp109 = inttoptr i64 %ua.raw108 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp109) +dispatch.case.342: ; preds = %match.arm.49 + %ua.raw226 = extractvalue { i64, i64 } %loadN, 1 + %iNp227 = inttoptr i64 %ua.raw226 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp227) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.188: ; preds = %match.arm.49 - %ua.raw111 = extractvalue { i64, i64 } %loadN, 1 - %iNp112 = inttoptr i64 %ua.raw111 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp112) +dispatch.case.343: ; preds = %match.arm.49 + %ua.raw229 = extractvalue { i64, i64 } %loadN, 1 + %iNp230 = inttoptr i64 %ua.raw229 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp230) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.189: ; preds = %match.arm.49 - %ua.raw114 = extractvalue { i64, i64 } %loadN, 1 - %iNp115 = inttoptr i64 %ua.raw114 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp115) +dispatch.case.344: ; preds = %match.arm.49 + %ua.raw232 = extractvalue { i64, i64 } %loadN, 1 + %iNp233 = inttoptr i64 %ua.raw232 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp233) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.190: ; preds = %match.arm.49 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %iNp118 = inttoptr i64 %ua.raw117 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp118) +dispatch.case.345: ; preds = %match.arm.49 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %iNp236 = inttoptr i64 %ua.raw235 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp236) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.191: ; preds = %match.arm.49 - %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 - %iNp121 = inttoptr i64 %ua.raw120 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp121) +dispatch.case.346: ; preds = %match.arm.49 + %ua.raw238 = extractvalue { i64, i64 } %loadN, 1 + %iNp239 = inttoptr i64 %ua.raw238 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp239) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.192: ; preds = %match.arm.49 - %ua.raw123 = extractvalue { i64, i64 } %loadN, 1 - %iNp124 = inttoptr i64 %ua.raw123 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp124) +dispatch.case.347: ; preds = %match.arm.49 + %ua.raw241 = extractvalue { i64, i64 } %loadN, 1 + %iNp242 = inttoptr i64 %ua.raw241 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp242) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.193: ; preds = %match.arm.49 - %ua.raw126 = extractvalue { i64, i64 } %loadN, 1 - %iNp127 = inttoptr i64 %ua.raw126 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp127) +dispatch.case.348: ; preds = %match.arm.49 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp245 = inttoptr i64 %ua.raw244 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp245) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.194: ; preds = %match.arm.49 - %ua.raw129 = extractvalue { i64, i64 } %loadN, 1 - %iNp130 = inttoptr i64 %ua.raw129 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp130) +dispatch.case.349: ; preds = %match.arm.49 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %iNp248 = inttoptr i64 %ua.raw247 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp248) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.195: ; preds = %match.arm.49 - %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 - %iNp133 = inttoptr i64 %ua.raw132 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp133) +dispatch.case.350: ; preds = %match.arm.49 + %ua.raw250 = extractvalue { i64, i64 } %loadN, 1 + %iNp251 = inttoptr i64 %ua.raw250 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp251) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.196: ; preds = %match.arm.49 - %ua.raw135 = extractvalue { i64, i64 } %loadN, 1 - %iNp136 = inttoptr i64 %ua.raw135 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp136) +dispatch.case.351: ; preds = %match.arm.49 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %iNp254 = inttoptr i64 %ua.raw253 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp254) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.197: ; preds = %match.arm.49 - %ua.raw138 = extractvalue { i64, i64 } %loadN, 1 - %iNp139 = inttoptr i64 %ua.raw138 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp139) +dispatch.case.352: ; preds = %match.arm.49 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %iNp257 = inttoptr i64 %ua.raw256 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp257) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.198: ; preds = %match.arm.49 - %ua.raw141 = extractvalue { i64, i64 } %loadN, 1 - %iNp142 = inttoptr i64 %ua.raw141 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp142) +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %iNp260 = inttoptr i64 %ua.raw259 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp260) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.199: ; preds = %match.arm.49 - %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 - %iNp145 = inttoptr i64 %ua.raw144 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp145) +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %iNp263 = inttoptr i64 %ua.raw262 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp263) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.200: ; preds = %match.arm.49 - %ua.raw147 = extractvalue { i64, i64 } %loadN, 1 - %iNp148 = inttoptr i64 %ua.raw147 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp148) +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp266 = inttoptr i64 %ua.raw265 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp266) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.201: ; preds = %match.arm.49 - %ua.raw150 = extractvalue { i64, i64 } %loadN, 1 - %iNp151 = inttoptr i64 %ua.raw150 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp151) +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %iNp269 = inttoptr i64 %ua.raw268 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp269) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.202: ; preds = %match.arm.49 - %ua.raw153 = extractvalue { i64, i64 } %loadN, 1 - %iNp154 = inttoptr i64 %ua.raw153 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154) +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw271 = extractvalue { i64, i64 } %loadN, 1 + %iNp272 = inttoptr i64 %ua.raw271 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp272) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.203: ; preds = %match.arm.49 - %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 - %iNp157 = inttoptr i64 %ua.raw156 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157) +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw274 = extractvalue { i64, i64 } %loadN, 1 + %iNp275 = inttoptr i64 %ua.raw274 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp275) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.204: ; preds = %match.arm.49 - %ua.raw159 = extractvalue { i64, i64 } %loadN, 1 - %iNp160 = inttoptr i64 %ua.raw159 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_f32(ptr %0, ptr %iNp160) +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw277 = extractvalue { i64, i64 } %loadN, 1 + %iNp278 = inttoptr i64 %ua.raw277 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp278) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.205: ; preds = %match.arm.49 - %ua.raw162 = extractvalue { i64, i64 } %loadN, 1 - %iNp163 = inttoptr i64 %ua.raw162 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Lerpable(ptr %0, ptr %iNp163) +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw280 = extractvalue { i64, i64 } %loadN, 1 + %iNp281 = inttoptr i64 %ua.raw280 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp281) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 + +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw283 = extractvalue { i64, i64 } %loadN, 1 + %iNp284 = inttoptr i64 %ua.raw283 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp284) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw286 = extractvalue { i64, i64 } %loadN, 1 + %iNp287 = inttoptr i64 %ua.raw286 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp287) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp290) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw292 = extractvalue { i64, i64 } %loadN, 1 + %iNp293 = inttoptr i64 %ua.raw292 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp293) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw295 = extractvalue { i64, i64 } %loadN, 1 + %iNp296 = inttoptr i64 %ua.raw295 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp296) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.366: ; preds = %match.arm.49 + %ua.raw298 = extractvalue { i64, i64 } %loadN, 1 + %iNp299 = inttoptr i64 %ua.raw298 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp299) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.367: ; preds = %match.arm.49 + %ua.raw301 = extractvalue { i64, i64 } %loadN, 1 + %iNp302 = inttoptr i64 %ua.raw301 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp302) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.368: ; preds = %match.arm.49 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp305) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.369: ; preds = %match.arm.49 + %ua.raw307 = extractvalue { i64, i64 } %loadN, 1 + %iNp308 = inttoptr i64 %ua.raw307 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp308) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.370: ; preds = %match.arm.49 + %ua.raw310 = extractvalue { i64, i64 } %loadN, 1 + %iNp311 = inttoptr i64 %ua.raw310 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp311) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %iNp314 = inttoptr i64 %ua.raw313 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp314) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.372: ; preds = %match.arm.49 + %ua.raw316 = extractvalue { i64, i64 } %loadN, 1 + %iNp317 = inttoptr i64 %ua.raw316 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_f32(ptr %0, ptr %iNp317) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.373: ; preds = %match.arm.49 + %ua.raw319 = extractvalue { i64, i64 } %loadN, 1 + %iNp320 = inttoptr i64 %ua.raw319 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Lerpable(ptr %0, ptr %iNp320) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.merge.486: ; preds = %dispatch.case.491, %dispatch.case.490, %dispatch.case.489, %dispatch.case.488, %dispatch.default.487 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.487: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.313, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.486 + +dispatch.case.488: ; preds = %match.arm.50 + %ua.raw323 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr324 = inttoptr i64 %ua.raw323 to ptr + %ua.load325 = load { { i32 }, i1 }, ptr %ua.ptr324, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load325) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.486 + +dispatch.case.489: ; preds = %match.arm.50 + %ua.raw327 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr328 = inttoptr i64 %ua.raw327 to ptr + %ua.load329 = load { { ptr, i64 }, i1 }, ptr %ua.ptr328, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load329) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.486 + +dispatch.case.490: ; preds = %match.arm.50 + %ua.raw331 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr332 = inttoptr i64 %ua.raw331 to ptr + %ua.load333 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr332, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load333) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.486 + +dispatch.case.491: ; preds = %match.arm.50 + %ua.raw335 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr336 = inttoptr i64 %ua.raw335 to ptr + %ua.load337 = load { [64 x i8], i1 }, ptr %ua.ptr336, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load337) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.486 } ; Function Attrs: nounwind @@ -1693,7 +2523,7 @@ 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.105, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.314, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1789,7 +2619,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.106, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, 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 @@ -1797,7 +2627,7 @@ if.then.12: ; preds = %if.then.9 %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.107, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, 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 @@ -1807,13 +2637,13 @@ if.then.12: ; preds = %if.then.9 %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.108, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, 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 @@ -1821,7 +2651,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.110, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1835,7 +2665,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, 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 @@ -1843,7 +2673,7 @@ if.then.23: ; preds = %if.else.10 %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.112, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1854,7 +2684,7 @@ if.then.23: ; preds = %if.else.10 %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.113, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1911,7 +2741,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, 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 @@ -1919,7 +2749,7 @@ if.then.32: ; preds = %if.then.29 %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.115, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, 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 @@ -1930,7 +2760,7 @@ if.then.32: ; preds = %if.then.29 %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.116, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1950,7 +2780,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, 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 @@ -1958,7 +2788,7 @@ if.then.35: ; preds = %while.exit.2 %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.118, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, 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 @@ -1969,7 +2799,7 @@ if.then.35: ; preds = %while.exit.2 %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.119, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.328, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2046,6 +2876,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal ptr @__thunk_CAllocator_Allocator_alloc(ptr %0, ptr %1, i64 %2) #0 { entry: @@ -2064,7 +3632,7 @@ entry: define internal void @print__ct_s648b4567d2e0e089__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.120, i64 22 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.329, i64 22 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2081,7 +3649,7 @@ entry: %gepN = getelementptr inbounds { 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.121, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.330, 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 19) @@ -2110,7 +3678,7 @@ entry: ; 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.122, i64 22 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.331, i64 22 }) ret { ptr, i64 } %call } @@ -2129,7 +3697,7 @@ entry: define internal void @print__ct_s865ed00fd204d3cc__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.123, i64 23 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.332, i64 23 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2146,7 +3714,7 @@ entry: %gepN = getelementptr inbounds { 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.124, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.333, 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 20) @@ -2175,7 +3743,7 @@ entry: ; 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.125, i64 23 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.334, i64 23 }) ret { ptr, i64 } %call } @@ -2184,35 +3752,35 @@ define internal { ptr, i64 } @struct_to_string__Lerpable(ptr %0, { ptr, ptr } %1 entry: %alloca = alloca { ptr, ptr }, align 8 store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.126, i64 8 }, { ptr, i64 } { ptr @str.127, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.335, i64 8 }, { ptr, i64 } { ptr @str.336, 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.106 + br label %while.hdr.122 -while.hdr.106: ; preds = %fv.merge, %entry +while.hdr.122: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.107, label %while.exit.108 + br i1 %icmp, label %while.body.123, label %while.exit.124 -while.body.107: ; preds = %while.hdr.106 +while.body.123: ; preds = %while.hdr.122 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.109, label %if.merge.110 + br i1 %icmpN, label %if.then.125, label %if.merge.126 -while.exit.108: ; preds = %while.hdr.106 +while.exit.124: ; preds = %while.hdr.122 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.337, i64 1 }) ret { ptr, i64 } %callN -if.then.109: ; preds = %while.body.107 +if.then.125: ; preds = %while.body.123 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.110 + br label %if.merge.126 -if.merge.110: ; preds = %if.then.109, %while.body.107 +if.merge.126: ; preds = %if.then.125, %while.body.123 %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, i64 0, i64 %loadN @@ -2220,7 +3788,7 @@ if.merge.110: ; preds = %if.then.109, %while %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.131, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, ptr }, ptr %alloca, align 8 @@ -2238,18 +3806,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.106 + br label %while.hdr.122 -fv.default: ; preds = %if.merge.110 +fv.default: ; preds = %if.merge.126 br label %fv.merge -fv.case: ; preds = %if.merge.110 +fv.case: ; preds = %if.merge.126 %fv.field = extractvalue { ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.110 +fv.case17: ; preds = %if.merge.126 %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 @@ -2263,43 +3831,43 @@ entry: %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.132, i64 15 }, { ptr, i64 } { ptr @str.133, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.341, i64 15 }, { ptr, i64 } { ptr @str.342, 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.111 + br label %while.hdr.127 -while.hdr.111: ; preds = %fv.merge, %entry +while.hdr.127: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.112, label %while.exit.113 + br i1 %icmp, label %while.body.128, label %while.exit.129 -while.body.112: ; preds = %while.hdr.111 +while.body.128: ; preds = %while.hdr.127 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.114, label %if.merge.115 + br i1 %icmpN, label %if.then.130, label %if.merge.131 -while.exit.113: ; preds = %while.hdr.111 +while.exit.129: ; preds = %while.hdr.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, i64 1 }) ret { ptr, i64 } %callN -if.then.114: ; preds = %while.body.112 +if.then.130: ; preds = %while.body.128 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.344, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.115 + br label %if.merge.131 -if.merge.115: ; preds = %if.then.114, %while.body.112 +if.merge.131: ; preds = %if.then.130, %while.body.128 %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.140, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.349, 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.141, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.350, 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 @@ -2319,31 +3887,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.111 + br label %while.hdr.127 -fv.default: ; preds = %if.merge.115 +fv.default: ; preds = %if.merge.131 br label %fv.merge -fv.case: ; preds = %if.merge.115 +fv.case: ; preds = %if.merge.131 %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.115 +fv.case17: ; preds = %if.merge.131 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.115 +fv.case20: ; preds = %if.merge.131 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.115 +fv.case24: ; preds = %if.merge.131 %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 @@ -2356,43 +3924,43 @@ 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.142, i64 10 }, { ptr, i64 } { ptr @str.143, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.351, i64 10 }, { ptr, i64 } { ptr @str.352, 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.116 + br label %while.hdr.132 -while.hdr.116: ; preds = %if.merge.120, %entry +while.hdr.132: ; preds = %if.merge.136, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.117, label %while.exit.118 + br i1 %icmp, label %while.body.133, label %while.exit.134 -while.body.117: ; preds = %while.hdr.116 +while.body.133: ; preds = %while.hdr.132 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.119, label %if.merge.120 + br i1 %icmpN, label %if.then.135, label %if.merge.136 -while.exit.118: ; preds = %while.hdr.116 +while.exit.134: ; preds = %while.hdr.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 1 }) ret { ptr, i64 } %callN -if.then.119: ; preds = %while.body.117 +if.then.135: ; preds = %while.body.133 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.145, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.354, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.120 + br label %if.merge.136 -if.merge.120: ; preds = %if.then.119, %while.body.117 +if.merge.136: ; preds = %if.then.135, %while.body.133 %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.146, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.355, 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.147, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.356, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2403,7 +3971,7 @@ if.merge.120: ; preds = %if.then.119, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.116 + br label %while.hdr.132 } ; Function Attrs: nounwind @@ -2411,43 +3979,43 @@ 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.148, i64 3 }, { ptr, i64 } { ptr @str.149, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.357, i64 3 }, { ptr, i64 } { ptr @str.358, 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.121 + br label %while.hdr.137 -while.hdr.121: ; preds = %fv.merge, %entry +while.hdr.137: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.122, label %while.exit.123 + br i1 %icmp, label %while.body.138, label %while.exit.139 -while.body.122: ; preds = %while.hdr.121 +while.body.138: ; preds = %while.hdr.137 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.124, label %if.merge.125 + br i1 %icmpN, label %if.then.140, label %if.merge.141 -while.exit.123: ; preds = %while.hdr.121 +while.exit.139: ; preds = %while.hdr.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.150, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, i64 1 }) ret { ptr, i64 } %callN -if.then.124: ; preds = %while.body.122 +if.then.140: ; preds = %while.body.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.125 + br label %if.merge.141 -if.merge.125: ; preds = %if.then.124, %while.body.122 +if.merge.141: ; preds = %if.then.140, %while.body.138 %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.153, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.362, 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.154, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.363, 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 @@ -2464,12 +4032,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.121 + br label %while.hdr.137 -fv.default: ; preds = %if.merge.125 +fv.default: ; preds = %if.merge.141 br label %fv.merge -fv.case: ; preds = %if.merge.125 +fv.case: ; preds = %if.merge.141 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2480,43 +4048,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.155, i64 10 }, { ptr, i64 } { ptr @str.156, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.364, i64 10 }, { ptr, i64 } { ptr @str.365, 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.126 + br label %while.hdr.142 -while.hdr.126: ; preds = %fv.merge, %entry +while.hdr.142: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.127, label %while.exit.128 + br i1 %icmp, label %while.body.143, label %while.exit.144 -while.body.127: ; preds = %while.hdr.126 +while.body.143: ; preds = %while.hdr.142 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.129, label %if.merge.130 + br i1 %icmpN, label %if.then.145, label %if.merge.146 -while.exit.128: ; preds = %while.hdr.126 +while.exit.144: ; preds = %while.hdr.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.157, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 1 }) ret { ptr, i64 } %callN -if.then.129: ; preds = %while.body.127 +if.then.145: ; preds = %while.body.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.130 + br label %if.merge.146 -if.merge.130: ; preds = %if.then.129, %while.body.127 +if.merge.146: ; preds = %if.then.145, %while.body.143 %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.161, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.370, 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.162, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.371, 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 @@ -2534,18 +4102,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.126 + br label %while.hdr.142 -fv.default: ; preds = %if.merge.130 +fv.default: ; preds = %if.merge.146 br label %fv.merge -fv.case: ; preds = %if.merge.130 +fv.case: ; preds = %if.merge.146 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 26, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.130 +fv.case17: ; preds = %if.merge.146 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2556,43 +4124,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.163, i64 9 }, { ptr, i64 } { ptr @str.164, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.372, i64 9 }, { ptr, i64 } { ptr @str.373, 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.131 + br label %while.hdr.147 -while.hdr.131: ; preds = %fv.merge, %entry +while.hdr.147: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.132, label %while.exit.133 + br i1 %icmp, label %while.body.148, label %while.exit.149 -while.body.132: ; preds = %while.hdr.131 +while.body.148: ; preds = %while.hdr.147 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.134, label %if.merge.135 + br i1 %icmpN, label %if.then.150, label %if.merge.151 -while.exit.133: ; preds = %while.hdr.131 +while.exit.149: ; preds = %while.hdr.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.374, i64 1 }) ret { ptr, i64 } %callN -if.then.134: ; preds = %while.body.132 +if.then.150: ; preds = %while.body.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.135 + br label %if.merge.151 -if.merge.135: ; preds = %if.then.134, %while.body.132 +if.merge.151: ; preds = %if.then.150, %while.body.148 %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.170, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.379, 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.171, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.380, 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 @@ -2611,24 +4179,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.131 + br label %while.hdr.147 -fv.default: ; preds = %if.merge.135 +fv.default: ; preds = %if.merge.151 br label %fv.merge -fv.case: ; preds = %if.merge.135 +fv.case: ; preds = %if.merge.151 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.135 +fv.case17: ; preds = %if.merge.151 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.135 +fv.case21: ; preds = %if.merge.151 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2641,43 +4209,43 @@ 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.172, i64 5 }, { ptr, i64 } { ptr @str.173, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.381, i64 5 }, { ptr, i64 } { ptr @str.382, 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.136 + br label %while.hdr.152 -while.hdr.136: ; preds = %fv.merge, %entry +while.hdr.152: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.137, label %while.exit.138 + br i1 %icmp, label %while.body.153, label %while.exit.154 -while.body.137: ; preds = %while.hdr.136 +while.body.153: ; preds = %while.hdr.152 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.139, label %if.merge.140 + br i1 %icmpN, label %if.then.155, label %if.merge.156 -while.exit.138: ; preds = %while.hdr.136 +while.exit.154: ; preds = %while.hdr.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.383, i64 1 }) ret { ptr, i64 } %callN -if.then.139: ; preds = %while.body.137 +if.then.155: ; preds = %while.body.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.384, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.140 + br label %if.merge.156 -if.merge.140: ; preds = %if.then.139, %while.body.137 +if.merge.156: ; preds = %if.then.155, %while.body.153 %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.179, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.388, 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.180, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.389, 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 @@ -2696,23 +4264,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.136 + br label %while.hdr.152 -fv.default: ; preds = %if.merge.140 +fv.default: ; preds = %if.merge.156 br label %fv.merge -fv.case: ; preds = %if.merge.140 +fv.case: ; preds = %if.merge.156 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 26, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.140 +fv.case17: ; preds = %if.merge.156 %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.140 +fv.case20: ; preds = %if.merge.156 %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 @@ -2725,43 +4293,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.181, i64 8 }, { ptr, i64 } { ptr @str.182, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.390, i64 8 }, { ptr, i64 } { ptr @str.391, 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.141 + br label %while.hdr.157 -while.hdr.141: ; preds = %fv.merge, %entry +while.hdr.157: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.142, label %while.exit.143 + br i1 %icmp, label %while.body.158, label %while.exit.159 -while.body.142: ; preds = %while.hdr.141 +while.body.158: ; preds = %while.hdr.157 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.144, label %if.merge.145 + br i1 %icmpN, label %if.then.160, label %if.merge.161 -while.exit.143: ; preds = %while.hdr.141 +while.exit.159: ; preds = %while.hdr.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.183, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.392, i64 1 }) ret { ptr, i64 } %callN -if.then.144: ; preds = %while.body.142 +if.then.160: ; preds = %while.body.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.184, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.393, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.145 + br label %if.merge.161 -if.merge.145: ; preds = %if.then.144, %while.body.142 +if.merge.161: ; preds = %if.then.160, %while.body.158 %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.188, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.397, 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.189, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.398, 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 @@ -2780,23 +4348,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.141 + br label %while.hdr.157 -fv.default: ; preds = %if.merge.145 +fv.default: ; preds = %if.merge.161 br label %fv.merge -fv.case: ; preds = %if.merge.145 +fv.case: ; preds = %if.merge.161 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 30, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.145 +fv.case17: ; preds = %if.merge.161 %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.145 +fv.case20: ; preds = %if.merge.161 %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 @@ -2808,43 +4376,43 @@ 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.190, i64 17 }, { ptr, i64 } { ptr @str.191, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.399, i64 17 }, { ptr, i64 } { ptr @str.400, 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.146 + br label %while.hdr.162 -while.hdr.146: ; preds = %fv.merge, %entry +while.hdr.162: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.147, label %while.exit.148 + br i1 %icmp, label %while.body.163, label %while.exit.164 -while.body.147: ; preds = %while.hdr.146 +while.body.163: ; preds = %while.hdr.162 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.149, label %if.merge.150 + br i1 %icmpN, label %if.then.165, label %if.merge.166 -while.exit.148: ; preds = %while.hdr.146 +while.exit.164: ; preds = %while.hdr.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.192, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.401, i64 1 }) ret { ptr, i64 } %callN -if.then.149: ; preds = %while.body.147 +if.then.165: ; preds = %while.body.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.193, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.402, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.150 + br label %if.merge.166 -if.merge.150: ; preds = %if.then.149, %while.body.147 +if.merge.166: ; preds = %if.then.165, %while.body.163 %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.198, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.407, 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.199, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, 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 @@ -2864,29 +4432,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.146 + br label %while.hdr.162 -fv.default: ; preds = %if.merge.150 +fv.default: ; preds = %if.merge.166 br label %fv.merge -fv.case: ; preds = %if.merge.150 +fv.case: ; preds = %if.merge.166 %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 27, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.150 +fv.case17: ; preds = %if.merge.166 %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.150 +fv.case20: ; preds = %if.merge.166 %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.150 +fv.case23: ; preds = %if.merge.166 %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 @@ -2898,43 +4466,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.200, i64 7 }, { ptr, i64 } { ptr @str.201, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.409, i64 7 }, { ptr, i64 } { ptr @str.410, 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.151 + br label %while.hdr.167 -while.hdr.151: ; preds = %fv.merge, %entry +while.hdr.167: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.152, label %while.exit.153 + br i1 %icmp, label %while.body.168, label %while.exit.169 -while.body.152: ; preds = %while.hdr.151 +while.body.168: ; preds = %while.hdr.167 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.154, label %if.merge.155 + br i1 %icmpN, label %if.then.170, label %if.merge.171 -while.exit.153: ; preds = %while.hdr.151 +while.exit.169: ; preds = %while.hdr.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.202, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, i64 1 }) ret { ptr, i64 } %callN -if.then.154: ; preds = %while.body.152 +if.then.170: ; preds = %while.body.168 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.155 + br label %if.merge.171 -if.merge.155: ; preds = %if.then.154, %while.body.152 +if.merge.171: ; preds = %if.then.170, %while.body.168 %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.206, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.415, 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.207, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.416, 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 %alloca, align 8 @@ -2952,25 +4520,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.151 + br label %while.hdr.167 -fv.default: ; preds = %if.merge.155 +fv.default: ; preds = %if.merge.171 br label %fv.merge -fv.case: ; preds = %if.merge.155 +fv.case: ; preds = %if.merge.171 %fv.field = extractvalue { { 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 27, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.155 +fv.case17: ; preds = %if.merge.171 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.417, i64 4 }, { ptr, i64 } { ptr @str.418, 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.172 + +while.hdr.172: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.173, label %while.exit.174 + +while.body.173: ; preds = %while.hdr.172 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.175, label %if.merge.176 + +while.exit.174: ; preds = %while.hdr.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 1 }) + ret { ptr, i64 } %callN + +if.then.175: ; preds = %while.body.173 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.176 + +if.merge.176: ; preds = %if.then.175, %while.body.173 + %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.422, 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.423, 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.172 + +fv.default: ; preds = %if.merge.176 + br label %fv.merge + +fv.case: ; preds = %if.merge.176 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.424, i64 10 }, { ptr, i64 } { ptr @str.425, 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.177 + +while.hdr.177: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.178, label %while.exit.179 + +while.body.178: ; preds = %while.hdr.177 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.180, label %if.merge.181 + +while.exit.179: ; preds = %while.hdr.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.426, i64 1 }) + ret { ptr, i64 } %callN + +if.then.180: ; preds = %while.body.178 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.427, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.181 + +if.merge.181: ; preds = %if.then.180, %while.body.178 + %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.433, 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.434, 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.177 + +fv.default: ; preds = %if.merge.181 + br label %fv.merge + +fv.case: ; preds = %if.merge.181 + %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.181 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.181 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.181 + %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.181 + %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.435, i64 13 }, { ptr, i64 } { ptr @str.436, 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.182 + +while.hdr.182: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.183, label %while.exit.184 + +while.body.183: ; preds = %while.hdr.182 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.185, label %if.merge.186 + +while.exit.184: ; preds = %while.hdr.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.437, i64 1 }) + ret { ptr, i64 } %callN + +if.then.185: ; preds = %while.body.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.438, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.186 + +if.merge.186: ; preds = %if.then.185, %while.body.183 + %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.441, 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.442, 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.182 + +fv.default: ; preds = %if.merge.186 + br label %fv.merge + +fv.case: ; preds = %if.merge.186 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.186 + %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.443, i64 8 }, { ptr, i64 } { ptr @str.444, 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.187 + +while.hdr.187: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.188, label %while.exit.189 + +while.body.188: ; preds = %while.hdr.187 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.190, label %if.merge.191 + +while.exit.189: ; preds = %while.hdr.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.445, i64 1 }) + ret { ptr, i64 } %callN + +if.then.190: ; preds = %while.body.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.446, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.191 + +if.merge.191: ; preds = %if.then.190, %while.body.188 + %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.452, 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.453, 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.187 + +fv.default: ; preds = %if.merge.191 + br label %fv.merge + +fv.case: ; preds = %if.merge.191 + %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.191 + %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.191 + %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.191 + %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.191 + %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.454, i64 5 }, { ptr, i64 } { ptr @str.455, 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.192 + +while.hdr.192: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.193, label %while.exit.194 + +while.body.193: ; preds = %while.hdr.192 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.195, label %if.merge.196 + +while.exit.194: ; preds = %while.hdr.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.456, i64 1 }) + ret { ptr, i64 } %callN + +if.then.195: ; preds = %while.body.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.457, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.196 + +if.merge.196: ; preds = %if.then.195, %while.body.193 + %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.461, 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.462, 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.192 + +fv.default: ; preds = %if.merge.196 + br label %fv.merge + +fv.case: ; preds = %if.merge.196 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 57, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.196 + %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.196 + %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.463, i64 6 }, { ptr, i64 } { ptr @str.464, 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.197 + +while.hdr.197: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.198, label %while.exit.199 + +while.body.198: ; preds = %while.hdr.197 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.200, label %if.merge.201 + +while.exit.199: ; preds = %while.hdr.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.465, i64 1 }) + ret { ptr, i64 } %callN + +if.then.200: ; preds = %while.body.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.466, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.201 + +if.merge.201: ; preds = %if.then.200, %while.body.198 + %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.470, 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.471, 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.197 + +fv.default: ; preds = %if.merge.201 + br label %fv.merge + +fv.case: ; preds = %if.merge.201 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 59, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.201 + %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.201 + %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.472, i64 6 }, { ptr, i64 } { ptr @str.473, 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.202 + +while.hdr.202: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.203, label %while.exit.204 + +while.body.203: ; preds = %while.hdr.202 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.205, label %if.merge.206 + +while.exit.204: ; preds = %while.hdr.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.474, i64 1 }) + ret { ptr, i64 } %callN + +if.then.205: ; preds = %while.body.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.475, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.206 + +if.merge.206: ; preds = %if.then.205, %while.body.203 + %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.478, 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.479, 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.202 + +fv.default: ; preds = %if.merge.206 + br label %fv.merge + +fv.case: ; preds = %if.merge.206 + %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.206 + %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 55, 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.480, i64 4 }, { ptr, i64 } { ptr @str.481, 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.207 + +while.hdr.207: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.208, label %while.exit.209 + +while.body.208: ; preds = %while.hdr.207 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.210, label %if.merge.211 + +while.exit.209: ; preds = %while.hdr.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.482, i64 1 }) + ret { ptr, i64 } %callN + +if.then.210: ; preds = %while.body.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.483, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.211 + +if.merge.211: ; preds = %if.then.210, %while.body.208 + %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.487, 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.488, 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.207 + +fv.default: ; preds = %if.merge.211 + br label %fv.merge + +fv.case: ; preds = %if.merge.211 + %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 61, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.211 + %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.211 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 41, 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.489, i64 6 }, { ptr, i64 } { ptr @str.490, 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.212 + +while.hdr.212: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.213, label %while.exit.214 + +while.body.213: ; preds = %while.hdr.212 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.215, label %if.merge.216 + +while.exit.214: ; preds = %while.hdr.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.491, i64 1 }) + ret { ptr, i64 } %callN + +if.then.215: ; preds = %while.body.213 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.492, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.216 + +if.merge.216: ; preds = %if.then.215, %while.body.213 + %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.496, 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.497, 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.212 + +fv.default: ; preds = %if.merge.216 + br label %fv.merge + +fv.case: ; preds = %if.merge.216 + %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.216 + %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.216 + %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 27, i64 undef }, i64 %ba.p2i23, 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.498, i64 12 }, { ptr, i64 } { ptr @str.499, 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.217 + +while.hdr.217: ; preds = %if.merge.221, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.218, label %while.exit.219 + +while.body.218: ; preds = %while.hdr.217 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.220, label %if.merge.221 + +while.exit.219: ; preds = %while.hdr.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.500, i64 1 }) + ret { ptr, i64 } %callN + +if.then.220: ; preds = %while.body.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.501, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.221 + +if.merge.221: ; preds = %if.then.220, %while.body.218 + %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.502, 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.503, 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.217 +} + +; 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.504, i64 8 }, { ptr, i64 } { ptr @str.505, 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.222 + +while.hdr.222: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.223, label %while.exit.224 + +while.body.223: ; preds = %while.hdr.222 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.225, label %if.merge.226 + +while.exit.224: ; preds = %while.hdr.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.506, i64 1 }) + ret { ptr, i64 } %callN + +if.then.225: ; preds = %while.body.223 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.507, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.226 + +if.merge.226: ; preds = %if.then.225, %while.body.223 + %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.511, 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.512, 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.222 + +fv.default: ; preds = %if.merge.226 + br label %fv.merge + +fv.case: ; preds = %if.merge.226 + %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.226 + %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.226 + %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.513, i64 7 }, { ptr, i64 } { ptr @str.514, 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.227 + +while.hdr.227: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.228, label %while.exit.229 + +while.body.228: ; preds = %while.hdr.227 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.230, label %if.merge.231 + +while.exit.229: ; preds = %while.hdr.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.515, i64 1 }) + ret { ptr, i64 } %callN + +if.then.230: ; preds = %while.body.228 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.516, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.231 + +if.merge.231: ; preds = %if.then.230, %while.body.228 + %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.520, 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.521, 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.227 + +fv.default: ; preds = %if.merge.231 + br label %fv.merge + +fv.case: ; preds = %if.merge.231 + %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.231 + %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.231 + %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 78, 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.522, i64 9 }, { ptr, i64 } { ptr @str.523, 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.232 + +while.hdr.232: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.233, label %while.exit.234 + +while.body.233: ; preds = %while.hdr.232 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.235, label %if.merge.236 + +while.exit.234: ; preds = %while.hdr.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.524, i64 1 }) + ret { ptr, i64 } %callN + +if.then.235: ; preds = %while.body.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.525, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.236 + +if.merge.236: ; preds = %if.then.235, %while.body.233 + %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.528, 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.529, 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.232 + +fv.default: ; preds = %if.merge.236 + br label %fv.merge + +fv.case: ; preds = %if.merge.236 + %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.236 + %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.530, i64 4 }, { ptr, i64 } { ptr @str.531, 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.237 + +while.hdr.237: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.238, label %while.exit.239 + +while.body.238: ; preds = %while.hdr.237 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.240, label %if.merge.241 + +while.exit.239: ; preds = %while.hdr.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.532, i64 1 }) + ret { ptr, i64 } %callN + +if.then.240: ; preds = %while.body.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.533, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.241 + +if.merge.241: ; preds = %if.then.240, %while.body.238 + %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.536, 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.537, 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.237 + +fv.default: ; preds = %if.merge.241 + br label %fv.merge + +fv.case: ; preds = %if.merge.241 + %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.241 + %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.538, i64 6 }, { ptr, i64 } { ptr @str.539, 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.242 + +while.hdr.242: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.243, label %while.exit.244 + +while.body.243: ; preds = %while.hdr.242 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.245, label %if.merge.246 + +while.exit.244: ; preds = %while.hdr.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.540, i64 1 }) + ret { ptr, i64 } %callN + +if.then.245: ; preds = %while.body.243 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.541, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.246 + +if.merge.246: ; preds = %if.then.245, %while.body.243 + %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.549, 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.550, 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.242 + +fv.default: ; preds = %if.merge.246 + br label %fv.merge + +fv.case: ; preds = %if.merge.246 + %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.246 + %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.246 + %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.246 + %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.246 + %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 37, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.246 + %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 78, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.246 + %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 82, 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.551, i64 6 }, { ptr, i64 } { ptr @str.552, 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.247 + +while.hdr.247: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.248, label %while.exit.249 + +while.body.248: ; preds = %while.hdr.247 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.250, label %if.merge.251 + +while.exit.249: ; preds = %while.hdr.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.553, i64 1 }) + ret { ptr, i64 } %callN + +if.then.250: ; preds = %while.body.248 + %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 + br label %if.merge.251 + +if.merge.251: ; preds = %if.then.250, %while.body.248 + %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.559, 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.560, 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.247 + +fv.default: ; preds = %if.merge.251 + br label %fv.merge + +fv.case: ; preds = %if.merge.251 + %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 88, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.251 + %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 89, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.251 + %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.251 + %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 } @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.566, 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.561, 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.259, label %if.merge.260 + +if.then.259: ; 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.568, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.567, 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.260 + +if.merge.260: ; preds = %if.then.259, %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.573, 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.569, 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.261, label %if.merge.262 + +if.then.261: ; 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.575, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.574, 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.262 + +if.merge.262: ; preds = %if.then.261, %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.583, 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.576, 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.263: ; 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.585, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.584, 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.264 + +if.merge.264: ; preds = %if.then.263, %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.263, label %if.merge.264 + +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 { 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 { 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 { 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 { 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 53, 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 { 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 54, 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.594, 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.586, 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.265, label %if.merge.266 + +if.then.265: ; 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.596, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.595, 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.266 + +if.merge.266: ; preds = %if.then.265, %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.603, 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.597, 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.267, label %if.merge.268 + +if.then.267: ; 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.605, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.604, 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.268 + +if.merge.268: ; preds = %if.then.267, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2978,33 +6188,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.208, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.606, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.277 -while.hdr.160: ; preds = %if.merge.164, %entry +while.hdr.277: ; preds = %if.merge.281, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.161, label %while.exit.162 + br i1 %icmp, label %while.body.278, label %while.exit.279 -while.body.161: ; preds = %while.hdr.160 +while.body.278: ; preds = %while.hdr.277 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.163, label %if.merge.164 + br i1 %icmpN, label %if.then.280, label %if.merge.281 -while.exit.162: ; preds = %while.hdr.160 +while.exit.279: ; preds = %while.hdr.277 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 1 }) ret { ptr, i64 } %call -if.then.163: ; preds = %while.body.161 +if.then.280: ; preds = %while.body.278 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.210, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.164 + br label %if.merge.281 -if.merge.164: ; preds = %if.then.163, %while.body.161 +if.merge.281: ; preds = %if.then.280, %while.body.278 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3018,7 +6228,211 @@ if.merge.164: ; preds = %if.then.163, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.277 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.609, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.282 + +while.hdr.282: ; preds = %if.merge.286, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.283, label %while.exit.284 + +while.body.283: ; preds = %while.hdr.282 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.285, label %if.merge.286 + +while.exit.284: ; preds = %while.hdr.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 1 }) + ret { ptr, i64 } %call + +if.then.285: ; preds = %while.body.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.286 + +if.merge.286: ; preds = %if.then.285, %while.body.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 80, 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.282 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.612, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.287 + +while.hdr.287: ; preds = %if.merge.291, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.288, label %while.exit.289 + +while.body.288: ; preds = %while.hdr.287 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.290, label %if.merge.291 + +while.exit.289: ; preds = %while.hdr.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.613, i64 1 }) + ret { ptr, i64 } %call + +if.then.290: ; preds = %while.body.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.291 + +if.merge.291: ; preds = %if.then.290, %while.body.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.287 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.615, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.292 + +while.hdr.292: ; preds = %if.merge.296, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.293, label %while.exit.294 + +while.body.293: ; preds = %while.hdr.292 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.295, label %if.merge.296 + +while.exit.294: ; preds = %while.hdr.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 1 }) + ret { ptr, i64 } %call + +if.then.295: ; preds = %while.body.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.296 + +if.merge.296: ; preds = %if.then.295, %while.body.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.292 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.618, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.297 + +while.hdr.297: ; preds = %if.merge.301, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.298, label %while.exit.299 + +while.body.298: ; preds = %while.hdr.297 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.300, label %if.merge.301 + +while.exit.299: ; preds = %while.hdr.297 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.619, i64 1 }) + ret { ptr, i64 } %call + +if.then.300: ; preds = %while.body.298 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.301 + +if.merge.301: ; preds = %if.then.300, %while.body.298 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.297 } ; Function Attrs: nounwind @@ -3029,33 +6443,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.211, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.621, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.302 -while.hdr.165: ; preds = %if.merge.169, %entry +while.hdr.302: ; preds = %if.merge.306, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.166, label %while.exit.167 + br i1 %icmp, label %while.body.303, label %while.exit.304 -while.body.166: ; preds = %while.hdr.165 +while.body.303: ; preds = %while.hdr.302 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.168, label %if.merge.169 + br i1 %icmpN, label %if.then.305, label %if.merge.306 -while.exit.167: ; preds = %while.hdr.165 +while.exit.304: ; preds = %while.hdr.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.622, i64 1 }) ret { ptr, i64 } %call -if.then.168: ; preds = %while.body.166 +if.then.305: ; preds = %while.body.303 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.213, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.169 + br label %if.merge.306 -if.merge.169: ; preds = %if.then.168, %while.body.166 +if.merge.306: ; preds = %if.then.305, %while.body.303 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3071,7 +6485,7 @@ if.merge.169: ; preds = %if.then.168, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.302 } ; Function Attrs: nounwind @@ -3081,35 +6495,35 @@ entry: %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.214, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.624, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.174 + br label %while.hdr.314 -while.hdr.174: ; preds = %if.merge.178, %entry +while.hdr.314: ; preds = %if.merge.318, %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.175, label %while.exit.176 + br i1 %icmp, label %while.body.315, label %while.exit.316 -while.body.175: ; preds = %while.hdr.174 +while.body.315: ; preds = %while.hdr.314 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.177, label %if.merge.178 + br i1 %icmpN, label %if.then.317, label %if.merge.318 -while.exit.176: ; preds = %while.hdr.174 +while.exit.316: ; preds = %while.hdr.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.215, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.625, i64 1 }) ret { ptr, i64 } %call -if.then.177: ; preds = %while.body.175 +if.then.317: ; preds = %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.216, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.626, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.178 + br label %if.merge.318 -if.merge.178: ; preds = %if.then.177, %while.body.175 +if.merge.318: ; preds = %if.then.317, %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3125,7 +6539,167 @@ if.merge.178: ; preds = %if.then.177, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.174 + br label %while.hdr.314 +} + +; 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.627, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.319 + +while.hdr.319: ; preds = %if.merge.323, %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.320, label %while.exit.321 + +while.body.320: ; preds = %while.hdr.319 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.322, label %if.merge.323 + +while.exit.321: ; preds = %while.hdr.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.628, i64 1 }) + ret { ptr, i64 } %call + +if.then.322: ; preds = %while.body.320 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.629, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.323 + +if.merge.323: ; preds = %if.then.322, %while.body.320 + %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.319 +} + +; 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.630, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.324 + +while.hdr.324: ; preds = %if.merge.328, %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.325, label %while.exit.326 + +while.body.325: ; preds = %while.hdr.324 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.327, label %if.merge.328 + +while.exit.326: ; preds = %while.hdr.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.631, i64 1 }) + ret { ptr, i64 } %call + +if.then.327: ; preds = %while.body.325 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.632, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.328 + +if.merge.328: ; preds = %if.then.327, %while.body.325 + %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 77, 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.324 +} + +; 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.633, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.329 + +while.hdr.329: ; preds = %if.merge.333, %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.330, label %while.exit.331 + +while.body.330: ; preds = %while.hdr.329 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.332, label %if.merge.333 + +while.exit.331: ; preds = %while.hdr.329 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.634, i64 1 }) + ret { ptr, i64 } %call + +if.then.332: ; preds = %while.body.330 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.635, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.333 + +if.merge.333: ; preds = %if.then.332, %while.body.330 + %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 79, 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.329 } ; Function Attrs: nounwind @@ -3135,35 +6709,35 @@ entry: %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.217, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.636, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.334 -while.hdr.179: ; preds = %if.merge.183, %entry +while.hdr.334: ; preds = %if.merge.338, %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.180, label %while.exit.181 + br i1 %icmp, label %while.body.335, label %while.exit.336 -while.body.180: ; preds = %while.hdr.179 +while.body.335: ; preds = %while.hdr.334 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.182, label %if.merge.183 + br i1 %icmpN, label %if.then.337, label %if.merge.338 -while.exit.181: ; preds = %while.hdr.179 +while.exit.336: ; preds = %while.hdr.334 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.218, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.637, i64 1 }) ret { ptr, i64 } %call -if.then.182: ; preds = %while.body.180 +if.then.337: ; preds = %while.body.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.219, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.638, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.183 + br label %if.merge.338 -if.merge.183: ; preds = %if.then.182, %while.body.180 +if.merge.338: ; preds = %if.then.337, %while.body.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3179,7 +6753,7 @@ if.merge.183: ; preds = %if.then.182, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.334 } ; Function Attrs: nounwind @@ -3193,20 +6767,20 @@ entry: 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.206, label %if.else.207 + br i1 %icmp, label %if.then.374, label %if.else.375 -if.then.206: ; preds = %entry - br label %if.merge.208 +if.then.374: ; preds = %entry + br label %if.merge.376 -if.else.207: ; preds = %entry +if.else.375: ; 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.222, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.221, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.208 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.640, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.376 -if.merge.208: ; preds = %if.else.207, %if.then.206 - %bp = phi { ptr, i64 } [ { ptr @str.220, i64 4 }, %if.then.206 ], [ %callN, %if.else.207 ] +if.merge.376: ; preds = %if.else.375, %if.then.374 + %bp = phi { ptr, i64 } [ { ptr @str.639, i64 4 }, %if.then.374 ], [ %callN, %if.else.375 ] ret { ptr, i64 } %bp } @@ -3221,20 +6795,20 @@ entry: 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.222, label %if.else.223 + br i1 %icmp, label %if.then.390, label %if.else.391 -if.then.222: ; preds = %entry - br label %if.merge.224 +if.then.390: ; preds = %entry + br label %if.merge.392 -if.else.223: ; preds = %entry +if.else.391: ; 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.225, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.224, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.224 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.644, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.392 -if.merge.224: ; preds = %if.else.223, %if.then.222 - %bp = phi { ptr, i64 } [ { ptr @str.223, i64 4 }, %if.then.222 ], [ %callN, %if.else.223 ] +if.merge.392: ; preds = %if.else.391, %if.then.390 + %bp = phi { ptr, i64 } [ { ptr @str.642, i64 4 }, %if.then.390 ], [ %callN, %if.else.391 ] ret { ptr, i64 } %bp } @@ -3249,20 +6823,20 @@ entry: 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.225, label %if.else.226 + br i1 %icmp, label %if.then.393, label %if.else.394 -if.then.225: ; preds = %entry - br label %if.merge.227 +if.then.393: ; preds = %entry + br label %if.merge.395 -if.else.226: ; preds = %entry +if.else.394: ; 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.228, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.227, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.227 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.646, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.395 -if.merge.227: ; preds = %if.else.226, %if.then.225 - %bp = phi { ptr, i64 } [ { ptr @str.226, i64 4 }, %if.then.225 ], [ %callN, %if.else.226 ] +if.merge.395: ; preds = %if.else.394, %if.then.393 + %bp = phi { ptr, i64 } [ { ptr @str.645, i64 4 }, %if.then.393 ], [ %callN, %if.else.394 ] ret { ptr, i64 } %bp } @@ -3277,20 +6851,20 @@ entry: 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.228, label %if.else.229 + br i1 %icmp, label %if.then.396, label %if.else.397 -if.then.228: ; preds = %entry - br label %if.merge.230 +if.then.396: ; preds = %entry + br label %if.merge.398 -if.else.229: ; preds = %entry +if.else.397: ; 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.231, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.230, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.230 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.398 -if.merge.230: ; preds = %if.else.229, %if.then.228 - %bp = phi { ptr, i64 } [ { ptr @str.229, i64 4 }, %if.then.228 ], [ %callN, %if.else.229 ] +if.merge.398: ; preds = %if.else.397, %if.then.396 + %bp = phi { ptr, i64 } [ { ptr @str.648, i64 4 }, %if.then.396 ], [ %callN, %if.else.397 ] ret { ptr, i64 } %bp } @@ -3305,20 +6879,20 @@ entry: 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.231, label %if.else.232 + br i1 %icmp, label %if.then.399, label %if.else.400 -if.then.231: ; preds = %entry - br label %if.merge.233 +if.then.399: ; preds = %entry + br label %if.merge.401 -if.else.232: ; preds = %entry +if.else.400: ; 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.234, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.233, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.233 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.652, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.401 -if.merge.233: ; preds = %if.else.232, %if.then.231 - %bp = phi { ptr, i64 } [ { ptr @str.232, i64 4 }, %if.then.231 ], [ %callN, %if.else.232 ] +if.merge.401: ; preds = %if.else.400, %if.then.399 + %bp = phi { ptr, i64 } [ { ptr @str.651, i64 4 }, %if.then.399 ], [ %callN, %if.else.400 ] ret { ptr, i64 } %bp } @@ -3332,20 +6906,20 @@ entry: 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.234, label %if.else.235 + br i1 %icmp, label %if.then.402, label %if.else.403 -if.then.234: ; preds = %entry - br label %if.merge.236 +if.then.402: ; preds = %entry + br label %if.merge.404 -if.else.235: ; preds = %entry +if.else.403: ; 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.237, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.236, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.236 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.655, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.404 -if.merge.236: ; preds = %if.else.235, %if.then.234 - %bp = phi { ptr, i64 } [ { ptr @str.235, i64 4 }, %if.then.234 ], [ %callN, %if.else.235 ] +if.merge.404: ; preds = %if.else.403, %if.then.402 + %bp = phi { ptr, i64 } [ { ptr @str.654, i64 4 }, %if.then.402 ], [ %callN, %if.else.403 ] ret { ptr, i64 } %bp } @@ -3360,20 +6934,20 @@ entry: 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.237, label %if.else.238 + br i1 %icmp, label %if.then.405, label %if.else.406 -if.then.237: ; preds = %entry - br label %if.merge.239 +if.then.405: ; preds = %entry + br label %if.merge.407 -if.else.238: ; preds = %entry +if.else.406: ; 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.240, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.239, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.239 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.659, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.658, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.407 -if.merge.239: ; preds = %if.else.238, %if.then.237 - %bp = phi { ptr, i64 } [ { ptr @str.238, i64 4 }, %if.then.237 ], [ %callN, %if.else.238 ] +if.merge.407: ; preds = %if.else.406, %if.then.405 + %bp = phi { ptr, i64 } [ { ptr @str.657, i64 4 }, %if.then.405 ], [ %callN, %if.else.406 ] ret { ptr, i64 } %bp } @@ -3388,25 +6962,25 @@ entry: 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.240, label %if.else.241 + br i1 %icmp, label %if.then.408, label %if.else.409 -if.then.240: ; preds = %entry - br label %if.merge.242 +if.then.408: ; preds = %entry + br label %if.merge.410 -if.else.241: ; preds = %entry +if.else.409: ; 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.243, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.242, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.242 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.662, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.661, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.410 -if.merge.242: ; preds = %if.else.241, %if.then.240 - %bp = phi { ptr, i64 } [ { ptr @str.241, i64 4 }, %if.then.240 ], [ %callN, %if.else.241 ] +if.merge.410: ; preds = %if.else.409, %if.then.408 + %bp = phi { ptr, i64 } [ { ptr @str.660, i64 4 }, %if.then.408 ], [ %callN, %if.else.409 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3416,216 +6990,20 @@ entry: 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.243, label %if.else.244 + br i1 %icmp, label %if.then.411, label %if.else.412 -if.then.243: ; preds = %entry - br label %if.merge.245 +if.then.411: ; preds = %entry + br label %if.merge.413 -if.else.244: ; preds = %entry +if.else.412: ; 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.246, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.245, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.245 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.665, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.664, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.413 -if.merge.245: ; preds = %if.else.244, %if.then.243 - %bp = phi { ptr, i64 } [ { ptr @str.244, i64 4 }, %if.then.243 ], [ %callN, %if.else.244 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.246, label %if.else.247 - -if.then.246: ; preds = %entry - br label %if.merge.248 - -if.else.247: ; 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.249, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.248, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.248 - -if.merge.248: ; preds = %if.else.247, %if.then.246 - %bp = phi { ptr, i64 } [ { ptr @str.247, i64 4 }, %if.then.246 ], [ %callN, %if.else.247 ] - 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.249, label %if.else.250 - -if.then.249: ; preds = %entry - br label %if.merge.251 - -if.else.250: ; 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.252, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.251, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.251 - -if.merge.251: ; preds = %if.else.250, %if.then.249 - %bp = phi { ptr, i64 } [ { ptr @str.250, i64 4 }, %if.then.249 ], [ %callN, %if.else.250 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_f32(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.252, label %if.else.253 - -if.then.252: ; preds = %entry - br label %if.merge.254 - -if.else.253: ; 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.255, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.254, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.254 - -if.merge.254: ; preds = %if.else.253, %if.then.252 - %bp = phi { ptr, i64 } [ { ptr @str.253, i64 4 }, %if.then.252 ], [ %callN, %if.else.253 ] - 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.255, label %if.else.256 - -if.then.255: ; preds = %entry - br label %if.merge.257 - -if.else.256: ; 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.258, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.257, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.257 - -if.merge.257: ; preds = %if.else.256, %if.then.255 - %bp = phi { ptr, i64 } [ { ptr @str.256, i64 4 }, %if.then.255 ], [ %callN, %if.else.256 ] - 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.258, label %if.else.259 - -if.then.258: ; preds = %entry - br label %if.merge.260 - -if.else.259: ; 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.261, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.260, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.260 - -if.merge.260: ; preds = %if.else.259, %if.then.258 - %bp = phi { ptr, i64 } [ { ptr @str.259, i64 4 }, %if.then.258 ], [ %callN, %if.else.259 ] - 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.261, label %if.else.262 - -if.then.261: ; preds = %entry - br label %if.merge.263 - -if.else.262: ; 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.264, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.263, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.263 - -if.merge.263: ; preds = %if.else.262, %if.then.261 - %bp = phi { ptr, i64 } [ { ptr @str.262, i64 4 }, %if.then.261 ], [ %callN, %if.else.262 ] - 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.264, label %if.else.265 - -if.then.264: ; preds = %entry - br label %if.merge.266 - -if.else.265: ; 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.267, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.266, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.266 - -if.merge.266: ; preds = %if.else.265, %if.then.264 - %bp = phi { ptr, i64 } [ { ptr @str.265, i64 4 }, %if.then.264 ], [ %callN, %if.else.265 ] +if.merge.413: ; preds = %if.else.412, %if.then.411 + %bp = phi { ptr, i64 } [ { ptr @str.663, i64 4 }, %if.then.411 ], [ %callN, %if.else.412 ] ret { ptr, i64 } %bp } @@ -3640,20 +7018,578 @@ entry: 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.267, label %if.else.268 + br i1 %icmp, label %if.then.414, label %if.else.415 -if.then.267: ; preds = %entry - br label %if.merge.269 +if.then.414: ; preds = %entry + br label %if.merge.416 -if.else.268: ; preds = %entry +if.else.415: ; 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.270, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.269, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.269 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.668, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.667, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.416 -if.merge.269: ; preds = %if.else.268, %if.then.267 - %bp = phi { ptr, i64 } [ { ptr @str.268, i64 4 }, %if.then.267 ], [ %callN, %if.else.268 ] +if.merge.416: ; preds = %if.else.415, %if.then.414 + %bp = phi { ptr, i64 } [ { ptr @str.666, i64 4 }, %if.then.414 ], [ %callN, %if.else.415 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.417, label %if.else.418 + +if.then.417: ; preds = %entry + br label %if.merge.419 + +if.else.418: ; 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.671, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.670, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.419 + +if.merge.419: ; preds = %if.else.418, %if.then.417 + %bp = phi { ptr, i64 } [ { ptr @str.669, i64 4 }, %if.then.417 ], [ %callN, %if.else.418 ] + 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.420, label %if.else.421 + +if.then.420: ; preds = %entry + br label %if.merge.422 + +if.else.421: ; 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.674, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.673, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.422 + +if.merge.422: ; preds = %if.else.421, %if.then.420 + %bp = phi { ptr, i64 } [ { ptr @str.672, i64 4 }, %if.then.420 ], [ %callN, %if.else.421 ] + 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.423, label %if.else.424 + +if.then.423: ; preds = %entry + br label %if.merge.425 + +if.else.424: ; 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.677, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.676, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.425 + +if.merge.425: ; preds = %if.else.424, %if.then.423 + %bp = phi { ptr, i64 } [ { ptr @str.675, i64 4 }, %if.then.423 ], [ %callN, %if.else.424 ] + 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.426, label %if.else.427 + +if.then.426: ; preds = %entry + br label %if.merge.428 + +if.else.427: ; 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.680, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.679, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.428 + +if.merge.428: ; preds = %if.else.427, %if.then.426 + %bp = phi { ptr, i64 } [ { ptr @str.678, i64 4 }, %if.then.426 ], [ %callN, %if.else.427 ] + 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.429, label %if.else.430 + +if.then.429: ; preds = %entry + br label %if.merge.431 + +if.else.430: ; 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.683, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.682, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.431 + +if.merge.431: ; preds = %if.else.430, %if.then.429 + %bp = phi { ptr, i64 } [ { ptr @str.681, i64 4 }, %if.then.429 ], [ %callN, %if.else.430 ] + 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.432, label %if.else.433 + +if.then.432: ; preds = %entry + br label %if.merge.434 + +if.else.433: ; 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.686, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.685, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.434 + +if.merge.434: ; preds = %if.else.433, %if.then.432 + %bp = phi { ptr, i64 } [ { ptr @str.684, i64 4 }, %if.then.432 ], [ %callN, %if.else.433 ] + 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.435, label %if.else.436 + +if.then.435: ; preds = %entry + br label %if.merge.437 + +if.else.436: ; 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.689, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.688, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.437 + +if.merge.437: ; preds = %if.else.436, %if.then.435 + %bp = phi { ptr, i64 } [ { ptr @str.687, i64 4 }, %if.then.435 ], [ %callN, %if.else.436 ] + 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.438, label %if.else.439 + +if.then.438: ; preds = %entry + br label %if.merge.440 + +if.else.439: ; 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.692, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.691, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.440 + +if.merge.440: ; preds = %if.else.439, %if.then.438 + %bp = phi { ptr, i64 } [ { ptr @str.690, i64 4 }, %if.then.438 ], [ %callN, %if.else.439 ] + 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.441, label %if.else.442 + +if.then.441: ; preds = %entry + br label %if.merge.443 + +if.else.442: ; 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.695, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.694, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.443 + +if.merge.443: ; preds = %if.else.442, %if.then.441 + %bp = phi { ptr, i64 } [ { ptr @str.693, i64 4 }, %if.then.441 ], [ %callN, %if.else.442 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.444, label %if.else.445 + +if.then.444: ; preds = %entry + br label %if.merge.446 + +if.else.445: ; 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.698, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.697, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.446 + +if.merge.446: ; preds = %if.else.445, %if.then.444 + %bp = phi { ptr, i64 } [ { ptr @str.696, i64 4 }, %if.then.444 ], [ %callN, %if.else.445 ] + 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.447, label %if.else.448 + +if.then.447: ; preds = %entry + br label %if.merge.449 + +if.else.448: ; 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.701, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.700, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.449 + +if.merge.449: ; preds = %if.else.448, %if.then.447 + %bp = phi { ptr, i64 } [ { ptr @str.699, i64 4 }, %if.then.447 ], [ %callN, %if.else.448 ] + 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.450, label %if.else.451 + +if.then.450: ; preds = %entry + br label %if.merge.452 + +if.else.451: ; 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.704, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.452 + +if.merge.452: ; preds = %if.else.451, %if.then.450 + %bp = phi { ptr, i64 } [ { ptr @str.702, i64 4 }, %if.then.450 ], [ %callN, %if.else.451 ] + 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.453, label %if.else.454 + +if.then.453: ; preds = %entry + br label %if.merge.455 + +if.else.454: ; 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.707, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.706, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.455 + +if.merge.455: ; preds = %if.else.454, %if.then.453 + %bp = phi { ptr, i64 } [ { ptr @str.705, i64 4 }, %if.then.453 ], [ %callN, %if.else.454 ] + 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.456, label %if.else.457 + +if.then.456: ; preds = %entry + br label %if.merge.458 + +if.else.457: ; 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.710, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.709, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.458 + +if.merge.458: ; preds = %if.else.457, %if.then.456 + %bp = phi { ptr, i64 } [ { ptr @str.708, i64 4 }, %if.then.456 ], [ %callN, %if.else.457 ] + 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.459, label %if.else.460 + +if.then.459: ; preds = %entry + br label %if.merge.461 + +if.else.460: ; 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.713, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.712, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.461 + +if.merge.461: ; preds = %if.else.460, %if.then.459 + %bp = phi { ptr, i64 } [ { ptr @str.711, i64 4 }, %if.then.459 ], [ %callN, %if.else.460 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_f32(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.462, label %if.else.463 + +if.then.462: ; preds = %entry + br label %if.merge.464 + +if.else.463: ; 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.716, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.715, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.464 + +if.merge.464: ; preds = %if.else.463, %if.then.462 + %bp = phi { ptr, i64 } [ { ptr @str.714, i64 4 }, %if.then.462 ], [ %callN, %if.else.463 ] + 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.465, label %if.else.466 + +if.then.465: ; preds = %entry + br label %if.merge.467 + +if.else.466: ; 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.719, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.467 + +if.merge.467: ; preds = %if.else.466, %if.then.465 + %bp = phi { ptr, i64 } [ { ptr @str.717, i64 4 }, %if.then.465 ], [ %callN, %if.else.466 ] + 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.468, label %if.else.469 + +if.then.468: ; preds = %entry + br label %if.merge.470 + +if.else.469: ; 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.722, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.721, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.470 + +if.merge.470: ; preds = %if.else.469, %if.then.468 + %bp = phi { ptr, i64 } [ { ptr @str.720, i64 4 }, %if.then.468 ], [ %callN, %if.else.469 ] + 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.471, label %if.else.472 + +if.then.471: ; preds = %entry + br label %if.merge.473 + +if.else.472: ; 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.725, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.473 + +if.merge.473: ; preds = %if.else.472, %if.then.471 + %bp = phi { ptr, i64 } [ { ptr @str.723, i64 4 }, %if.then.471 ], [ %callN, %if.else.472 ] + 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.474, label %if.else.475 + +if.then.474: ; preds = %entry + br label %if.merge.476 + +if.else.475: ; 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.728, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.727, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.476 + +if.merge.476: ; preds = %if.else.475, %if.then.474 + %bp = phi { ptr, i64 } [ { ptr @str.726, i64 4 }, %if.then.474 ], [ %callN, %if.else.475 ] ret { ptr, i64 } %bp } @@ -3668,20 +7604,20 @@ entry: 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.270, label %if.else.271 + br i1 %icmp, label %if.then.477, label %if.else.478 -if.then.270: ; preds = %entry - br label %if.merge.272 +if.then.477: ; preds = %entry + br label %if.merge.479 -if.else.271: ; preds = %entry +if.else.478: ; 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.273, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.272, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.272 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.731, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.730, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.479 -if.merge.272: ; preds = %if.else.271, %if.then.270 - %bp = phi { ptr, i64 } [ { ptr @str.271, i64 4 }, %if.then.270 ], [ %callN, %if.else.271 ] +if.merge.479: ; preds = %if.else.478, %if.then.477 + %bp = phi { ptr, i64 } [ { ptr @str.729, i64 4 }, %if.then.477 ], [ %callN, %if.else.478 ] ret { ptr, i64 } %bp } @@ -3696,20 +7632,20 @@ entry: 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.273, label %if.else.274 + br i1 %icmp, label %if.then.480, label %if.else.481 -if.then.273: ; preds = %entry - br label %if.merge.275 +if.then.480: ; preds = %entry + br label %if.merge.482 -if.else.274: ; preds = %entry +if.else.481: ; 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.276, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.275, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.275 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.734, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.733, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.482 -if.merge.275: ; preds = %if.else.274, %if.then.273 - %bp = phi { ptr, i64 } [ { ptr @str.274, i64 4 }, %if.then.273 ], [ %callN, %if.else.274 ] +if.merge.482: ; preds = %if.else.481, %if.then.480 + %bp = phi { ptr, i64 } [ { ptr @str.732, i64 4 }, %if.then.480 ], [ %callN, %if.else.481 ] ret { ptr, i64 } %bp } @@ -3724,19 +7660,115 @@ entry: 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.276, label %if.else.277 + br i1 %icmp, label %if.then.483, label %if.else.484 -if.then.276: ; preds = %entry - br label %if.merge.278 +if.then.483: ; preds = %entry + br label %if.merge.485 -if.else.277: ; preds = %entry +if.else.484: ; 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.279, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.278, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.278 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.737, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.736, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.485 -if.merge.278: ; preds = %if.else.277, %if.then.276 - %bp = phi { ptr, i64 } [ { ptr @str.277, i64 4 }, %if.then.276 ], [ %callN, %if.else.277 ] +if.merge.485: ; preds = %if.else.484, %if.then.483 + %bp = phi { ptr, i64 } [ { ptr @str.735, i64 4 }, %if.then.483 ], [ %callN, %if.else.484 ] 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.492, label %if.merge.493 + +if.then.492: ; preds = %entry + ret { ptr, i64 } { ptr @str.738, i64 4 } + +if.merge.493: ; 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 40, 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.494, label %if.merge.495 + +if.then.494: ; preds = %entry + ret { ptr, i64 } { ptr @str.739, i64 4 } + +if.merge.495: ; 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_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.496, label %if.merge.497 + +if.then.496: ; preds = %entry + ret { ptr, i64 } { ptr @str.740, i64 4 } + +if.merge.497: ; 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 46, 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.498, label %if.merge.499 + +if.then.498: ; preds = %entry + ret { ptr, i64 } { ptr @str.741, i64 4 } + +if.merge.499: ; 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 89, 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/0413-protocols-parameterized-protocol-value.ir b/examples/expected/0413-protocols-parameterized-protocol-value.ir index 2f0bdb0..73f2f81 100644 --- a/examples/expected/0413-protocols-parameterized-protocol-value.ir +++ b/examples/expected/0413-protocols-parameterized-protocol-value.ir @@ -3,336 +3,696 @@ @__VL__s64__IntCell__vtable = internal constant { ptr } { ptr @__thunk_IntCell_VL__s64_get } @__VL__string__StrCell__vtable = internal constant { ptr } { ptr @__thunk_StrCell_VL__string_get } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [89 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [179 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [8 x i8] c"IntCell\00" -@tn.str.64 = private constant [8 x i8] c"StrCell\00" -@tn.str.65 = private constant [9 x i8] c"*IntCell\00" -@tn.str.66 = private constant [9 x i8] c"*StrCell\00" -@tn.str.67 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.68 = private constant [5 x i8] c"*s64\00" -@tn.str.69 = private constant [7 x i8] c"**void\00" -@tn.str.70 = private constant [8 x i8] c"VL__s64\00" -@tn.str.71 = private constant [18 x i8] c"__VL__s64__Vtable\00" -@tn.str.72 = private constant [9 x i8] c"*VL__s64\00" -@tn.str.73 = private constant [10 x i8] c"**IntCell\00" -@tn.str.74 = private constant [19 x i8] c"*__VL__s64__Vtable\00" -@tn.str.75 = private constant [8 x i8] c"*string\00" -@tn.str.76 = private constant [6 x i8] c"[]Any\00" -@tn.str.77 = private constant [5 x i8] c"*Any\00" -@tn.str.78 = private constant [7 x i8] c"[1]Any\00" -@tn.str.79 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.80 = private constant [7 x i8] c"*[]Any\00" -@tn.str.81 = private constant [4 x i8] c"*u8\00" -@tn.str.82 = private constant [6 x i8] c"*bool\00" -@tn.str.83 = private constant [11 x i8] c"VL__string\00" -@tn.str.84 = private constant [21 x i8] c"__VL__string__Vtable\00" -@tn.str.85 = private constant [12 x i8] c"*VL__string\00" -@tn.str.86 = private constant [10 x i8] c"**StrCell\00" -@tn.str.87 = private constant [22 x i8] c"*__VL__string__Vtable\00" -@tn.str.88 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.89 = private constant [5 x i8] c"*f64\00" -@tn.str.90 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.91 = private constant [11 x i8] c"*Allocator\00" -@tn.str.92 = private constant [9 x i8] c"*Context\00" -@tn.str.93 = private constant [10 x i8] c"*[]string\00" -@tn.str.94 = private constant [6 x i8] c"**GPA\00" -@tn.str.95 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.96 = private constant [8 x i8] c"**Arena\00" -@tn.str.97 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.98 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.99 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.100 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.101 = private constant [6 x i8] c"**s64\00" -@tn.str.102 = private constant [8 x i8] c"***void\00" -@tn.str.103 = private constant [10 x i8] c"**VL__s64\00" -@tn.str.104 = private constant [11 x i8] c"***IntCell\00" -@tn.str.105 = private constant [20 x i8] c"**__VL__s64__Vtable\00" -@tn.str.106 = private constant [9 x i8] c"**string\00" -@tn.str.107 = private constant [6 x i8] c"**Any\00" -@tn.str.108 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.109 = private constant [8 x i8] c"**[]Any\00" -@tn.str.110 = private constant [5 x i8] c"**u8\00" -@tn.str.111 = private constant [7 x i8] c"**bool\00" -@tn.str.112 = private constant [13 x i8] c"**VL__string\00" -@tn.str.113 = private constant [11 x i8] c"***StrCell\00" -@tn.str.114 = private constant [23 x i8] c"**__VL__string__Vtable\00" -@__sx_type_names = private constant [89 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 7 }, { ptr, i64 } { ptr @tn.str.64, i64 7 }, { ptr, i64 } { ptr @tn.str.65, i64 8 }, { ptr, i64 } { ptr @tn.str.66, i64 8 }, { ptr, i64 } { ptr @tn.str.67, i64 12 }, { ptr, i64 } { ptr @tn.str.68, i64 4 }, { ptr, i64 } { ptr @tn.str.69, i64 6 }, { ptr, i64 } { ptr @tn.str.70, i64 7 }, { ptr, i64 } { ptr @tn.str.71, i64 17 }, { ptr, i64 } { ptr @tn.str.72, i64 8 }, { ptr, i64 } { ptr @tn.str.73, i64 9 }, { ptr, i64 } { ptr @tn.str.74, i64 18 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 5 }, { ptr, i64 } { ptr @tn.str.77, i64 4 }, { ptr, i64 } { ptr @tn.str.78, i64 6 }, { ptr, i64 } { ptr @tn.str.79, i64 7 }, { ptr, i64 } { ptr @tn.str.80, i64 6 }, { ptr, i64 } { ptr @tn.str.81, i64 3 }, { ptr, i64 } { ptr @tn.str.82, i64 5 }, { ptr, i64 } { ptr @tn.str.83, i64 10 }, { ptr, i64 } { ptr @tn.str.84, i64 20 }, { ptr, i64 } { ptr @tn.str.85, i64 11 }, { ptr, i64 } { ptr @tn.str.86, i64 9 }, { ptr, i64 } { ptr @tn.str.87, i64 21 }, { ptr, i64 } { ptr @tn.str.88, i64 7 }, { ptr, i64 } { ptr @tn.str.89, i64 4 }, { ptr, i64 } { ptr @tn.str.90, i64 16 }, { ptr, i64 } { ptr @tn.str.91, i64 10 }, { ptr, i64 } { ptr @tn.str.92, i64 8 }, { ptr, i64 } { ptr @tn.str.93, i64 9 }, { ptr, i64 } { ptr @tn.str.94, i64 5 }, { ptr, i64 } { ptr @tn.str.95, i64 12 }, { ptr, i64 } { ptr @tn.str.96, i64 7 }, { ptr, i64 } { ptr @tn.str.97, i64 6 }, { ptr, i64 } { ptr @tn.str.98, i64 10 }, { ptr, i64 } { ptr @tn.str.99, i64 19 }, { ptr, i64 } { ptr @tn.str.100, i64 13 }, { ptr, i64 } { ptr @tn.str.101, i64 5 }, { ptr, i64 } { ptr @tn.str.102, i64 7 }, { ptr, i64 } { ptr @tn.str.103, i64 9 }, { ptr, i64 } { ptr @tn.str.104, i64 10 }, { ptr, i64 } { ptr @tn.str.105, i64 19 }, { ptr, i64 } { ptr @tn.str.106, i64 8 }, { ptr, i64 } { ptr @tn.str.107, i64 5 }, { ptr, i64 } { ptr @tn.str.108, i64 8 }, { ptr, i64 } { ptr @tn.str.109, i64 7 }, { ptr, i64 } { ptr @tn.str.110, i64 4 }, { ptr, i64 } { ptr @tn.str.111, i64 6 }, { ptr, i64 } { ptr @tn.str.112, i64 12 }, { ptr, i64 } { ptr @tn.str.113, i64 10 }, { ptr, i64 } { ptr @tn.str.114, i64 22 }] -@str.115 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.116 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.117 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.118 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.119 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.123 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.124 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.125 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.126 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.127 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.134 = private unnamed_addr constant [3 x i8] c"hi\00", align 1 -@str.135 = private unnamed_addr constant [10 x i8] c"a.get={}\0A\00", align 1 -@str.136 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.137 = private unnamed_addr constant [10 x i8] c"a.get={}\0A\00", align 1 -@str.138 = private unnamed_addr constant [10 x i8] c"b.get={}\0A\00", align 1 -@str.139 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.140 = private unnamed_addr constant [10 x i8] c"b.get={}\0A\00", align 1 -@str.141 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.142 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.144 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [8 x i8] c"IntCell\00" +@tn.str.237 = private constant [8 x i8] c"StrCell\00" +@tn.str.238 = private constant [9 x i8] c"*IntCell\00" +@tn.str.239 = private constant [9 x i8] c"*StrCell\00" +@tn.str.240 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.241 = private constant [7 x i8] c"**void\00" +@tn.str.242 = private constant [8 x i8] c"VL__s64\00" +@tn.str.243 = private constant [18 x i8] c"__VL__s64__Vtable\00" +@tn.str.244 = private constant [9 x i8] c"*VL__s64\00" +@tn.str.245 = private constant [10 x i8] c"**IntCell\00" +@tn.str.246 = private constant [19 x i8] c"*__VL__s64__Vtable\00" +@tn.str.247 = private constant [8 x i8] c"*string\00" +@tn.str.248 = private constant [6 x i8] c"[]Any\00" +@tn.str.249 = private constant [5 x i8] c"*Any\00" +@tn.str.250 = private constant [7 x i8] c"[1]Any\00" +@tn.str.251 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.252 = private constant [7 x i8] c"*[]Any\00" +@tn.str.253 = private constant [6 x i8] c"*bool\00" +@tn.str.254 = private constant [11 x i8] c"VL__string\00" +@tn.str.255 = private constant [21 x i8] c"__VL__string__Vtable\00" +@tn.str.256 = private constant [12 x i8] c"*VL__string\00" +@tn.str.257 = private constant [10 x i8] c"**StrCell\00" +@tn.str.258 = private constant [22 x i8] c"*__VL__string__Vtable\00" +@tn.str.259 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.260 = private constant [5 x i8] c"*f64\00" +@tn.str.261 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.262 = private constant [11 x i8] c"*Allocator\00" +@tn.str.263 = private constant [9 x i8] c"*Context\00" +@tn.str.264 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.265 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.266 = private constant [8 x i8] c"*Member\00" +@tn.str.267 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.268 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.269 = private constant [9 x i8] c"*Command\00" +@tn.str.270 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.271 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.272 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.273 = private constant [7 x i8] c"*Value\00" +@tn.str.274 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.275 = private constant [14 x i8] c"*Architecture\00" +@tn.str.276 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.277 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.278 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.279 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.280 = private constant [10 x i8] c"*[]string\00" +@tn.str.281 = private constant [6 x i8] c"*[]u8\00" +@tn.str.282 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.283 = private constant [11 x i8] c"*[]Command\00" +@tn.str.284 = private constant [6 x i8] c"**GPA\00" +@tn.str.285 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.286 = private constant [8 x i8] c"**Arena\00" +@tn.str.287 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.288 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.289 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.290 = private constant [7 x i8] c"**File\00" +@tn.str.291 = private constant [5 x i8] c"**u8\00" +@tn.str.292 = private constant [6 x i8] c"**s32\00" +@tn.str.293 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.294 = private constant [6 x i8] c"**u32\00" +@tn.str.295 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.296 = private constant [8 x i8] c"**Array\00" +@tn.str.297 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.298 = private constant [9 x i8] c"**Object\00" +@tn.str.299 = private constant [7 x i8] c"**Sink\00" +@tn.str.300 = private constant [9 x i8] c"**Parser\00" +@tn.str.301 = private constant [6 x i8] c"**s64\00" +@tn.str.302 = private constant [9 x i8] c"**Parsed\00" +@tn.str.303 = private constant [7 x i8] c"**Diag\00" +@tn.str.304 = private constant [9 x i8] c"**Sha256\00" +@tn.str.305 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.306 = private constant [8 x i8] c"***void\00" +@tn.str.307 = private constant [10 x i8] c"**VL__s64\00" +@tn.str.308 = private constant [11 x i8] c"***IntCell\00" +@tn.str.309 = private constant [20 x i8] c"**__VL__s64__Vtable\00" +@tn.str.310 = private constant [9 x i8] c"**string\00" +@tn.str.311 = private constant [6 x i8] c"**Any\00" +@tn.str.312 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.313 = private constant [8 x i8] c"**[]Any\00" +@tn.str.314 = private constant [7 x i8] c"**bool\00" +@tn.str.315 = private constant [13 x i8] c"**VL__string\00" +@tn.str.316 = private constant [11 x i8] c"***StrCell\00" +@tn.str.317 = private constant [23 x i8] c"**__VL__string__Vtable\00" +@tn.str.318 = private constant [7 x i8] c"*?File\00" +@tn.str.319 = private constant [9 x i8] c"*?string\00" +@tn.str.320 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.321 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [179 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 7 }, { ptr, i64 } { ptr @tn.str.237, i64 7 }, { ptr, i64 } { ptr @tn.str.238, i64 8 }, { ptr, i64 } { ptr @tn.str.239, i64 8 }, { ptr, i64 } { ptr @tn.str.240, i64 12 }, { ptr, i64 } { ptr @tn.str.241, i64 6 }, { ptr, i64 } { ptr @tn.str.242, i64 7 }, { ptr, i64 } { ptr @tn.str.243, i64 17 }, { ptr, i64 } { ptr @tn.str.244, i64 8 }, { ptr, i64 } { ptr @tn.str.245, i64 9 }, { ptr, i64 } { ptr @tn.str.246, i64 18 }, { ptr, i64 } { ptr @tn.str.247, i64 7 }, { ptr, i64 } { ptr @tn.str.248, i64 5 }, { ptr, i64 } { ptr @tn.str.249, i64 4 }, { ptr, i64 } { ptr @tn.str.250, i64 6 }, { ptr, i64 } { ptr @tn.str.251, i64 7 }, { ptr, i64 } { ptr @tn.str.252, i64 6 }, { ptr, i64 } { ptr @tn.str.253, i64 5 }, { ptr, i64 } { ptr @tn.str.254, i64 10 }, { ptr, i64 } { ptr @tn.str.255, i64 20 }, { ptr, i64 } { ptr @tn.str.256, i64 11 }, { ptr, i64 } { ptr @tn.str.257, i64 9 }, { ptr, i64 } { ptr @tn.str.258, i64 21 }, { ptr, i64 } { ptr @tn.str.259, i64 7 }, { ptr, i64 } { ptr @tn.str.260, i64 4 }, { ptr, i64 } { ptr @tn.str.261, i64 16 }, { ptr, i64 } { ptr @tn.str.262, i64 10 }, { ptr, i64 } { ptr @tn.str.263, i64 8 }, { ptr, i64 } { ptr @tn.str.264, i64 11 }, { ptr, i64 } { ptr @tn.str.265, i64 14 }, { ptr, i64 } { ptr @tn.str.266, i64 7 }, { ptr, i64 } { ptr @tn.str.267, i64 13 }, { ptr, i64 } { ptr @tn.str.268, i64 9 }, { ptr, i64 } { ptr @tn.str.269, i64 8 }, { ptr, i64 } { ptr @tn.str.270, i64 10 }, { ptr, i64 } { ptr @tn.str.271, i64 9 }, { ptr, i64 } { ptr @tn.str.272, i64 9 }, { ptr, i64 } { ptr @tn.str.273, i64 6 }, { ptr, i64 } { ptr @tn.str.274, i64 16 }, { ptr, i64 } { ptr @tn.str.275, i64 13 }, { ptr, i64 } { ptr @tn.str.276, i64 14 }, { ptr, i64 } { ptr @tn.str.277, i64 7 }, { ptr, i64 } { ptr @tn.str.278, i64 7 }, { ptr, i64 } { ptr @tn.str.279, i64 8 }, { ptr, i64 } { ptr @tn.str.280, i64 9 }, { ptr, i64 } { ptr @tn.str.281, i64 5 }, { ptr, i64 } { ptr @tn.str.282, i64 11 }, { ptr, i64 } { ptr @tn.str.283, i64 10 }, { ptr, i64 } { ptr @tn.str.284, i64 5 }, { ptr, i64 } { ptr @tn.str.285, i64 12 }, { ptr, i64 } { ptr @tn.str.286, i64 7 }, { ptr, i64 } { ptr @tn.str.287, i64 6 }, { ptr, i64 } { ptr @tn.str.288, i64 10 }, { ptr, i64 } { ptr @tn.str.289, i64 19 }, { ptr, i64 } { ptr @tn.str.290, i64 6 }, { ptr, i64 } { ptr @tn.str.291, i64 4 }, { ptr, i64 } { ptr @tn.str.292, i64 5 }, { ptr, i64 } { ptr @tn.str.293, i64 10 }, { ptr, i64 } { ptr @tn.str.294, i64 5 }, { ptr, i64 } { ptr @tn.str.295, i64 9 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 10 }, { ptr, i64 } { ptr @tn.str.298, i64 8 }, { ptr, i64 } { ptr @tn.str.299, i64 6 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 5 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }, { ptr, i64 } { ptr @tn.str.303, i64 6 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }, { ptr, i64 } { ptr @tn.str.305, i64 13 }, { ptr, i64 } { ptr @tn.str.306, i64 7 }, { ptr, i64 } { ptr @tn.str.307, i64 9 }, { ptr, i64 } { ptr @tn.str.308, i64 10 }, { ptr, i64 } { ptr @tn.str.309, i64 19 }, { ptr, i64 } { ptr @tn.str.310, i64 8 }, { ptr, i64 } { ptr @tn.str.311, i64 5 }, { ptr, i64 } { ptr @tn.str.312, i64 8 }, { ptr, i64 } { ptr @tn.str.313, i64 7 }, { ptr, i64 } { ptr @tn.str.314, i64 6 }, { ptr, i64 } { ptr @tn.str.315, i64 12 }, { ptr, i64 } { ptr @tn.str.316, i64 10 }, { ptr, i64 } { ptr @tn.str.317, i64 22 }, { ptr, i64 } { ptr @tn.str.318, i64 6 }, { ptr, i64 } { ptr @tn.str.319, i64 8 }, { ptr, i64 } { ptr @tn.str.320, i64 15 }, { ptr, i64 } { ptr @tn.str.321, i64 8 }] +@str.322 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.323 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.324 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.325 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.326 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.327 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.328 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.329 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.330 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.331 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.332 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.333 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.334 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.335 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.336 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.337 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.338 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.339 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.340 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.341 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.342 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.343 = private unnamed_addr constant [3 x i8] c"hi\00", align 1 +@str.344 = private unnamed_addr constant [10 x i8] c"a.get={}\0A\00", align 1 +@str.345 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.346 = private unnamed_addr constant [10 x i8] c"a.get={}\0A\00", align 1 +@str.347 = private unnamed_addr constant [10 x i8] c"b.get={}\0A\00", align 1 +@str.348 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.349 = private unnamed_addr constant [10 x i8] c"b.get={}\0A\00", align 1 +@str.350 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.353 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.145 = private constant [5 x i8] c"line\00" -@fld.str.146 = private constant [4 x i8] c"col\00" -@fld.str.147 = 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.145, i64 4 }, { ptr, i64 } { ptr @fld.str.146, i64 3 }, { ptr, i64 } { ptr @fld.str.147, i64 4 }] -@str.148 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.149 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.152 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.153 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.154 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.155 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.156 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.157 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.158 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.159 = private constant [12 x i8] c"alloc_count\00" -@field_names.160 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.159, i64 11 }] -@str.161 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.162 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.163 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.164 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.165 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.166 = private constant [5 x i8] c"next\00" -@fld.str.167 = private constant [4 x i8] c"cap\00" -@field_names.168 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.166, i64 4 }, { ptr, i64 } { ptr @fld.str.167, i64 3 }] -@str.169 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.170 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.171 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.172 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.173 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.174 = private constant [4 x i8] c"ctx\00" -@fld.str.175 = private constant [6 x i8] c"alloc\00" -@fld.str.176 = private constant [8 x i8] c"dealloc\00" -@field_names.177 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.174, i64 3 }, { ptr, i64 } { ptr @fld.str.175, i64 5 }, { ptr, i64 } { ptr @fld.str.176, i64 7 }] -@str.178 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.179 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.180 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.181 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.182 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.183 = private constant [6 x i8] c"first\00" -@fld.str.184 = private constant [10 x i8] c"end_index\00" -@fld.str.185 = private constant [7 x i8] c"parent\00" -@field_names.186 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.183, i64 5 }, { ptr, i64 } { ptr @fld.str.184, i64 9 }, { ptr, i64 } { ptr @fld.str.185, i64 6 }] -@str.187 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.188 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.189 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.190 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.191 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.192 = private constant [4 x i8] c"buf\00" -@fld.str.193 = private constant [4 x i8] c"len\00" -@fld.str.194 = private constant [4 x i8] c"pos\00" -@field_names.195 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.192, i64 3 }, { ptr, i64 } { ptr @fld.str.193, i64 3 }, { ptr, i64 } { ptr @fld.str.194, i64 3 }] -@str.196 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.197 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.198 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.199 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.200 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.201 = private constant [7 x i8] c"parent\00" -@fld.str.202 = private constant [12 x i8] c"alloc_count\00" -@fld.str.203 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.204 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.205 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.201, i64 6 }, { ptr, i64 } { ptr @fld.str.202, i64 11 }, { ptr, i64 } { ptr @fld.str.203, i64 13 }, { ptr, i64 } { ptr @fld.str.204, i64 17 }] -@str.206 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.207 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.209 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.210 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.211 = private constant [10 x i8] c"allocator\00" -@fld.str.212 = private constant [5 x i8] c"data\00" -@field_names.213 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.211, i64 9 }, { ptr, i64 } { ptr @fld.str.212, i64 4 }] -@str.214 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.215 = private unnamed_addr constant [8 x i8] c"IntCell\00", align 1 -@str.216 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.217 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.218 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.219 = private constant [2 x i8] c"v\00" -@field_names.220 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.219, i64 1 }] -@str.221 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.222 = private unnamed_addr constant [8 x i8] c"StrCell\00", align 1 -@str.223 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.224 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.225 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.226 = private constant [2 x i8] c"s\00" -@field_names.227 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.226, i64 1 }] -@str.228 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.229 = private unnamed_addr constant [8 x i8] c"VL__s64\00", align 1 -@str.230 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.231 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.232 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.233 = private constant [4 x i8] c"ctx\00" -@fld.str.234 = private constant [9 x i8] c"__vtable\00" -@field_names.235 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.233, i64 3 }, { ptr, i64 } { ptr @fld.str.234, i64 8 }] -@str.236 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.237 = private unnamed_addr constant [18 x i8] c"__VL__s64__Vtable\00", align 1 -@str.238 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.239 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.240 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.241 = private constant [4 x i8] c"get\00" -@field_names.242 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.241, i64 3 }] -@str.243 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.244 = private unnamed_addr constant [11 x i8] c"VL__string\00", align 1 -@str.245 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.246 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.247 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.248 = private constant [4 x i8] c"ctx\00" -@fld.str.249 = private constant [9 x i8] c"__vtable\00" -@field_names.250 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.248, i64 3 }, { ptr, i64 } { ptr @fld.str.249, i64 8 }] -@str.251 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.252 = private unnamed_addr constant [21 x i8] c"__VL__string__Vtable\00", align 1 -@str.253 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.254 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.255 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.256 = private constant [4 x i8] c"get\00" -@field_names.257 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.256, i64 3 }] -@str.258 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.259 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.260 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.261 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.262 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.263 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.264 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.265 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.266 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.267 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.268 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.269 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.270 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.271 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.272 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.273 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.274 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.275 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.276 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.277 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.278 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.279 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.280 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.281 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.282 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.283 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.284 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.285 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.286 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.287 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.288 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.289 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.290 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.291 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.292 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.293 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.294 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.295 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.296 = private unnamed_addr constant [9 x i8] c"*IntCell\00", align 1 -@str.297 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.298 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.299 = private unnamed_addr constant [9 x i8] c"*StrCell\00", align 1 -@str.300 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.301 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.302 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.303 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.304 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.305 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.306 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.307 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.308 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.309 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.310 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.311 = private unnamed_addr constant [9 x i8] c"*VL__s64\00", align 1 -@str.312 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.313 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.314 = private unnamed_addr constant [10 x i8] c"**IntCell\00", align 1 -@str.315 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.316 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.317 = private unnamed_addr constant [19 x i8] c"*__VL__s64__Vtable\00", align 1 -@str.318 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.319 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.320 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.321 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.322 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.323 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.324 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.325 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.326 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.327 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.328 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.329 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.330 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.331 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.332 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.333 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.334 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.335 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.336 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.337 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.338 = private unnamed_addr constant [12 x i8] c"*VL__string\00", align 1 -@str.339 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.340 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.341 = private unnamed_addr constant [10 x i8] c"**StrCell\00", align 1 -@str.342 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.343 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.344 = private unnamed_addr constant [22 x i8] c"*__VL__string__Vtable\00", align 1 -@str.345 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.354 = private constant [5 x i8] c"line\00" +@fld.str.355 = private constant [4 x i8] c"col\00" +@fld.str.356 = 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.354, i64 4 }, { ptr, i64 } { ptr @fld.str.355, i64 3 }, { ptr, i64 } { ptr @fld.str.356, i64 4 }] +@str.357 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.358 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.360 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.361 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.362 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.363 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.364 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.365 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.366 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.367 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.368 = private constant [12 x i8] c"alloc_count\00" +@field_names.369 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.368, i64 11 }] +@str.370 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.371 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.372 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.373 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.374 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.375 = private constant [5 x i8] c"next\00" +@fld.str.376 = private constant [4 x i8] c"cap\00" +@field_names.377 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.375, i64 4 }, { ptr, i64 } { ptr @fld.str.376, i64 3 }] +@str.378 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.379 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.380 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.381 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.382 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.383 = private constant [4 x i8] c"ctx\00" +@fld.str.384 = private constant [6 x i8] c"alloc\00" +@fld.str.385 = private constant [8 x i8] c"dealloc\00" +@field_names.386 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.383, i64 3 }, { ptr, i64 } { ptr @fld.str.384, i64 5 }, { ptr, i64 } { ptr @fld.str.385, i64 7 }] +@str.387 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.388 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.389 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.390 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.391 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.392 = private constant [6 x i8] c"first\00" +@fld.str.393 = private constant [10 x i8] c"end_index\00" +@fld.str.394 = private constant [7 x i8] c"parent\00" +@field_names.395 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.392, i64 5 }, { ptr, i64 } { ptr @fld.str.393, i64 9 }, { ptr, i64 } { ptr @fld.str.394, i64 6 }] +@str.396 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.397 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.398 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.399 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.400 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.401 = private constant [4 x i8] c"buf\00" +@fld.str.402 = private constant [4 x i8] c"len\00" +@fld.str.403 = private constant [4 x i8] c"pos\00" +@field_names.404 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.401, i64 3 }, { ptr, i64 } { ptr @fld.str.402, i64 3 }, { ptr, i64 } { ptr @fld.str.403, i64 3 }] +@str.405 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.406 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.407 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.408 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.409 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.410 = private constant [7 x i8] c"parent\00" +@fld.str.411 = private constant [12 x i8] c"alloc_count\00" +@fld.str.412 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.413 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.414 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.410, i64 6 }, { ptr, i64 } { ptr @fld.str.411, i64 11 }, { ptr, i64 } { ptr @fld.str.412, i64 13 }, { ptr, i64 } { ptr @fld.str.413, i64 17 }] +@str.415 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.416 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.417 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.419 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.420 = private constant [10 x i8] c"allocator\00" +@fld.str.421 = private constant [5 x i8] c"data\00" +@field_names.422 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.420, i64 9 }, { ptr, i64 } { ptr @fld.str.421, i64 4 }] +@str.423 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.424 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.425 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.426 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.427 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.428 = private constant [3 x i8] c"fd\00" +@field_names.429 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.428, i64 2 }] +@str.430 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.431 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.432 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.433 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.434 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.435 = private constant [5 x i8] c"file\00" +@fld.str.436 = private constant [5 x i8] c"line\00" +@fld.str.437 = private constant [4 x i8] c"col\00" +@fld.str.438 = private constant [5 x i8] c"func\00" +@fld.str.439 = private constant [10 x i8] c"line_text\00" +@field_names.440 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.435, i64 4 }, { ptr, i64 } { ptr @fld.str.436, i64 4 }, { ptr, i64 } { ptr @fld.str.437, i64 3 }, { ptr, i64 } { ptr @fld.str.438, i64 4 }, { ptr, i64 } { ptr @fld.str.439, i64 9 }] +@str.441 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.442 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.443 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.444 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.445 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.446 = private constant [10 x i8] c"exit_code\00" +@fld.str.447 = private constant [7 x i8] c"stdout\00" +@field_names.448 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.446, i64 9 }, { ptr, i64 } { ptr @fld.str.447, i64 6 }] +@str.449 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.450 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.451 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.452 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.453 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.454 = private constant [8 x i8] c"sin_len\00" +@fld.str.455 = private constant [11 x i8] c"sin_family\00" +@fld.str.456 = private constant [9 x i8] c"sin_port\00" +@fld.str.457 = private constant [9 x i8] c"sin_addr\00" +@fld.str.458 = private constant [9 x i8] c"sin_zero\00" +@field_names.459 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.454, i64 7 }, { ptr, i64 } { ptr @fld.str.455, i64 10 }, { ptr, i64 } { ptr @fld.str.456, i64 8 }, { ptr, i64 } { ptr @fld.str.457, i64 8 }, { ptr, i64 } { ptr @fld.str.458, i64 8 }] +@str.460 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.461 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.462 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.463 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.464 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.465 = private constant [6 x i8] c"items\00" +@fld.str.466 = private constant [4 x i8] c"len\00" +@fld.str.467 = private constant [4 x i8] c"cap\00" +@field_names.468 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.465, i64 5 }, { ptr, i64 } { ptr @fld.str.466, i64 3 }, { ptr, i64 } { ptr @fld.str.467, i64 3 }] +@str.469 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.470 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.471 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.472 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.473 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.474 = private constant [6 x i8] c"items\00" +@fld.str.475 = private constant [4 x i8] c"len\00" +@fld.str.476 = private constant [4 x i8] c"cap\00" +@field_names.477 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.474, i64 5 }, { ptr, i64 } { ptr @fld.str.475, i64 3 }, { ptr, i64 } { ptr @fld.str.476, i64 3 }] +@str.478 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.479 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.480 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.481 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.482 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.483 = private constant [4 x i8] c"key\00" +@fld.str.484 = private constant [4 x i8] c"val\00" +@field_names.485 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.483, i64 3 }, { ptr, i64 } { ptr @fld.str.484, i64 3 }] +@str.486 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.487 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.488 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.489 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.490 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.491 = private constant [4 x i8] c"dst\00" +@fld.str.492 = private constant [4 x i8] c"pos\00" +@fld.str.493 = private constant [5 x i8] c"file\00" +@field_names.494 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.491, i64 3 }, { ptr, i64 } { ptr @fld.str.492, i64 3 }, { ptr, i64 } { ptr @fld.str.493, i64 4 }] +@str.495 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.496 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.497 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.498 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.499 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.500 = private constant [4 x i8] c"src\00" +@fld.str.501 = private constant [4 x i8] c"pos\00" +@fld.str.502 = private constant [6 x i8] c"alloc\00" +@field_names.503 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.500, i64 3 }, { ptr, i64 } { ptr @fld.str.501, i64 3 }, { ptr, i64 } { ptr @fld.str.502, i64 5 }] +@str.504 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.505 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.506 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.507 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.508 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.509 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.510 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.511 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.512 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.513 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.514 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.515 = private constant [5 x i8] c"name\00" +@fld.str.516 = private constant [12 x i8] c"takes_value\00" +@fld.str.517 = private constant [9 x i8] c"required\00" +@field_names.518 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.515, i64 4 }, { ptr, i64 } { ptr @fld.str.516, i64 11 }, { ptr, i64 } { ptr @fld.str.517, i64 8 }] +@str.519 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.520 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.521 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.522 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.523 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.524 = private constant [6 x i8] c"group\00" +@fld.str.525 = private constant [8 x i8] c"command\00" +@fld.str.526 = private constant [6 x i8] c"flags\00" +@field_names.527 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.524, i64 5 }, { ptr, i64 } { ptr @fld.str.525, i64 7 }, { ptr, i64 } { ptr @fld.str.526, i64 5 }] +@str.528 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.529 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.530 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.531 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.532 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.533 = private constant [4 x i8] c"set\00" +@fld.str.534 = private constant [6 x i8] c"value\00" +@field_names.535 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.533, i64 3 }, { ptr, i64 } { ptr @fld.str.534, i64 5 }] +@str.536 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.537 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.538 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.539 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.540 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.541 = private constant [6 x i8] c"index\00" +@fld.str.542 = private constant [6 x i8] c"token\00" +@field_names.543 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.541, i64 5 }, { ptr, i64 } { ptr @fld.str.542, i64 5 }] +@str.544 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.545 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.546 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.547 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.548 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.549 = private constant [6 x i8] c"group\00" +@fld.str.550 = private constant [8 x i8] c"command\00" +@fld.str.551 = private constant [10 x i8] c"cmd_index\00" +@fld.str.552 = private constant [5 x i8] c"json\00" +@fld.str.553 = private constant [5 x i8] c"rest\00" +@fld.str.554 = private constant [5 x i8] c"spec\00" +@fld.str.555 = private constant [7 x i8] c"values\00" +@field_names.556 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.549, i64 5 }, { ptr, i64 } { ptr @fld.str.550, i64 7 }, { ptr, i64 } { ptr @fld.str.551, i64 9 }, { ptr, i64 } { ptr @fld.str.552, i64 4 }, { ptr, i64 } { ptr @fld.str.553, i64 4 }, { ptr, i64 } { ptr @fld.str.554, i64 4 }, { ptr, i64 } { ptr @fld.str.555, i64 6 }] +@str.557 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.558 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.559 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.560 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.561 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.562 = private constant [2 x i8] c"h\00" +@fld.str.563 = private constant [4 x i8] c"buf\00" +@fld.str.564 = private constant [8 x i8] c"buf_len\00" +@fld.str.565 = private constant [10 x i8] c"total_len\00" +@field_names.566 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.562, i64 1 }, { ptr, i64 } { ptr @fld.str.563, i64 3 }, { ptr, i64 } { ptr @fld.str.564, i64 7 }, { ptr, i64 } { ptr @fld.str.565, i64 9 }] +@str.567 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.568 = private unnamed_addr constant [8 x i8] c"IntCell\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.570 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.571 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.572 = private constant [2 x i8] c"v\00" +@field_names.573 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.572, i64 1 }] +@str.574 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.575 = private unnamed_addr constant [8 x i8] c"StrCell\00", align 1 +@str.576 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.577 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.578 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.579 = private constant [2 x i8] c"s\00" +@field_names.580 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.579, i64 1 }] +@str.581 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.582 = private unnamed_addr constant [8 x i8] c"VL__s64\00", align 1 +@str.583 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.584 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.585 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.586 = private constant [4 x i8] c"ctx\00" +@fld.str.587 = private constant [9 x i8] c"__vtable\00" +@field_names.588 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.586, i64 3 }, { ptr, i64 } { ptr @fld.str.587, i64 8 }] +@str.589 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.590 = private unnamed_addr constant [18 x i8] c"__VL__s64__Vtable\00", align 1 +@str.591 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.592 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.593 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.594 = private constant [4 x i8] c"get\00" +@field_names.595 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.594, i64 3 }] +@str.596 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.597 = private unnamed_addr constant [11 x i8] c"VL__string\00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.600 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.601 = private constant [4 x i8] c"ctx\00" +@fld.str.602 = private constant [9 x i8] c"__vtable\00" +@field_names.603 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.601, i64 3 }, { ptr, i64 } { ptr @fld.str.602, i64 8 }] +@str.604 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.605 = private unnamed_addr constant [21 x i8] c"__VL__string__Vtable\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.608 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.609 = private constant [4 x i8] c"get\00" +@field_names.610 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.609, i64 3 }] +@str.611 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.612 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.613 = private constant [5 x i8] c"read\00" +@fld.str.614 = private constant [6 x i8] c"write\00" +@fld.str.615 = private constant [7 x i8] c"append\00" +@fld.str.616 = private constant [11 x i8] c"read_write\00" +@field_names.617 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.613, i64 4 }, { ptr, i64 } { ptr @fld.str.614, i64 5 }, { ptr, i64 } { ptr @fld.str.615, i64 6 }, { ptr, i64 } { ptr @fld.str.616, i64 10 }] +@str.618 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.621 = private constant [4 x i8] c"set\00" +@fld.str.622 = private constant [8 x i8] c"current\00" +@fld.str.623 = private constant [4 x i8] c"end\00" +@field_names.624 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.621, i64 3 }, { ptr, i64 } { ptr @fld.str.622, i64 7 }, { ptr, i64 } { ptr @fld.str.623, i64 3 }] +@str.625 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.627 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.628 = private constant [6 x i8] c"null_\00" +@fld.str.629 = private constant [6 x i8] c"bool_\00" +@fld.str.630 = private constant [5 x i8] c"int_\00" +@fld.str.631 = private constant [4 x i8] c"str\00" +@fld.str.632 = private constant [6 x i8] c"array\00" +@fld.str.633 = private constant [7 x i8] c"object\00" +@field_names.634 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.628, i64 5 }, { ptr, i64 } { ptr @fld.str.629, i64 5 }, { ptr, i64 } { ptr @fld.str.630, i64 4 }, { ptr, i64 } { ptr @fld.str.631, i64 3 }, { ptr, i64 } { ptr @fld.str.632, i64 5 }, { ptr, i64 } { ptr @fld.str.633, i64 6 }] +@str.635 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.636 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.637 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.638 = private constant [6 x i8] c"macos\00" +@fld.str.639 = private constant [6 x i8] c"linux\00" +@fld.str.640 = private constant [8 x i8] c"windows\00" +@fld.str.641 = private constant [5 x i8] c"wasm\00" +@fld.str.642 = private constant [4 x i8] c"ios\00" +@fld.str.643 = private constant [8 x i8] c"android\00" +@fld.str.644 = private constant [8 x i8] c"unknown\00" +@field_names.645 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.638, i64 5 }, { ptr, i64 } { ptr @fld.str.639, i64 5 }, { ptr, i64 } { ptr @fld.str.640, i64 7 }, { ptr, i64 } { ptr @fld.str.641, i64 4 }, { ptr, i64 } { ptr @fld.str.642, i64 3 }, { ptr, i64 } { ptr @fld.str.643, i64 7 }, { ptr, i64 } { ptr @fld.str.644, i64 7 }] +@str.646 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.647 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.648 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.649 = private constant [8 x i8] c"aarch64\00" +@fld.str.650 = private constant [7 x i8] c"x86_64\00" +@fld.str.651 = private constant [7 x i8] c"wasm32\00" +@fld.str.652 = private constant [7 x i8] c"wasm64\00" +@fld.str.653 = private constant [8 x i8] c"unknown\00" +@field_names.654 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.649, i64 7 }, { ptr, i64 } { ptr @fld.str.650, i64 6 }, { ptr, i64 } { ptr @fld.str.651, i64 6 }, { ptr, i64 } { ptr @fld.str.652, i64 6 }, { ptr, i64 } { ptr @fld.str.653, i64 7 }] +@str.655 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.656 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.657 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.658 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.659 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.660 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.661 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.662 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.663 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.664 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.665 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.666 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.667 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.668 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.669 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.670 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.671 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.672 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.673 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.674 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.675 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.676 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.677 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.678 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.679 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.680 = private unnamed_addr constant [3 x i8] c", \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 +@str.684 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.685 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.686 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.687 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.688 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.689 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.690 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.691 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.692 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.693 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.694 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.695 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.696 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.698 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.699 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.700 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.701 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.702 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.703 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.704 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.705 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.706 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.707 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.708 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.709 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.710 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.711 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.712 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.713 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.714 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.715 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.716 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.718 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.719 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.722 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.723 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.724 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.725 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.728 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.729 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.730 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.731 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.732 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.733 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.734 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.735 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.736 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.737 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.738 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.739 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.740 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.741 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.742 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.743 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.744 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.745 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.746 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.747 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.748 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.749 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.750 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.751 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.752 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.753 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.754 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.755 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.756 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.757 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.758 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.759 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.760 = private unnamed_addr constant [9 x i8] c"*IntCell\00", align 1 +@str.761 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.762 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.763 = private unnamed_addr constant [9 x i8] c"*StrCell\00", align 1 +@str.764 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.765 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.766 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.767 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.768 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.769 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.770 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.771 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.772 = private unnamed_addr constant [9 x i8] c"*VL__s64\00", align 1 +@str.773 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.774 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.775 = private unnamed_addr constant [10 x i8] c"**IntCell\00", align 1 +@str.776 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.777 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.778 = private unnamed_addr constant [19 x i8] c"*__VL__s64__Vtable\00", align 1 +@str.779 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.780 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.781 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.782 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.783 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.784 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.785 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.786 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.787 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.788 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.789 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.790 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.791 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.792 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.793 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.794 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.795 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.796 = private unnamed_addr constant [12 x i8] c"*VL__string\00", align 1 +@str.797 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.798 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.799 = private unnamed_addr constant [10 x i8] c"**StrCell\00", align 1 +@str.800 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.801 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.802 = private unnamed_addr constant [22 x i8] c"*__VL__string__Vtable\00", align 1 +@str.803 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.804 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.805 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.806 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.807 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -564,7 +924,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -691,7 +1051,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -860,38 +1220,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.246 + br label %while.hdr.414 -while.hdr.246: ; preds = %if.merge.251, %entry +while.hdr.414: ; preds = %if.merge.419, %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.247, label %while.exit.248 + br i1 %icmp, label %while.body.415, label %while.exit.416 -while.body.247: ; preds = %while.hdr.246 +while.body.415: ; preds = %while.hdr.414 %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.249, label %if.else.250 + br i1 %icmpN, label %if.then.417, label %if.else.418 -while.exit.248: ; preds = %while.hdr.246 +while.exit.416: ; preds = %while.hdr.414 ret void -if.then.249: ; preds = %while.body.247 +if.then.417: ; preds = %while.body.415 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.251 + br label %if.merge.419 -if.else.250: ; preds = %while.body.247 +if.else.418: ; preds = %while.body.415 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.251 + br label %if.merge.419 -if.merge.251: ; preds = %if.else.250, %if.then.249 - %bp = phi i64 [ %addN, %if.then.249 ], [ %addN, %if.else.250 ] +if.merge.419: ; preds = %if.else.418, %if.then.417 + %bp = phi i64 [ %addN, %if.then.417 ], [ %addN, %if.else.418 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -904,7 +1264,7 @@ if.merge.251: ; preds = %if.else.250, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.246 + br label %while.hdr.414 } ; Function Attrs: nounwind @@ -1022,12 +1382,12 @@ entry: 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.244, label %if.merge.245 + br i1 %icmp, label %if.then.412, label %if.merge.413 -if.then.244: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.412: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.245: ; preds = %entry +if.merge.413: ; 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 @@ -1058,14 +1418,14 @@ if.merge.245: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.252 + br label %while.hdr.420 -while.hdr.252: ; preds = %if.merge.256, %if.merge.245 +while.hdr.420: ; preds = %if.merge.424, %if.merge.413 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.253, label %while.exit.254 + br i1 %icmpN, label %while.body.421, label %while.exit.422 -while.body.253: ; preds = %while.hdr.252 +while.body.421: ; preds = %while.hdr.420 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1073,9 +1433,9 @@ while.body.253: ; preds = %while.hdr.252 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.255, label %if.merge.256 + br i1 %icmpN, label %if.then.423, label %if.merge.424 -while.exit.254: ; preds = %if.then.255, %while.hdr.252 +while.exit.422: ; preds = %if.then.423, %while.hdr.420 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1083,14 +1443,14 @@ while.exit.254: ; preds = %if.then.255, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.255: ; preds = %while.body.253 - br label %while.exit.254 +if.then.423: ; preds = %while.body.421 + br label %while.exit.422 -if.merge.256: ; preds = %while.body.253 +if.merge.424: ; preds = %while.body.421 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.252 + br label %while.hdr.420 } ; Function Attrs: nounwind @@ -1168,11 +1528,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1205,16 +1568,47 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 - i64 37, label %match.arm.43 - i64 38, label %match.arm.43 - i64 44, label %match.arm.43 + i64 39, label %match.arm.43 + i64 43, label %match.arm.43 i64 45, label %match.arm.43 - i64 57, label %match.arm.43 - i64 58, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 93, label %match.arm.43 + i64 94, label %match.arm.43 + i64 99, label %match.arm.43 + i64 100, label %match.arm.43 + i64 111, label %match.arm.43 + i64 112, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 52, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 107, label %match.arm.47 i64 36, label %match.arm.48 - i64 50, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 105, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1223,32 +1617,49 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 39, label %match.arm.49 i64 40, label %match.arm.49 - i64 41, label %match.arm.49 - i64 42, label %match.arm.49 - i64 43, label %match.arm.49 - i64 46, label %match.arm.49 + i64 44, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 i64 49, label %match.arm.49 - i64 51, label %match.arm.49 - i64 53, label %match.arm.49 - i64 54, label %match.arm.49 - i64 55, label %match.arm.49 + i64 50, label %match.arm.49 i64 56, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 i64 59, label %match.arm.49 - i64 60, label %match.arm.49 - i64 61, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 95, label %match.arm.49 + i64 96, label %match.arm.49 + i64 97, label %match.arm.49 + i64 98, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 103, label %match.arm.49 + i64 104, label %match.arm.49 + i64 106, label %match.arm.49 + i64 108, label %match.arm.49 + i64 109, label %match.arm.49 + i64 110, label %match.arm.49 + i64 113, label %match.arm.49 + i64 114, label %match.arm.49 + i64 115, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.214, %dispatch.merge.200, %dispatch.merge.186, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.536, %dispatch.merge.369, %dispatch.merge.337, %dispatch.merge.299, %dispatch.merge.282, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1257,7 +1668,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [89 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [179 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1285,7 +1696,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1299,83 +1710,145 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 - i64 37, label %dispatch.case.105 - i64 38, label %dispatch.case.106 - i64 44, label %dispatch.case.107 - i64 45, label %dispatch.case.108 - i64 57, label %dispatch.case.109 - i64 58, label %dispatch.case.110 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 93, label %dispatch.case.121 + i64 94, label %dispatch.case.122 + i64 99, label %dispatch.case.123 + i64 100, label %dispatch.case.124 + i64 111, label %dispatch.case.125 + i64 112, label %dispatch.case.126 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.283 [ + i64 37, label %dispatch.case.284 + i64 38, label %dispatch.case.285 + i64 54, label %dispatch.case.286 + i64 70, label %dispatch.case.287 + i64 71, label %dispatch.case.288 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.187 [ - i64 35, label %dispatch.case.188 - i64 52, label %dispatch.case.189 + switch i64 %ua.raw29, label %dispatch.default.300 [ + i64 35, label %dispatch.case.301 + i64 81, label %dispatch.case.302 + i64 87, label %dispatch.case.303 + i64 88, label %dispatch.case.304 + i64 92, label %dispatch.case.305 + i64 107, label %dispatch.case.306 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.201 [ - i64 36, label %dispatch.case.202 - i64 50, label %dispatch.case.203 + switch i64 %ua.raw33, label %dispatch.default.338 [ + i64 36, label %dispatch.case.339 + i64 60, label %dispatch.case.340 + i64 77, label %dispatch.case.341 + i64 85, label %dispatch.case.342 + i64 105, label %dispatch.case.343 ] -match.arm.49: ; 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 +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.215 [ - i64 18, label %dispatch.case.216 - i64 21, label %dispatch.case.217 - i64 23, label %dispatch.case.218 - i64 25, label %dispatch.case.219 - i64 28, label %dispatch.case.220 - i64 29, label %dispatch.case.221 - i64 31, label %dispatch.case.222 - i64 33, label %dispatch.case.223 - i64 39, label %dispatch.case.224 - i64 40, label %dispatch.case.225 - i64 41, label %dispatch.case.226 - i64 42, label %dispatch.case.227 - i64 43, label %dispatch.case.228 - i64 46, label %dispatch.case.229 - i64 47, label %dispatch.case.230 - i64 48, label %dispatch.case.231 - i64 49, label %dispatch.case.232 - i64 51, label %dispatch.case.233 - i64 53, label %dispatch.case.234 - i64 54, label %dispatch.case.235 - i64 55, label %dispatch.case.236 - i64 56, label %dispatch.case.237 - i64 59, label %dispatch.case.238 - i64 60, label %dispatch.case.239 - i64 61, label %dispatch.case.240 + switch i64 %ua.raw37, label %dispatch.default.370 [ + i64 18, label %dispatch.case.371 + i64 21, label %dispatch.case.372 + i64 23, label %dispatch.case.373 + i64 25, label %dispatch.case.374 + i64 28, label %dispatch.case.375 + i64 29, label %dispatch.case.376 + i64 31, label %dispatch.case.377 + i64 33, label %dispatch.case.378 + i64 40, label %dispatch.case.379 + i64 44, label %dispatch.case.380 + i64 47, label %dispatch.case.381 + i64 49, label %dispatch.case.382 + i64 50, label %dispatch.case.383 + i64 56, label %dispatch.case.384 + i64 57, label %dispatch.case.385 + i64 58, label %dispatch.case.386 + i64 59, label %dispatch.case.387 + i64 62, label %dispatch.case.388 + i64 67, label %dispatch.case.389 + i64 74, label %dispatch.case.390 + i64 83, label %dispatch.case.391 + i64 86, label %dispatch.case.392 + i64 90, label %dispatch.case.393 + i64 95, label %dispatch.case.394 + i64 96, label %dispatch.case.395 + i64 97, label %dispatch.case.396 + i64 98, label %dispatch.case.397 + i64 101, label %dispatch.case.398 + i64 102, label %dispatch.case.399 + i64 103, label %dispatch.case.400 + i64 104, label %dispatch.case.401 + i64 106, label %dispatch.case.402 + i64 108, label %dispatch.case.403 + i64 109, label %dispatch.case.404 + i64 110, label %dispatch.case.405 + i64 113, label %dispatch.case.406 + i64 114, label %dispatch.case.407 + i64 115, label %dispatch.case.408 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.537 [ + i64 41, label %dispatch.case.538 + i64 42, label %dispatch.case.539 + i64 46, label %dispatch.case.540 + i64 91, label %dispatch.case.541 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [89 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [179 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1385,15 +1858,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1401,16 +1874,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1420,368 +1893,725 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.126, %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.115, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.322, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { i64 }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__IntCell(ptr %0, { i64 } %ua.load85) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.106: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load { { ptr, i64 } }, ptr %ua.ptr88, align 8 - %callN = call { ptr, i64 } @struct_to_string__StrCell(ptr %0, { { ptr, i64 } } %ua.load89) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.107: ; preds = %match.arm.43 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load { ptr, ptr }, ptr %ua.ptr92, align 8 - %callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load93) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.108: ; preds = %match.arm.43 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load { ptr }, ptr %ua.ptr96, align 8 - %callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load97) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.109: ; preds = %match.arm.43 - %ua.raw99 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr100 = inttoptr i64 %ua.raw99 to ptr - %ua.load101 = load { ptr, ptr }, ptr %ua.ptr100, align 8 - %callN = call { ptr, i64 } @struct_to_string__VL__string(ptr %0, { ptr, ptr } %ua.load101) + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.110: ; preds = %match.arm.43 - %ua.raw103 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr104 = inttoptr i64 %ua.raw103 to ptr - %ua.load105 = load { ptr }, ptr %ua.ptr104, align 8 - %callN = call { ptr, i64 } @struct_to_string____VL__string__Vtable(ptr %0, { ptr } %ua.load105) + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.186: ; preds = %dispatch.case.189, %dispatch.case.188, %dispatch.default.187 +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { i64 }, ptr %ua.ptr161, align 8 + %callN = call { ptr, i64 } @struct_to_string__IntCell(ptr %0, { i64 } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.122: ; preds = %match.arm.43 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load { { ptr, i64 } }, ptr %ua.ptr165, align 8 + %callN = call { ptr, i64 } @struct_to_string__StrCell(ptr %0, { { ptr, i64 } } %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.123: ; preds = %match.arm.43 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load { ptr, ptr }, ptr %ua.ptr169, align 8 + %callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load170) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.124: ; preds = %match.arm.43 + %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr173 = inttoptr i64 %ua.raw172 to ptr + %ua.load174 = load { ptr }, ptr %ua.ptr173, align 8 + %callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load174) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.125: ; preds = %match.arm.43 + %ua.raw176 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr177 = inttoptr i64 %ua.raw176 to ptr + %ua.load178 = load { ptr, ptr }, ptr %ua.ptr177, align 8 + %callN = call { ptr, i64 } @struct_to_string__VL__string(ptr %0, { ptr, ptr } %ua.load178) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.126: ; preds = %match.arm.43 + %ua.raw180 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr181 = inttoptr i64 %ua.raw180 to ptr + %ua.load182 = load { ptr }, ptr %ua.ptr181, align 8 + %callN = call { ptr, i64 } @struct_to_string____VL__string__Vtable(ptr %0, { ptr } %ua.load182) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.282: ; preds = %dispatch.case.288, %dispatch.case.287, %dispatch.case.286, %dispatch.case.285, %dispatch.case.284, %dispatch.default.283 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.187: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.116, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.186 +dispatch.default.283: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.323, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.282 -dispatch.case.188: ; preds = %match.arm.47 - %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr - %ua.load110 = load [4 x i64], ptr %ua.ptr109, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load110) +dispatch.case.284: ; preds = %match.arm.44 + %ua.raw185 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw185) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.186 + br label %dispatch.merge.282 -dispatch.case.189: ; preds = %match.arm.47 - %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr - %ua.load114 = load [1 x { i64, i64 }], ptr %ua.ptr113, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load114) +dispatch.case.285: ; preds = %match.arm.44 + %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw187) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.186 + br label %dispatch.merge.282 -dispatch.merge.200: ; preds = %dispatch.case.203, %dispatch.case.202, %dispatch.default.201 +dispatch.case.286: ; preds = %match.arm.44 + %ua.raw189 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr190 = inttoptr i64 %ua.raw189 to ptr + %ua.load191 = load { i64, [24 x i8] }, ptr %ua.ptr190, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load191) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.287: ; preds = %match.arm.44 + %ua.raw193 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw193) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.288: ; preds = %match.arm.44 + %ua.raw195 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw195) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.merge.299: ; preds = %dispatch.case.306, %dispatch.case.305, %dispatch.case.304, %dispatch.case.303, %dispatch.case.302, %dispatch.case.301, %dispatch.default.300 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.201: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.117, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.200 +dispatch.default.300: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.324, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.299 -dispatch.case.202: ; preds = %match.arm.48 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr118 = inttoptr i64 %ua.raw117 to ptr - %ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load119) +dispatch.case.301: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [4 x i64], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load200) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.200 + br label %dispatch.merge.299 -dispatch.case.203: ; preds = %match.arm.48 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr122 = inttoptr i64 %ua.raw121 to ptr - %ua.load123 = load { ptr, i64 }, ptr %ua.ptr122, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load123) +dispatch.case.302: ; preds = %match.arm.47 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr203, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load204) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.200 + br label %dispatch.merge.299 -dispatch.merge.214: ; preds = %dispatch.case.240, %dispatch.case.239, %dispatch.case.238, %dispatch.case.237, %dispatch.case.236, %dispatch.case.235, %dispatch.case.234, %dispatch.case.233, %dispatch.case.232, %dispatch.case.231, %dispatch.case.230, %dispatch.case.229, %dispatch.case.228, %dispatch.case.227, %dispatch.case.226, %dispatch.case.225, %dispatch.case.224, %dispatch.case.223, %dispatch.case.222, %dispatch.case.221, %dispatch.case.220, %dispatch.case.219, %dispatch.case.218, %dispatch.case.217, %dispatch.case.216, %dispatch.default.215 +dispatch.case.303: ; preds = %match.arm.47 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [8 x i64], ptr %ua.ptr207, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load208) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.case.304: ; preds = %match.arm.47 + %ua.raw210 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr211 = inttoptr i64 %ua.raw210 to ptr + %ua.load212 = load [64 x i8], ptr %ua.ptr211, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load212) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.case.305: ; preds = %match.arm.47 + %ua.raw214 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr215 = inttoptr i64 %ua.raw214 to ptr + %ua.load216 = load [64 x i64], ptr %ua.ptr215, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load216) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.case.306: ; preds = %match.arm.47 + %ua.raw218 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr219 = inttoptr i64 %ua.raw218 to ptr + %ua.load220 = load [1 x { i64, i64 }], ptr %ua.ptr219, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load220) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.merge.337: ; preds = %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.case.340, %dispatch.case.339, %dispatch.default.338 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.215: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.118, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.214 +dispatch.default.338: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.325, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.337 -dispatch.case.216: ; preds = %match.arm.49 - %ua.raw126 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw126 to ptr +dispatch.case.339: ; preds = %match.arm.48 + %ua.raw223 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr224 = inttoptr i64 %ua.raw223 to ptr + %ua.load225 = load { ptr, i64 }, ptr %ua.ptr224, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load225) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.340: ; preds = %match.arm.48 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.341: ; preds = %match.arm.48 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr232 = inttoptr i64 %ua.raw231 to ptr + %ua.load233 = load { ptr, i64 }, ptr %ua.ptr232, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load233) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.342: ; preds = %match.arm.48 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr236 = inttoptr i64 %ua.raw235 to ptr + %ua.load237 = load { ptr, i64 }, ptr %ua.ptr236, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load237) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.343: ; preds = %match.arm.48 + %ua.raw239 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr240 = inttoptr i64 %ua.raw239 to ptr + %ua.load241 = load { ptr, i64 }, ptr %ua.ptr240, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load241) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.merge.369: ; preds = %dispatch.case.408, %dispatch.case.407, %dispatch.case.406, %dispatch.case.405, %dispatch.case.404, %dispatch.case.403, %dispatch.case.402, %dispatch.case.401, %dispatch.case.400, %dispatch.case.399, %dispatch.case.398, %dispatch.case.397, %dispatch.case.396, %dispatch.case.395, %dispatch.case.394, %dispatch.case.393, %dispatch.case.392, %dispatch.case.391, %dispatch.case.390, %dispatch.case.389, %dispatch.case.388, %dispatch.case.387, %dispatch.case.386, %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.default.370 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.370: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.326, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw244 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.217: ; preds = %match.arm.49 - %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 - %iNp129 = inttoptr i64 %ua.raw128 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp129) +dispatch.case.372: ; preds = %match.arm.49 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.218: ; preds = %match.arm.49 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp132 = inttoptr i64 %ua.raw131 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp132) +dispatch.case.373: ; preds = %match.arm.49 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.219: ; preds = %match.arm.49 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %iNp135 = inttoptr i64 %ua.raw134 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp135) +dispatch.case.374: ; preds = %match.arm.49 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.220: ; preds = %match.arm.49 - %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 - %iNp138 = inttoptr i64 %ua.raw137 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp138) +dispatch.case.375: ; preds = %match.arm.49 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.221: ; preds = %match.arm.49 - %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 - %iNp141 = inttoptr i64 %ua.raw140 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp141) +dispatch.case.376: ; preds = %match.arm.49 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.222: ; preds = %match.arm.49 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %iNp144 = inttoptr i64 %ua.raw143 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp144) +dispatch.case.377: ; preds = %match.arm.49 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.223: ; preds = %match.arm.49 - %ua.raw146 = extractvalue { i64, i64 } %loadN, 1 - %iNp147 = inttoptr i64 %ua.raw146 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp147) +dispatch.case.378: ; preds = %match.arm.49 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.224: ; preds = %match.arm.49 - %ua.raw149 = extractvalue { i64, i64 } %loadN, 1 - %iNp150 = inttoptr i64 %ua.raw149 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %iNp150) +dispatch.case.379: ; preds = %match.arm.49 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.225: ; preds = %match.arm.49 - %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 - %iNp153 = inttoptr i64 %ua.raw152 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_StrCell(ptr %0, ptr %iNp153) +dispatch.case.380: ; preds = %match.arm.49 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.226: ; preds = %match.arm.49 - %ua.raw155 = extractvalue { i64, i64 } %loadN, 1 - %iNp156 = inttoptr i64 %ua.raw155 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp156) +dispatch.case.381: ; preds = %match.arm.49 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.227: ; preds = %match.arm.49 - %ua.raw158 = extractvalue { i64, i64 } %loadN, 1 - %iNp159 = inttoptr i64 %ua.raw158 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp159) +dispatch.case.382: ; preds = %match.arm.49 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp277) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.228: ; preds = %match.arm.49 - %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 - %iNp162 = inttoptr i64 %ua.raw161 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp162) +dispatch.case.383: ; preds = %match.arm.49 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp280) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.229: ; preds = %match.arm.49 - %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 - %iNp165 = inttoptr i64 %ua.raw164 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp165) +dispatch.case.384: ; preds = %match.arm.49 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp283) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.230: ; preds = %match.arm.49 - %ua.raw167 = extractvalue { i64, i64 } %loadN, 1 - %iNp168 = inttoptr i64 %ua.raw167 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(ptr %0, ptr %iNp168) +dispatch.case.385: ; preds = %match.arm.49 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp286) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.231: ; preds = %match.arm.49 - %ua.raw170 = extractvalue { i64, i64 } %loadN, 1 - %iNp171 = inttoptr i64 %ua.raw170 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp171) +dispatch.case.386: ; preds = %match.arm.49 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp289) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.232: ; preds = %match.arm.49 - %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 - %iNp174 = inttoptr i64 %ua.raw173 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp174) +dispatch.case.387: ; preds = %match.arm.49 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp292) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.233: ; preds = %match.arm.49 - %ua.raw176 = extractvalue { i64, i64 } %loadN, 1 - %iNp177 = inttoptr i64 %ua.raw176 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp177) +dispatch.case.388: ; preds = %match.arm.49 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp295) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.234: ; preds = %match.arm.49 - %ua.raw179 = extractvalue { i64, i64 } %loadN, 1 - %iNp180 = inttoptr i64 %ua.raw179 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp180) +dispatch.case.389: ; preds = %match.arm.49 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp298) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.235: ; preds = %match.arm.49 - %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 - %iNp183 = inttoptr i64 %ua.raw182 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp183) +dispatch.case.390: ; preds = %match.arm.49 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp301) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.236: ; preds = %match.arm.49 - %ua.raw185 = extractvalue { i64, i64 } %loadN, 1 - %iNp186 = inttoptr i64 %ua.raw185 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp186) +dispatch.case.391: ; preds = %match.arm.49 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp304) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.237: ; preds = %match.arm.49 - %ua.raw188 = extractvalue { i64, i64 } %loadN, 1 - %iNp189 = inttoptr i64 %ua.raw188 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp189) +dispatch.case.392: ; preds = %match.arm.49 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp307) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.238: ; preds = %match.arm.49 - %ua.raw191 = extractvalue { i64, i64 } %loadN, 1 - %iNp192 = inttoptr i64 %ua.raw191 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_VL__string(ptr %0, ptr %iNp192) +dispatch.case.393: ; preds = %match.arm.49 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp310) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.239: ; preds = %match.arm.49 - %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 - %iNp195 = inttoptr i64 %ua.raw194 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_StrCell(ptr %0, ptr %iNp195) +dispatch.case.394: ; preds = %match.arm.49 + %ua.raw312 = extractvalue { i64, i64 } %loadN, 1 + %iNp313 = inttoptr i64 %ua.raw312 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %iNp313) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.240: ; preds = %match.arm.49 - %ua.raw197 = extractvalue { i64, i64 } %loadN, 1 - %iNp198 = inttoptr i64 %ua.raw197 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr___VL__string__Vtable(ptr %0, ptr %iNp198) +dispatch.case.395: ; preds = %match.arm.49 + %ua.raw315 = extractvalue { i64, i64 } %loadN, 1 + %iNp316 = inttoptr i64 %ua.raw315 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_StrCell(ptr %0, ptr %iNp316) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 + +dispatch.case.396: ; preds = %match.arm.49 + %ua.raw318 = extractvalue { i64, i64 } %loadN, 1 + %iNp319 = inttoptr i64 %ua.raw318 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.397: ; preds = %match.arm.49 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %iNp322 = inttoptr i64 %ua.raw321 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp322) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.398: ; preds = %match.arm.49 + %ua.raw324 = extractvalue { i64, i64 } %loadN, 1 + %iNp325 = inttoptr i64 %ua.raw324 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp325) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.399: ; preds = %match.arm.49 + %ua.raw327 = extractvalue { i64, i64 } %loadN, 1 + %iNp328 = inttoptr i64 %ua.raw327 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(ptr %0, ptr %iNp328) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.400: ; preds = %match.arm.49 + %ua.raw330 = extractvalue { i64, i64 } %loadN, 1 + %iNp331 = inttoptr i64 %ua.raw330 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp331) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.401: ; preds = %match.arm.49 + %ua.raw333 = extractvalue { i64, i64 } %loadN, 1 + %iNp334 = inttoptr i64 %ua.raw333 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp334) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.402: ; preds = %match.arm.49 + %ua.raw336 = extractvalue { i64, i64 } %loadN, 1 + %iNp337 = inttoptr i64 %ua.raw336 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp337) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.403: ; preds = %match.arm.49 + %ua.raw339 = extractvalue { i64, i64 } %loadN, 1 + %iNp340 = inttoptr i64 %ua.raw339 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp340) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.404: ; preds = %match.arm.49 + %ua.raw342 = extractvalue { i64, i64 } %loadN, 1 + %iNp343 = inttoptr i64 %ua.raw342 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp343) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.405: ; preds = %match.arm.49 + %ua.raw345 = extractvalue { i64, i64 } %loadN, 1 + %iNp346 = inttoptr i64 %ua.raw345 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp346) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.406: ; preds = %match.arm.49 + %ua.raw348 = extractvalue { i64, i64 } %loadN, 1 + %iNp349 = inttoptr i64 %ua.raw348 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_VL__string(ptr %0, ptr %iNp349) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.407: ; preds = %match.arm.49 + %ua.raw351 = extractvalue { i64, i64 } %loadN, 1 + %iNp352 = inttoptr i64 %ua.raw351 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_StrCell(ptr %0, ptr %iNp352) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.408: ; preds = %match.arm.49 + %ua.raw354 = extractvalue { i64, i64 } %loadN, 1 + %iNp355 = inttoptr i64 %ua.raw354 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr___VL__string__Vtable(ptr %0, ptr %iNp355) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.merge.536: ; preds = %dispatch.case.541, %dispatch.case.540, %dispatch.case.539, %dispatch.case.538, %dispatch.default.537 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.537: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.327, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.536 + +dispatch.case.538: ; preds = %match.arm.50 + %ua.raw358 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr359 = inttoptr i64 %ua.raw358 to ptr + %ua.load360 = load { { i32 }, i1 }, ptr %ua.ptr359, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load360) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.536 + +dispatch.case.539: ; preds = %match.arm.50 + %ua.raw362 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr363 = inttoptr i64 %ua.raw362 to ptr + %ua.load364 = load { { ptr, i64 }, i1 }, ptr %ua.ptr363, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load364) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.536 + +dispatch.case.540: ; preds = %match.arm.50 + %ua.raw366 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr367 = inttoptr i64 %ua.raw366 to ptr + %ua.load368 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr367, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load368) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.536 + +dispatch.case.541: ; preds = %match.arm.50 + %ua.raw370 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr371 = inttoptr i64 %ua.raw370 to ptr + %ua.load372 = load { [64 x i8], i1 }, ptr %ua.ptr371, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load372) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.536 } ; Function Attrs: nounwind @@ -1790,7 +2620,7 @@ 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.119, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.328, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1886,7 +2716,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.329, 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 @@ -1894,7 +2724,7 @@ if.then.12: ; preds = %if.then.9 %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.121, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.330, 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 @@ -1904,13 +2734,13 @@ if.then.12: ; preds = %if.then.9 %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.122, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.331, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.123, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.332, 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 @@ -1918,7 +2748,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.124, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.333, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1932,7 +2762,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.125, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.334, 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 @@ -1940,7 +2770,7 @@ if.then.23: ; preds = %if.else.10 %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.126, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.335, 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 @@ -1951,7 +2781,7 @@ if.then.23: ; preds = %if.else.10 %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.127, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.336, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2008,7 +2838,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.337, 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 @@ -2016,7 +2846,7 @@ if.then.32: ; preds = %if.then.29 %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.129, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, 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 @@ -2027,7 +2857,7 @@ if.then.32: ; preds = %if.then.29 %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.130, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2047,7 +2877,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, 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 @@ -2055,7 +2885,7 @@ if.then.35: ; preds = %while.exit.2 %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.132, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.341, 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 @@ -2066,7 +2896,7 @@ if.then.35: ; preds = %while.exit.2 %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.133, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.342, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2143,6 +2973,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i64 @IntCell.get(ptr %0, ptr %1) #0 { entry: @@ -2189,7 +3757,7 @@ entry: call void @print__ct_seb9f5db11fd9fc4e__pack_s64(ptr @__sx_default_context, i64 %icallN) %allocaN = alloca { ptr, ptr }, align 8 %allocaN = alloca { { ptr, i64 } }, align 8 - store { { ptr, i64 } } { { ptr, i64 } { ptr @str.134, i64 2 } }, ptr %allocaN, align 8 + store { { ptr, i64 } } { { ptr, i64 } { ptr @str.343, i64 2 } }, ptr %allocaN, align 8 %loadN = load { { ptr, ptr, ptr }, ptr }, ptr @__sx_default_context, align 8 %sgN = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 0 %sgN = extractvalue { ptr, ptr, ptr } %sgN, 0 @@ -2234,7 +3802,7 @@ entry: define internal void @print__ct_seb9f5db11fd9fc4e__pack_s64(ptr %0, i64 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.135, i64 9 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.344, i64 9 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2249,7 +3817,7 @@ entry: %gepN = getelementptr inbounds { 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.136, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.345, 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 6) @@ -2276,7 +3844,7 @@ entry: ; 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.137, i64 9 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.346, i64 9 }) ret { ptr, i64 } %call } @@ -2291,7 +3859,7 @@ entry: define internal void @print__ct_sfd7f12a0a81d0d1c__pack_string(ptr %0, { ptr, i64 } %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.138, i64 9 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.347, i64 9 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2309,7 +3877,7 @@ entry: %gepN = getelementptr inbounds { 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.139, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.348, 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 6) @@ -2339,7 +3907,7 @@ entry: ; 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.140, i64 9 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.349, i64 9 }) ret { ptr, i64 } %call } @@ -2350,35 +3918,35 @@ entry: %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.141, i64 15 }, { ptr, i64 } { ptr @str.142, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.350, i64 15 }, { ptr, i64 } { ptr @str.351, 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.111 + br label %while.hdr.127 -while.hdr.111: ; preds = %fv.merge, %entry +while.hdr.127: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.112, label %while.exit.113 + br i1 %icmp, label %while.body.128, label %while.exit.129 -while.body.112: ; preds = %while.hdr.111 +while.body.128: ; preds = %while.hdr.127 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.114, label %if.merge.115 + br i1 %icmpN, label %if.then.130, label %if.merge.131 -while.exit.113: ; preds = %while.hdr.111 +while.exit.129: ; preds = %while.hdr.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.143, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 1 }) ret { ptr, i64 } %callN -if.then.114: ; preds = %while.body.112 +if.then.130: ; preds = %while.body.128 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.115 + br label %if.merge.131 -if.merge.115: ; preds = %if.then.114, %while.body.112 +if.merge.131: ; preds = %if.then.130, %while.body.128 %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 @@ -2386,7 +3954,7 @@ if.merge.115: ; preds = %if.then.114, %while %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.148, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.357, 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 @@ -2406,31 +3974,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.111 + br label %while.hdr.127 -fv.default: ; preds = %if.merge.115 +fv.default: ; preds = %if.merge.131 br label %fv.merge -fv.case: ; preds = %if.merge.115 +fv.case: ; preds = %if.merge.131 %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.115 +fv.case17: ; preds = %if.merge.131 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.115 +fv.case20: ; preds = %if.merge.131 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.115 +fv.case24: ; preds = %if.merge.131 %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 @@ -2443,43 +4011,43 @@ 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.149, i64 10 }, { ptr, i64 } { ptr @str.150, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.358, i64 10 }, { ptr, i64 } { ptr @str.359, 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.116 + br label %while.hdr.132 -while.hdr.116: ; preds = %if.merge.120, %entry +while.hdr.132: ; preds = %if.merge.136, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.117, label %while.exit.118 + br i1 %icmp, label %while.body.133, label %while.exit.134 -while.body.117: ; preds = %while.hdr.116 +while.body.133: ; preds = %while.hdr.132 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.119, label %if.merge.120 + br i1 %icmpN, label %if.then.135, label %if.merge.136 -while.exit.118: ; preds = %while.hdr.116 +while.exit.134: ; preds = %while.hdr.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 1 }) ret { ptr, i64 } %callN -if.then.119: ; preds = %while.body.117 +if.then.135: ; preds = %while.body.133 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.120 + br label %if.merge.136 -if.merge.120: ; preds = %if.then.119, %while.body.117 +if.merge.136: ; preds = %if.then.135, %while.body.133 %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.153, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.362, 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.154, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.363, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2490,7 +4058,7 @@ if.merge.120: ; preds = %if.then.119, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.116 + br label %while.hdr.132 } ; Function Attrs: nounwind @@ -2498,43 +4066,43 @@ 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.155, i64 3 }, { ptr, i64 } { ptr @str.156, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.364, i64 3 }, { ptr, i64 } { ptr @str.365, 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.121 + br label %while.hdr.137 -while.hdr.121: ; preds = %fv.merge, %entry +while.hdr.137: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.122, label %while.exit.123 + br i1 %icmp, label %while.body.138, label %while.exit.139 -while.body.122: ; preds = %while.hdr.121 +while.body.138: ; preds = %while.hdr.137 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.124, label %if.merge.125 + br i1 %icmpN, label %if.then.140, label %if.merge.141 -while.exit.123: ; preds = %while.hdr.121 +while.exit.139: ; preds = %while.hdr.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.157, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 1 }) ret { ptr, i64 } %callN -if.then.124: ; preds = %while.body.122 +if.then.140: ; preds = %while.body.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.125 + br label %if.merge.141 -if.merge.125: ; preds = %if.then.124, %while.body.122 +if.merge.141: ; preds = %if.then.140, %while.body.138 %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.160, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.369, 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.161, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.370, 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 @@ -2551,12 +4119,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.121 + br label %while.hdr.137 -fv.default: ; preds = %if.merge.125 +fv.default: ; preds = %if.merge.141 br label %fv.merge -fv.case: ; preds = %if.merge.125 +fv.case: ; preds = %if.merge.141 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2567,43 +4135,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.162, i64 10 }, { ptr, i64 } { ptr @str.163, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.371, i64 10 }, { ptr, i64 } { ptr @str.372, 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.126 + br label %while.hdr.142 -while.hdr.126: ; preds = %fv.merge, %entry +while.hdr.142: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.127, label %while.exit.128 + br i1 %icmp, label %while.body.143, label %while.exit.144 -while.body.127: ; preds = %while.hdr.126 +while.body.143: ; preds = %while.hdr.142 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.129, label %if.merge.130 + br i1 %icmpN, label %if.then.145, label %if.merge.146 -while.exit.128: ; preds = %while.hdr.126 +while.exit.144: ; preds = %while.hdr.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, i64 1 }) ret { ptr, i64 } %callN -if.then.129: ; preds = %while.body.127 +if.then.145: ; preds = %while.body.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.374, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.130 + br label %if.merge.146 -if.merge.130: ; preds = %if.then.129, %while.body.127 +if.merge.146: ; preds = %if.then.145, %while.body.143 %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.168, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.377, 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.169, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.378, 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 @@ -2621,18 +4189,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.126 + br label %while.hdr.142 -fv.default: ; preds = %if.merge.130 +fv.default: ; preds = %if.merge.146 br label %fv.merge -fv.case: ; preds = %if.merge.130 +fv.case: ; preds = %if.merge.146 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.130 +fv.case17: ; preds = %if.merge.146 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2643,43 +4211,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.170, i64 9 }, { ptr, i64 } { ptr @str.171, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.379, i64 9 }, { ptr, i64 } { ptr @str.380, 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.131 + br label %while.hdr.147 -while.hdr.131: ; preds = %fv.merge, %entry +while.hdr.147: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.132, label %while.exit.133 + br i1 %icmp, label %while.body.148, label %while.exit.149 -while.body.132: ; preds = %while.hdr.131 +while.body.148: ; preds = %while.hdr.147 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.134, label %if.merge.135 + br i1 %icmpN, label %if.then.150, label %if.merge.151 -while.exit.133: ; preds = %while.hdr.131 +while.exit.149: ; preds = %while.hdr.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.381, i64 1 }) ret { ptr, i64 } %callN -if.then.134: ; preds = %while.body.132 +if.then.150: ; preds = %while.body.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.135 + br label %if.merge.151 -if.merge.135: ; preds = %if.then.134, %while.body.132 +if.merge.151: ; preds = %if.then.150, %while.body.148 %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.177, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.386, 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.178, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.387, 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 @@ -2698,24 +4266,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.131 + br label %while.hdr.147 -fv.default: ; preds = %if.merge.135 +fv.default: ; preds = %if.merge.151 br label %fv.merge -fv.case: ; preds = %if.merge.135 +fv.case: ; preds = %if.merge.151 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.135 +fv.case17: ; preds = %if.merge.151 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.135 +fv.case21: ; preds = %if.merge.151 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2728,43 +4296,43 @@ 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.179, i64 5 }, { ptr, i64 } { ptr @str.180, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.388, i64 5 }, { ptr, i64 } { ptr @str.389, 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.136 + br label %while.hdr.152 -while.hdr.136: ; preds = %fv.merge, %entry +while.hdr.152: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.137, label %while.exit.138 + br i1 %icmp, label %while.body.153, label %while.exit.154 -while.body.137: ; preds = %while.hdr.136 +while.body.153: ; preds = %while.hdr.152 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.139, label %if.merge.140 + br i1 %icmpN, label %if.then.155, label %if.merge.156 -while.exit.138: ; preds = %while.hdr.136 +while.exit.154: ; preds = %while.hdr.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.181, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.390, i64 1 }) ret { ptr, i64 } %callN -if.then.139: ; preds = %while.body.137 +if.then.155: ; preds = %while.body.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.182, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.140 + br label %if.merge.156 -if.merge.140: ; preds = %if.then.139, %while.body.137 +if.merge.156: ; preds = %if.then.155, %while.body.153 %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.186, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.395, 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.187, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.396, 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 @@ -2783,23 +4351,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.136 + br label %while.hdr.152 -fv.default: ; preds = %if.merge.140 +fv.default: ; preds = %if.merge.156 br label %fv.merge -fv.case: ; preds = %if.merge.140 +fv.case: ; preds = %if.merge.156 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.140 +fv.case17: ; preds = %if.merge.156 %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.140 +fv.case20: ; preds = %if.merge.156 %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 @@ -2812,43 +4380,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.188, i64 8 }, { ptr, i64 } { ptr @str.189, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.397, i64 8 }, { ptr, i64 } { ptr @str.398, 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.141 + br label %while.hdr.157 -while.hdr.141: ; preds = %fv.merge, %entry +while.hdr.157: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.142, label %while.exit.143 + br i1 %icmp, label %while.body.158, label %while.exit.159 -while.body.142: ; preds = %while.hdr.141 +while.body.158: ; preds = %while.hdr.157 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.144, label %if.merge.145 + br i1 %icmpN, label %if.then.160, label %if.merge.161 -while.exit.143: ; preds = %while.hdr.141 +while.exit.159: ; preds = %while.hdr.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.190, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.399, i64 1 }) ret { ptr, i64 } %callN -if.then.144: ; preds = %while.body.142 +if.then.160: ; preds = %while.body.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.191, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.400, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.145 + br label %if.merge.161 -if.merge.145: ; preds = %if.then.144, %while.body.142 +if.merge.161: ; preds = %if.then.160, %while.body.158 %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.195, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.404, 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.196, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.405, 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 @@ -2867,23 +4435,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.141 + br label %while.hdr.157 -fv.default: ; preds = %if.merge.145 +fv.default: ; preds = %if.merge.161 br label %fv.merge -fv.case: ; preds = %if.merge.145 +fv.case: ; preds = %if.merge.161 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.145 +fv.case17: ; preds = %if.merge.161 %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.145 +fv.case20: ; preds = %if.merge.161 %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 @@ -2895,43 +4463,43 @@ 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.197, i64 17 }, { ptr, i64 } { ptr @str.198, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.406, i64 17 }, { ptr, i64 } { ptr @str.407, 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.146 + br label %while.hdr.162 -while.hdr.146: ; preds = %fv.merge, %entry +while.hdr.162: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.147, label %while.exit.148 + br i1 %icmp, label %while.body.163, label %while.exit.164 -while.body.147: ; preds = %while.hdr.146 +while.body.163: ; preds = %while.hdr.162 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.149, label %if.merge.150 + br i1 %icmpN, label %if.then.165, label %if.merge.166 -while.exit.148: ; preds = %while.hdr.146 +while.exit.164: ; preds = %while.hdr.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.199, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, i64 1 }) ret { ptr, i64 } %callN -if.then.149: ; preds = %while.body.147 +if.then.165: ; preds = %while.body.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.200, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.409, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.150 + br label %if.merge.166 -if.merge.150: ; preds = %if.then.149, %while.body.147 +if.merge.166: ; preds = %if.then.165, %while.body.163 %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.205, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.414, 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.206, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.415, 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 @@ -2951,29 +4519,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.146 + br label %while.hdr.162 -fv.default: ; preds = %if.merge.150 +fv.default: ; preds = %if.merge.166 br label %fv.merge -fv.case: ; preds = %if.merge.150 +fv.case: ; preds = %if.merge.166 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.150 +fv.case17: ; preds = %if.merge.166 %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.150 +fv.case20: ; preds = %if.merge.166 %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.150 +fv.case23: ; preds = %if.merge.166 %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 @@ -2985,43 +4553,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.207, i64 7 }, { ptr, i64 } { ptr @str.208, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.416, i64 7 }, { ptr, i64 } { ptr @str.417, 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.151 + br label %while.hdr.167 -while.hdr.151: ; preds = %fv.merge, %entry +while.hdr.167: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.152, label %while.exit.153 + br i1 %icmp, label %while.body.168, label %while.exit.169 -while.body.152: ; preds = %while.hdr.151 +while.body.168: ; preds = %while.hdr.167 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.154, label %if.merge.155 + br i1 %icmpN, label %if.then.170, label %if.merge.171 -while.exit.153: ; preds = %while.hdr.151 +while.exit.169: ; preds = %while.hdr.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.418, i64 1 }) ret { ptr, i64 } %callN -if.then.154: ; preds = %while.body.152 +if.then.170: ; preds = %while.body.168 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.210, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.155 + br label %if.merge.171 -if.merge.155: ; preds = %if.then.154, %while.body.152 +if.merge.171: ; preds = %if.then.170, %while.body.168 %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.213, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.422, 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.214, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.423, 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 %alloca, align 8 @@ -3039,67 +4607,1436 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.151 + br label %while.hdr.167 -fv.default: ; preds = %if.merge.155 +fv.default: ; preds = %if.merge.171 br label %fv.merge -fv.case: ; preds = %if.merge.155 +fv.case: ; preds = %if.merge.171 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.155 +fv.case17: ; preds = %if.merge.171 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.424, i64 4 }, { ptr, i64 } { ptr @str.425, 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.172 + +while.hdr.172: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.173, label %while.exit.174 + +while.body.173: ; preds = %while.hdr.172 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.175, label %if.merge.176 + +while.exit.174: ; preds = %while.hdr.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.426, i64 1 }) + ret { ptr, i64 } %callN + +if.then.175: ; preds = %while.body.173 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.427, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.176 + +if.merge.176: ; preds = %if.then.175, %while.body.173 + %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.429, 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.430, 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.172 + +fv.default: ; preds = %if.merge.176 + br label %fv.merge + +fv.case: ; preds = %if.merge.176 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.431, i64 10 }, { ptr, i64 } { ptr @str.432, 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.177 + +while.hdr.177: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.178, label %while.exit.179 + +while.body.178: ; preds = %while.hdr.177 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.180, label %if.merge.181 + +while.exit.179: ; preds = %while.hdr.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.433, i64 1 }) + ret { ptr, i64 } %callN + +if.then.180: ; preds = %while.body.178 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.434, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.181 + +if.merge.181: ; preds = %if.then.180, %while.body.178 + %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.440, 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.441, 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.177 + +fv.default: ; preds = %if.merge.181 + br label %fv.merge + +fv.case: ; preds = %if.merge.181 + %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.181 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.181 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.181 + %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.181 + %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.442, i64 13 }, { ptr, i64 } { ptr @str.443, 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.182 + +while.hdr.182: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.183, label %while.exit.184 + +while.body.183: ; preds = %while.hdr.182 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.185, label %if.merge.186 + +while.exit.184: ; preds = %while.hdr.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.444, i64 1 }) + ret { ptr, i64 } %callN + +if.then.185: ; preds = %while.body.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.445, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.186 + +if.merge.186: ; preds = %if.then.185, %while.body.183 + %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.448, 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.449, 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.182 + +fv.default: ; preds = %if.merge.186 + br label %fv.merge + +fv.case: ; preds = %if.merge.186 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.186 + %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.450, i64 8 }, { ptr, i64 } { ptr @str.451, 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.187 + +while.hdr.187: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.188, label %while.exit.189 + +while.body.188: ; preds = %while.hdr.187 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.190, label %if.merge.191 + +while.exit.189: ; preds = %while.hdr.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.452, i64 1 }) + ret { ptr, i64 } %callN + +if.then.190: ; preds = %while.body.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.453, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.191 + +if.merge.191: ; preds = %if.then.190, %while.body.188 + %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.459, 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.460, 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.187 + +fv.default: ; preds = %if.merge.191 + br label %fv.merge + +fv.case: ; preds = %if.merge.191 + %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.191 + %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.191 + %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.191 + %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.191 + %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.461, i64 5 }, { ptr, i64 } { ptr @str.462, 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.192 + +while.hdr.192: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.193, label %while.exit.194 + +while.body.193: ; preds = %while.hdr.192 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.195, label %if.merge.196 + +while.exit.194: ; preds = %while.hdr.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.463, i64 1 }) + ret { ptr, i64 } %callN + +if.then.195: ; preds = %while.body.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.464, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.196 + +if.merge.196: ; preds = %if.then.195, %while.body.193 + %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.468, 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.469, 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.192 + +fv.default: ; preds = %if.merge.196 + br label %fv.merge + +fv.case: ; preds = %if.merge.196 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.196 + %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.196 + %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.470, i64 6 }, { ptr, i64 } { ptr @str.471, 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.197 + +while.hdr.197: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.198, label %while.exit.199 + +while.body.198: ; preds = %while.hdr.197 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.200, label %if.merge.201 + +while.exit.199: ; preds = %while.hdr.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.472, i64 1 }) + ret { ptr, i64 } %callN + +if.then.200: ; preds = %while.body.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.473, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.201 + +if.merge.201: ; preds = %if.then.200, %while.body.198 + %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.477, 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.478, 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.197 + +fv.default: ; preds = %if.merge.201 + br label %fv.merge + +fv.case: ; preds = %if.merge.201 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.201 + %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.201 + %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.479, i64 6 }, { ptr, i64 } { ptr @str.480, 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.202 + +while.hdr.202: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.203, label %while.exit.204 + +while.body.203: ; preds = %while.hdr.202 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.205, label %if.merge.206 + +while.exit.204: ; preds = %while.hdr.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.481, i64 1 }) + ret { ptr, i64 } %callN + +if.then.205: ; preds = %while.body.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.482, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.206 + +if.merge.206: ; preds = %if.then.205, %while.body.203 + %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.485, 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.486, 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.202 + +fv.default: ; preds = %if.merge.206 + br label %fv.merge + +fv.case: ; preds = %if.merge.206 + %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.206 + %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 54, 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.487, i64 4 }, { ptr, i64 } { ptr @str.488, 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.207 + +while.hdr.207: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.208, label %while.exit.209 + +while.body.208: ; preds = %while.hdr.207 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.210, label %if.merge.211 + +while.exit.209: ; preds = %while.hdr.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.489, i64 1 }) + ret { ptr, i64 } %callN + +if.then.210: ; preds = %while.body.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.490, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.211 + +if.merge.211: ; preds = %if.then.210, %while.body.208 + %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.494, 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.495, 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.207 + +fv.default: ; preds = %if.merge.211 + br label %fv.merge + +fv.case: ; preds = %if.merge.211 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.211 + %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.211 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.496, i64 6 }, { ptr, i64 } { ptr @str.497, 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.212 + +while.hdr.212: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.213, label %while.exit.214 + +while.body.213: ; preds = %while.hdr.212 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.215, label %if.merge.216 + +while.exit.214: ; preds = %while.hdr.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.498, i64 1 }) + ret { ptr, i64 } %callN + +if.then.215: ; preds = %while.body.213 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.499, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.216 + +if.merge.216: ; preds = %if.then.215, %while.body.213 + %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.503, 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.504, 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.212 + +fv.default: ; preds = %if.merge.216 + br label %fv.merge + +fv.case: ; preds = %if.merge.216 + %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.216 + %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.216 + %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 26, i64 undef }, i64 %ba.p2i23, 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.505, i64 12 }, { ptr, i64 } { ptr @str.506, 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.217 + +while.hdr.217: ; preds = %if.merge.221, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.218, label %while.exit.219 + +while.body.218: ; preds = %while.hdr.217 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.220, label %if.merge.221 + +while.exit.219: ; preds = %while.hdr.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.507, i64 1 }) + ret { ptr, i64 } %callN + +if.then.220: ; preds = %while.body.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.508, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.221 + +if.merge.221: ; preds = %if.then.220, %while.body.218 + %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.509, 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.510, 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.217 +} + +; 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.511, i64 8 }, { ptr, i64 } { ptr @str.512, 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.222 + +while.hdr.222: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.223, label %while.exit.224 + +while.body.223: ; preds = %while.hdr.222 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.225, label %if.merge.226 + +while.exit.224: ; preds = %while.hdr.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.513, i64 1 }) + ret { ptr, i64 } %callN + +if.then.225: ; preds = %while.body.223 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.514, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.226 + +if.merge.226: ; preds = %if.then.225, %while.body.223 + %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.518, 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.519, 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.222 + +fv.default: ; preds = %if.merge.226 + br label %fv.merge + +fv.case: ; preds = %if.merge.226 + %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.226 + %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.226 + %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.520, i64 7 }, { ptr, i64 } { ptr @str.521, 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.227 + +while.hdr.227: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.228, label %while.exit.229 + +while.body.228: ; preds = %while.hdr.227 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.230, label %if.merge.231 + +while.exit.229: ; preds = %while.hdr.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.522, i64 1 }) + ret { ptr, i64 } %callN + +if.then.230: ; preds = %while.body.228 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.523, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.231 + +if.merge.231: ; preds = %if.then.230, %while.body.228 + %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.527, 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.528, 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.227 + +fv.default: ; preds = %if.merge.231 + br label %fv.merge + +fv.case: ; preds = %if.merge.231 + %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.231 + %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.231 + %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 77, 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.529, i64 9 }, { ptr, i64 } { ptr @str.530, 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.232 + +while.hdr.232: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.233, label %while.exit.234 + +while.body.233: ; preds = %while.hdr.232 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.235, label %if.merge.236 + +while.exit.234: ; preds = %while.hdr.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.531, i64 1 }) + ret { ptr, i64 } %callN + +if.then.235: ; preds = %while.body.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.532, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.236 + +if.merge.236: ; preds = %if.then.235, %while.body.233 + %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.535, 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.536, 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.232 + +fv.default: ; preds = %if.merge.236 + br label %fv.merge + +fv.case: ; preds = %if.merge.236 + %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.236 + %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.537, i64 4 }, { ptr, i64 } { ptr @str.538, 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.237 + +while.hdr.237: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.238, label %while.exit.239 + +while.body.238: ; preds = %while.hdr.237 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.240, label %if.merge.241 + +while.exit.239: ; preds = %while.hdr.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.539, i64 1 }) + ret { ptr, i64 } %callN + +if.then.240: ; preds = %while.body.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.540, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.241 + +if.merge.241: ; preds = %if.then.240, %while.body.238 + %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.543, 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.544, 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.237 + +fv.default: ; preds = %if.merge.241 + br label %fv.merge + +fv.case: ; preds = %if.merge.241 + %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.241 + %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.545, i64 6 }, { ptr, i64 } { ptr @str.546, 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.242 + +while.hdr.242: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.243, label %while.exit.244 + +while.body.243: ; preds = %while.hdr.242 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.245, label %if.merge.246 + +while.exit.244: ; preds = %while.hdr.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.547, i64 1 }) + ret { ptr, i64 } %callN + +if.then.245: ; preds = %while.body.243 + %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 + br label %if.merge.246 + +if.merge.246: ; preds = %if.then.245, %while.body.243 + %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.556, 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.557, 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.242 + +fv.default: ; preds = %if.merge.246 + br label %fv.merge + +fv.case: ; preds = %if.merge.246 + %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.246 + %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.246 + %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.246 + %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.246 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.246 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.246 + %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 81, 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.558, i64 6 }, { ptr, i64 } { ptr @str.559, 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.247 + +while.hdr.247: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.248, label %while.exit.249 + +while.body.248: ; preds = %while.hdr.247 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.250, label %if.merge.251 + +while.exit.249: ; preds = %while.hdr.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.560, i64 1 }) + ret { ptr, i64 } %callN + +if.then.250: ; preds = %while.body.248 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.561, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.251 + +if.merge.251: ; preds = %if.then.250, %while.body.248 + %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.566, 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.567, 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.247 + +fv.default: ; preds = %if.merge.251 + br label %fv.merge + +fv.case: ; preds = %if.merge.251 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.251 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.251 + %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.251 + %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__IntCell(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.215, i64 7 }, { ptr, i64 } { ptr @str.216, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.568, i64 7 }, { ptr, i64 } { ptr @str.569, 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.156 + br label %while.hdr.252 -while.hdr.156: ; preds = %fv.merge, %entry +while.hdr.252: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.157, label %while.exit.158 + br i1 %icmp, label %while.body.253, label %while.exit.254 -while.body.157: ; preds = %while.hdr.156 +while.body.253: ; preds = %while.hdr.252 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.159, label %if.merge.160 + br i1 %icmpN, label %if.then.255, label %if.merge.256 -while.exit.158: ; preds = %while.hdr.156 +while.exit.254: ; preds = %while.hdr.252 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.217, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.570, i64 1 }) ret { ptr, i64 } %callN -if.then.159: ; preds = %while.body.157 +if.then.255: ; preds = %while.body.253 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.218, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.571, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.160 + br label %if.merge.256 -if.merge.160: ; preds = %if.then.159, %while.body.157 +if.merge.256: ; preds = %if.then.255, %while.body.253 %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.220, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.573, 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.221, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.574, 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 @@ -3116,12 +6053,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.156 + br label %while.hdr.252 -fv.default: ; preds = %if.merge.160 +fv.default: ; preds = %if.merge.256 br label %fv.merge -fv.case: ; preds = %if.merge.160 +fv.case: ; preds = %if.merge.256 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -3133,43 +6070,43 @@ entry: %alloca = alloca { { ptr, i64 } }, align 8 %ba.tmp = alloca { ptr, i64 }, align 8 store { { ptr, i64 } } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.222, i64 7 }, { ptr, i64 } { ptr @str.223, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.575, i64 7 }, { ptr, i64 } { ptr @str.576, 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.161 + br label %while.hdr.257 -while.hdr.161: ; preds = %fv.merge, %entry +while.hdr.257: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.162, label %while.exit.163 + br i1 %icmp, label %while.body.258, label %while.exit.259 -while.body.162: ; preds = %while.hdr.161 +while.body.258: ; preds = %while.hdr.257 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.164, label %if.merge.165 + br i1 %icmpN, label %if.then.260, label %if.merge.261 -while.exit.163: ; preds = %while.hdr.161 +while.exit.259: ; preds = %while.hdr.257 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.224, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.577, i64 1 }) ret { ptr, i64 } %callN -if.then.164: ; preds = %while.body.162 +if.then.260: ; preds = %while.body.258 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.225, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.578, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.165 + br label %if.merge.261 -if.merge.165: ; preds = %if.then.164, %while.body.162 +if.merge.261: ; preds = %if.then.260, %while.body.258 %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.227, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.580, 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.228, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.581, 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 @@ -3186,12 +6123,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.161 + br label %while.hdr.257 -fv.default: ; preds = %if.merge.165 +fv.default: ; preds = %if.merge.261 br label %fv.merge -fv.case: ; preds = %if.merge.165 +fv.case: ; preds = %if.merge.261 %fv.field = extractvalue { { ptr, i64 } } %loadN, 0 store { ptr, i64 } %fv.field, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 @@ -3204,43 +6141,43 @@ define internal { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %1) entry: %alloca = alloca { ptr, ptr }, align 8 store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.229, i64 7 }, { ptr, i64 } { ptr @str.230, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.582, i64 7 }, { ptr, i64 } { ptr @str.583, 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.166 + br label %while.hdr.262 -while.hdr.166: ; preds = %fv.merge, %entry +while.hdr.262: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.167, label %while.exit.168 + br i1 %icmp, label %while.body.263, label %while.exit.264 -while.body.167: ; preds = %while.hdr.166 +while.body.263: ; preds = %while.hdr.262 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.169, label %if.merge.170 + br i1 %icmpN, label %if.then.265, label %if.merge.266 -while.exit.168: ; preds = %while.hdr.166 +while.exit.264: ; preds = %while.hdr.262 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.231, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.584, i64 1 }) ret { ptr, i64 } %callN -if.then.169: ; preds = %while.body.167 +if.then.265: ; preds = %while.body.263 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.232, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.585, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.170 + br label %if.merge.266 -if.merge.170: ; preds = %if.then.169, %while.body.167 +if.merge.266: ; preds = %if.then.265, %while.body.263 %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.235, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.588, 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.236, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.589, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, ptr }, ptr %alloca, align 8 @@ -3258,18 +6195,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.166 + br label %while.hdr.262 -fv.default: ; preds = %if.merge.170 +fv.default: ; preds = %if.merge.266 br label %fv.merge -fv.case: ; preds = %if.merge.170 +fv.case: ; preds = %if.merge.266 %fv.field = extractvalue { ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.170 +fv.case17: ; preds = %if.merge.266 %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 @@ -3281,43 +6218,43 @@ define internal { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr entry: %alloca = alloca { ptr }, align 8 store { ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.237, i64 17 }, { ptr, i64 } { ptr @str.238, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.590, i64 17 }, { ptr, i64 } { ptr @str.591, 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.171 + br label %while.hdr.267 -while.hdr.171: ; preds = %fv.merge, %entry +while.hdr.267: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.172, label %while.exit.173 + br i1 %icmp, label %while.body.268, label %while.exit.269 -while.body.172: ; preds = %while.hdr.171 +while.body.268: ; preds = %while.hdr.267 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.174, label %if.merge.175 + br i1 %icmpN, label %if.then.270, label %if.merge.271 -while.exit.173: ; preds = %while.hdr.171 +while.exit.269: ; preds = %while.hdr.267 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.239, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.592, i64 1 }) ret { ptr, i64 } %callN -if.then.174: ; preds = %while.body.172 +if.then.270: ; preds = %while.body.268 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.240, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.593, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.175 + br label %if.merge.271 -if.merge.175: ; preds = %if.then.174, %while.body.172 +if.merge.271: ; preds = %if.then.270, %while.body.268 %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.242, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.595, 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.243, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.596, 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 @@ -3334,12 +6271,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.171 + br label %while.hdr.267 -fv.default: ; preds = %if.merge.175 +fv.default: ; preds = %if.merge.271 br label %fv.merge -fv.case: ; preds = %if.merge.175 +fv.case: ; preds = %if.merge.271 %fv.field = extractvalue { ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 @@ -3351,43 +6288,43 @@ define internal { ptr, i64 } @struct_to_string__VL__string(ptr %0, { ptr, ptr } entry: %alloca = alloca { ptr, ptr }, align 8 store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.244, i64 10 }, { ptr, i64 } { ptr @str.245, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.597, i64 10 }, { ptr, i64 } { ptr @str.598, 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.176 + br label %while.hdr.272 -while.hdr.176: ; preds = %fv.merge, %entry +while.hdr.272: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.177, label %while.exit.178 + br i1 %icmp, label %while.body.273, label %while.exit.274 -while.body.177: ; preds = %while.hdr.176 +while.body.273: ; preds = %while.hdr.272 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.179, label %if.merge.180 + br i1 %icmpN, label %if.then.275, label %if.merge.276 -while.exit.178: ; preds = %while.hdr.176 +while.exit.274: ; preds = %while.hdr.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.246, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.599, i64 1 }) ret { ptr, i64 } %callN -if.then.179: ; preds = %while.body.177 +if.then.275: ; preds = %while.body.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.247, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.180 + br label %if.merge.276 -if.merge.180: ; preds = %if.then.179, %while.body.177 +if.merge.276: ; preds = %if.then.275, %while.body.273 %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.250, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.603, 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.251, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.604, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, ptr }, ptr %alloca, align 8 @@ -3405,18 +6342,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.176 + br label %while.hdr.272 -fv.default: ; preds = %if.merge.180 +fv.default: ; preds = %if.merge.276 br label %fv.merge -fv.case: ; preds = %if.merge.180 +fv.case: ; preds = %if.merge.276 %fv.field = extractvalue { ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.180 +fv.case17: ; preds = %if.merge.276 %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 @@ -3428,43 +6365,43 @@ define internal { ptr, i64 } @struct_to_string____VL__string__Vtable(ptr %0, { p entry: %alloca = alloca { ptr }, align 8 store { ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.252, i64 20 }, { ptr, i64 } { ptr @str.253, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.605, i64 20 }, { ptr, i64 } { ptr @str.606, 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.181 + br label %while.hdr.277 -while.hdr.181: ; preds = %fv.merge, %entry +while.hdr.277: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.182, label %while.exit.183 + br i1 %icmp, label %while.body.278, label %while.exit.279 -while.body.182: ; preds = %while.hdr.181 +while.body.278: ; preds = %while.hdr.277 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.184, label %if.merge.185 + br i1 %icmpN, label %if.then.280, label %if.merge.281 -while.exit.183: ; preds = %while.hdr.181 +while.exit.279: ; preds = %while.hdr.277 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.254, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 1 }) ret { ptr, i64 } %callN -if.then.184: ; preds = %while.body.182 +if.then.280: ; preds = %while.body.278 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.255, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.185 + br label %if.merge.281 -if.merge.185: ; preds = %if.then.184, %while.body.182 +if.merge.281: ; preds = %if.then.280, %while.body.278 %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.257, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.610, 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.258, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, 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 @@ -3481,18 +6418,291 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.181 + br label %while.hdr.277 -fv.default: ; preds = %if.merge.185 +fv.default: ; preds = %if.merge.281 br label %fv.merge -fv.case: ; preds = %if.merge.185 +fv.case: ; preds = %if.merge.281 %fv.field = extractvalue { ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge } +; 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.617, 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.612, 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.289, label %if.merge.290 + +if.then.289: ; 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.619, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.618, 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.290 + +if.merge.290: ; preds = %if.then.289, %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.624, 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.620, 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.291, label %if.merge.292 + +if.then.291: ; 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.626, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.625, 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.292 + +if.merge.292: ; preds = %if.then.291, %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.634, 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.627, 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.293: ; 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.636, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.635, 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.294 + +if.merge.294: ; preds = %if.then.293, %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.293, label %if.merge.294 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.645, 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.637, 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.295, label %if.merge.296 + +if.then.295: ; 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.647, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.646, 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.296 + +if.merge.296: ; preds = %if.then.295, %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.654, 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.648, 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.297, label %if.merge.298 + +if.then.297: ; 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.656, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.655, 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.298 + +if.merge.298: ; preds = %if.then.297, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -3500,33 +6710,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.259, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.657, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.190 + br label %while.hdr.307 -while.hdr.190: ; preds = %if.merge.194, %entry +while.hdr.307: ; preds = %if.merge.311, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.191, label %while.exit.192 + br i1 %icmp, label %while.body.308, label %while.exit.309 -while.body.191: ; preds = %while.hdr.190 +while.body.308: ; preds = %while.hdr.307 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.193, label %if.merge.194 + br i1 %icmpN, label %if.then.310, label %if.merge.311 -while.exit.192: ; preds = %while.hdr.190 +while.exit.309: ; preds = %while.hdr.307 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.260, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.658, i64 1 }) ret { ptr, i64 } %call -if.then.193: ; preds = %while.body.191 +if.then.310: ; preds = %while.body.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.261, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.659, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.194 + br label %if.merge.311 -if.merge.194: ; preds = %if.then.193, %while.body.191 +if.merge.311: ; preds = %if.then.310, %while.body.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3540,7 +6750,211 @@ if.merge.194: ; preds = %if.then.193, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.190 + br label %while.hdr.307 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.660, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.312 + +while.hdr.312: ; preds = %if.merge.316, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.313, label %while.exit.314 + +while.body.313: ; preds = %while.hdr.312 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.315, label %if.merge.316 + +while.exit.314: ; preds = %while.hdr.312 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.661, i64 1 }) + ret { ptr, i64 } %call + +if.then.315: ; preds = %while.body.313 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.662, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.316 + +if.merge.316: ; preds = %if.then.315, %while.body.313 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.312 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.663, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.317 + +while.hdr.317: ; preds = %if.merge.321, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.318, label %while.exit.319 + +while.body.318: ; preds = %while.hdr.317 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.320, label %if.merge.321 + +while.exit.319: ; preds = %while.hdr.317 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.664, i64 1 }) + ret { ptr, i64 } %call + +if.then.320: ; preds = %while.body.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.665, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.321 + +if.merge.321: ; preds = %if.then.320, %while.body.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.317 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.666, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.322 + +while.hdr.322: ; preds = %if.merge.326, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.323, label %while.exit.324 + +while.body.323: ; preds = %while.hdr.322 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.325, label %if.merge.326 + +while.exit.324: ; preds = %while.hdr.322 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.667, i64 1 }) + ret { ptr, i64 } %call + +if.then.325: ; preds = %while.body.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.668, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.326 + +if.merge.326: ; preds = %if.then.325, %while.body.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.322 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.669, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.327 + +while.hdr.327: ; preds = %if.merge.331, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.328, label %while.exit.329 + +while.body.328: ; preds = %while.hdr.327 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.330, label %if.merge.331 + +while.exit.329: ; preds = %while.hdr.327 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.670, i64 1 }) + ret { ptr, i64 } %call + +if.then.330: ; preds = %while.body.328 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.671, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.331 + +if.merge.331: ; preds = %if.then.330, %while.body.328 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.327 } ; Function Attrs: nounwind @@ -3551,33 +6965,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.262, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.672, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.195 + br label %while.hdr.332 -while.hdr.195: ; preds = %if.merge.199, %entry +while.hdr.332: ; preds = %if.merge.336, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.196, label %while.exit.197 + br i1 %icmp, label %while.body.333, label %while.exit.334 -while.body.196: ; preds = %while.hdr.195 +while.body.333: ; preds = %while.hdr.332 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.198, label %if.merge.199 + br i1 %icmpN, label %if.then.335, label %if.merge.336 -while.exit.197: ; preds = %while.hdr.195 +while.exit.334: ; preds = %while.hdr.332 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.263, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.673, i64 1 }) ret { ptr, i64 } %call -if.then.198: ; preds = %while.body.196 +if.then.335: ; preds = %while.body.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.264, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.674, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.199 + br label %if.merge.336 -if.merge.199: ; preds = %if.then.198, %while.body.196 +if.merge.336: ; preds = %if.then.335, %while.body.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3593,7 +7007,7 @@ if.merge.199: ; preds = %if.then.198, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.195 + br label %while.hdr.332 } ; Function Attrs: nounwind @@ -3603,35 +7017,35 @@ entry: %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.265, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.675, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.204 + br label %while.hdr.344 -while.hdr.204: ; preds = %if.merge.208, %entry +while.hdr.344: ; preds = %if.merge.348, %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.205, label %while.exit.206 + br i1 %icmp, label %while.body.345, label %while.exit.346 -while.body.205: ; preds = %while.hdr.204 +while.body.345: ; preds = %while.hdr.344 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.207, label %if.merge.208 + br i1 %icmpN, label %if.then.347, label %if.merge.348 -while.exit.206: ; preds = %while.hdr.204 +while.exit.346: ; preds = %while.hdr.344 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.266, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.676, i64 1 }) ret { ptr, i64 } %call -if.then.207: ; preds = %while.body.205 +if.then.347: ; preds = %while.body.345 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.267, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.677, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.208 + br label %if.merge.348 -if.merge.208: ; preds = %if.then.207, %while.body.205 +if.merge.348: ; preds = %if.then.347, %while.body.345 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3647,7 +7061,167 @@ if.merge.208: ; preds = %if.then.207, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.204 + br label %while.hdr.344 +} + +; 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.678, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.349 + +while.hdr.349: ; preds = %if.merge.353, %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.350, label %while.exit.351 + +while.body.350: ; preds = %while.hdr.349 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.352, label %if.merge.353 + +while.exit.351: ; preds = %while.hdr.349 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.679, i64 1 }) + ret { ptr, i64 } %call + +if.then.352: ; preds = %while.body.350 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.680, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.353 + +if.merge.353: ; preds = %if.then.352, %while.body.350 + %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.349 +} + +; 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.681, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.354 + +while.hdr.354: ; preds = %if.merge.358, %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.355, label %while.exit.356 + +while.body.355: ; preds = %while.hdr.354 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.357, label %if.merge.358 + +while.exit.356: ; preds = %while.hdr.354 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.682, i64 1 }) + ret { ptr, i64 } %call + +if.then.357: ; preds = %while.body.355 + %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.358 + +if.merge.358: ; preds = %if.then.357, %while.body.355 + %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 76, 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.354 +} + +; 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.684, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.359 + +while.hdr.359: ; preds = %if.merge.363, %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.360, label %while.exit.361 + +while.body.360: ; preds = %while.hdr.359 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.362, label %if.merge.363 + +while.exit.361: ; preds = %while.hdr.359 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.685, i64 1 }) + ret { ptr, i64 } %call + +if.then.362: ; preds = %while.body.360 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.686, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.363 + +if.merge.363: ; preds = %if.then.362, %while.body.360 + %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 78, 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.359 } ; Function Attrs: nounwind @@ -3657,35 +7231,35 @@ entry: %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.268, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.687, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.364 -while.hdr.209: ; preds = %if.merge.213, %entry +while.hdr.364: ; preds = %if.merge.368, %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.210, label %while.exit.211 + br i1 %icmp, label %while.body.365, label %while.exit.366 -while.body.210: ; preds = %while.hdr.209 +while.body.365: ; preds = %while.hdr.364 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.212, label %if.merge.213 + br i1 %icmpN, label %if.then.367, label %if.merge.368 -while.exit.211: ; preds = %while.hdr.209 +while.exit.366: ; preds = %while.hdr.364 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.269, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.688, i64 1 }) ret { ptr, i64 } %call -if.then.212: ; preds = %while.body.210 +if.then.367: ; preds = %while.body.365 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.270, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.689, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.213 + br label %if.merge.368 -if.merge.213: ; preds = %if.then.212, %while.body.210 +if.merge.368: ; preds = %if.then.367, %while.body.365 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3701,7 +7275,7 @@ if.merge.213: ; preds = %if.then.212, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.364 } ; Function Attrs: nounwind @@ -3715,20 +7289,20 @@ entry: 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.241, label %if.else.242 + br i1 %icmp, label %if.then.409, label %if.else.410 -if.then.241: ; preds = %entry - br label %if.merge.243 +if.then.409: ; preds = %entry + br label %if.merge.411 -if.else.242: ; preds = %entry +if.else.410: ; 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.273, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.272, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.243 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.692, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.691, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.411 -if.merge.243: ; preds = %if.else.242, %if.then.241 - %bp = phi { ptr, i64 } [ { ptr @str.271, i64 4 }, %if.then.241 ], [ %callN, %if.else.242 ] +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.690, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] ret { ptr, i64 } %bp } @@ -3743,20 +7317,20 @@ entry: 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.257, label %if.else.258 + br i1 %icmp, label %if.then.425, label %if.else.426 -if.then.257: ; preds = %entry - br label %if.merge.259 +if.then.425: ; preds = %entry + br label %if.merge.427 -if.else.258: ; preds = %entry +if.else.426: ; 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.276, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.275, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.259 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.695, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.694, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.427 -if.merge.259: ; preds = %if.else.258, %if.then.257 - %bp = phi { ptr, i64 } [ { ptr @str.274, i64 4 }, %if.then.257 ], [ %callN, %if.else.258 ] +if.merge.427: ; preds = %if.else.426, %if.then.425 + %bp = phi { ptr, i64 } [ { ptr @str.693, i64 4 }, %if.then.425 ], [ %callN, %if.else.426 ] ret { ptr, i64 } %bp } @@ -3771,20 +7345,20 @@ entry: 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.260, label %if.else.261 + br i1 %icmp, label %if.then.428, label %if.else.429 -if.then.260: ; preds = %entry - br label %if.merge.262 +if.then.428: ; preds = %entry + br label %if.merge.430 -if.else.261: ; preds = %entry +if.else.429: ; 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.279, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.278, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.262 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.698, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.697, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.430 -if.merge.262: ; preds = %if.else.261, %if.then.260 - %bp = phi { ptr, i64 } [ { ptr @str.277, i64 4 }, %if.then.260 ], [ %callN, %if.else.261 ] +if.merge.430: ; preds = %if.else.429, %if.then.428 + %bp = phi { ptr, i64 } [ { ptr @str.696, i64 4 }, %if.then.428 ], [ %callN, %if.else.429 ] ret { ptr, i64 } %bp } @@ -3799,20 +7373,20 @@ entry: 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.263, label %if.else.264 + br i1 %icmp, label %if.then.431, label %if.else.432 -if.then.263: ; preds = %entry - br label %if.merge.265 +if.then.431: ; preds = %entry + br label %if.merge.433 -if.else.264: ; preds = %entry +if.else.432: ; 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.282, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.281, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.265 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.701, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.700, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.433 -if.merge.265: ; preds = %if.else.264, %if.then.263 - %bp = phi { ptr, i64 } [ { ptr @str.280, i64 4 }, %if.then.263 ], [ %callN, %if.else.264 ] +if.merge.433: ; preds = %if.else.432, %if.then.431 + %bp = phi { ptr, i64 } [ { ptr @str.699, i64 4 }, %if.then.431 ], [ %callN, %if.else.432 ] ret { ptr, i64 } %bp } @@ -3827,20 +7401,20 @@ entry: 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.266, label %if.else.267 + br i1 %icmp, label %if.then.434, label %if.else.435 -if.then.266: ; preds = %entry - br label %if.merge.268 +if.then.434: ; preds = %entry + br label %if.merge.436 -if.else.267: ; preds = %entry +if.else.435: ; 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.285, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.284, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.268 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.704, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.436 -if.merge.268: ; preds = %if.else.267, %if.then.266 - %bp = phi { ptr, i64 } [ { ptr @str.283, i64 4 }, %if.then.266 ], [ %callN, %if.else.267 ] +if.merge.436: ; preds = %if.else.435, %if.then.434 + %bp = phi { ptr, i64 } [ { ptr @str.702, i64 4 }, %if.then.434 ], [ %callN, %if.else.435 ] ret { ptr, i64 } %bp } @@ -3854,20 +7428,20 @@ entry: 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.269, label %if.else.270 + br i1 %icmp, label %if.then.437, label %if.else.438 -if.then.269: ; preds = %entry - br label %if.merge.271 +if.then.437: ; preds = %entry + br label %if.merge.439 -if.else.270: ; preds = %entry +if.else.438: ; 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.288, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.287, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.271 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.707, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.706, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.439 -if.merge.271: ; preds = %if.else.270, %if.then.269 - %bp = phi { ptr, i64 } [ { ptr @str.286, i64 4 }, %if.then.269 ], [ %callN, %if.else.270 ] +if.merge.439: ; preds = %if.else.438, %if.then.437 + %bp = phi { ptr, i64 } [ { ptr @str.705, i64 4 }, %if.then.437 ], [ %callN, %if.else.438 ] ret { ptr, i64 } %bp } @@ -3882,20 +7456,20 @@ entry: 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.272, label %if.else.273 + br i1 %icmp, label %if.then.440, label %if.else.441 -if.then.272: ; preds = %entry - br label %if.merge.274 +if.then.440: ; preds = %entry + br label %if.merge.442 -if.else.273: ; preds = %entry +if.else.441: ; 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.291, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.290, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.274 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.709, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.442 -if.merge.274: ; preds = %if.else.273, %if.then.272 - %bp = phi { ptr, i64 } [ { ptr @str.289, i64 4 }, %if.then.272 ], [ %callN, %if.else.273 ] +if.merge.442: ; preds = %if.else.441, %if.then.440 + %bp = phi { ptr, i64 } [ { ptr @str.708, i64 4 }, %if.then.440 ], [ %callN, %if.else.441 ] ret { ptr, i64 } %bp } @@ -3910,25 +7484,25 @@ entry: 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.275, label %if.else.276 + br i1 %icmp, label %if.then.443, label %if.else.444 -if.then.275: ; preds = %entry - br label %if.merge.277 +if.then.443: ; preds = %entry + br label %if.merge.445 -if.else.276: ; preds = %entry +if.else.444: ; 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.294, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.293, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.277 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.712, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.445 -if.merge.277: ; preds = %if.else.276, %if.then.275 - %bp = phi { ptr, i64 } [ { ptr @str.292, i64 4 }, %if.then.275 ], [ %callN, %if.else.276 ] +if.merge.445: ; preds = %if.else.444, %if.then.443 + %bp = phi { ptr, i64 } [ { ptr @str.711, i64 4 }, %if.then.443 ], [ %callN, %if.else.444 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %1) #0 { +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 @@ -3938,328 +7512,20 @@ entry: 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.278, label %if.else.279 + br i1 %icmp, label %if.then.446, label %if.else.447 -if.then.278: ; preds = %entry - br label %if.merge.280 +if.then.446: ; preds = %entry + br label %if.merge.448 -if.else.279: ; preds = %entry +if.else.447: ; 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.297, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.296, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.280 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.715, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.448 -if.merge.280: ; preds = %if.else.279, %if.then.278 - %bp = phi { ptr, i64 } [ { ptr @str.295, i64 4 }, %if.then.278 ], [ %callN, %if.else.279 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_StrCell(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.281, label %if.else.282 - -if.then.281: ; preds = %entry - br label %if.merge.283 - -if.else.282: ; 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.300, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.299, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.283 - -if.merge.283: ; preds = %if.else.282, %if.then.281 - %bp = phi { ptr, i64 } [ { ptr @str.298, i64 4 }, %if.then.281 ], [ %callN, %if.else.282 ] - 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.284, label %if.else.285 - -if.then.284: ; preds = %entry - br label %if.merge.286 - -if.else.285: ; 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.303, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.302, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.286 - -if.merge.286: ; preds = %if.else.285, %if.then.284 - %bp = phi { ptr, i64 } [ { ptr @str.301, i64 4 }, %if.then.284 ], [ %callN, %if.else.285 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.287, label %if.else.288 - -if.then.287: ; preds = %entry - br label %if.merge.289 - -if.else.288: ; 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.306, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.305, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.289 - -if.merge.289: ; preds = %if.else.288, %if.then.287 - %bp = phi { ptr, i64 } [ { ptr @str.304, i64 4 }, %if.then.287 ], [ %callN, %if.else.288 ] - 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.290, label %if.else.291 - -if.then.290: ; preds = %entry - br label %if.merge.292 - -if.else.291: ; 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.309, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.308, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.292 - -if.merge.292: ; preds = %if.else.291, %if.then.290 - %bp = phi { ptr, i64 } [ { ptr @str.307, i64 4 }, %if.then.290 ], [ %callN, %if.else.291 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_VL__s64(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.293, label %if.else.294 - -if.then.293: ; preds = %entry - br label %if.merge.295 - -if.else.294: ; 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.312, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.311, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.295 - -if.merge.295: ; preds = %if.else.294, %if.then.293 - %bp = phi { ptr, i64 } [ { ptr @str.310, i64 4 }, %if.then.293 ], [ %callN, %if.else.294 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(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.296, label %if.else.297 - -if.then.296: ; preds = %entry - br label %if.merge.298 - -if.else.297: ; 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.315, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.314, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.298 - -if.merge.298: ; preds = %if.else.297, %if.then.296 - %bp = phi { ptr, i64 } [ { ptr @str.313, i64 4 }, %if.then.296 ], [ %callN, %if.else.297 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(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.299, label %if.else.300 - -if.then.299: ; preds = %entry - br label %if.merge.301 - -if.else.300: ; 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.318, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.317, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.301 - -if.merge.301: ; preds = %if.else.300, %if.then.299 - %bp = phi { ptr, i64 } [ { ptr @str.316, i64 4 }, %if.then.299 ], [ %callN, %if.else.300 ] - 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.302, label %if.else.303 - -if.then.302: ; preds = %entry - br label %if.merge.304 - -if.else.303: ; 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.321, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.320, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.304 - -if.merge.304: ; preds = %if.else.303, %if.then.302 - %bp = phi { ptr, i64 } [ { ptr @str.319, i64 4 }, %if.then.302 ], [ %callN, %if.else.303 ] - 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.305, label %if.else.306 - -if.then.305: ; preds = %entry - br label %if.merge.307 - -if.else.306: ; 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.324, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.323, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.307 - -if.merge.307: ; preds = %if.else.306, %if.then.305 - %bp = phi { ptr, i64 } [ { ptr @str.322, i64 4 }, %if.then.305 ], [ %callN, %if.else.306 ] - 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.308, label %if.else.309 - -if.then.308: ; preds = %entry - br label %if.merge.310 - -if.else.309: ; 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.327, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.326, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.310 - -if.merge.310: ; preds = %if.else.309, %if.then.308 - %bp = phi { ptr, i64 } [ { ptr @str.325, i64 4 }, %if.then.308 ], [ %callN, %if.else.309 ] - 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.311, label %if.else.312 - -if.then.311: ; preds = %entry - br label %if.merge.313 - -if.else.312: ; 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.330, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.329, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.313 - -if.merge.313: ; preds = %if.else.312, %if.then.311 - %bp = phi { ptr, i64 } [ { ptr @str.328, i64 4 }, %if.then.311 ], [ %callN, %if.else.312 ] +if.merge.448: ; preds = %if.else.447, %if.then.446 + %bp = phi { ptr, i64 } [ { ptr @str.714, i64 4 }, %if.then.446 ], [ %callN, %if.else.447 ] ret { ptr, i64 } %bp } @@ -4274,20 +7540,690 @@ entry: 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.314, label %if.else.315 + br i1 %icmp, label %if.then.449, label %if.else.450 -if.then.314: ; preds = %entry - br label %if.merge.316 +if.then.449: ; preds = %entry + br label %if.merge.451 -if.else.315: ; preds = %entry +if.else.450: ; 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.333, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.332, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.316 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.451 -if.merge.316: ; preds = %if.else.315, %if.then.314 - %bp = phi { ptr, i64 } [ { ptr @str.331, i64 4 }, %if.then.314 ], [ %callN, %if.else.315 ] +if.merge.451: ; preds = %if.else.450, %if.then.449 + %bp = phi { ptr, i64 } [ { ptr @str.717, i64 4 }, %if.then.449 ], [ %callN, %if.else.450 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.452, label %if.else.453 + +if.then.452: ; preds = %entry + br label %if.merge.454 + +if.else.453: ; 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.722, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.721, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.454 + +if.merge.454: ; preds = %if.else.453, %if.then.452 + %bp = phi { ptr, i64 } [ { ptr @str.720, i64 4 }, %if.then.452 ], [ %callN, %if.else.453 ] + 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.455, label %if.else.456 + +if.then.455: ; preds = %entry + br label %if.merge.457 + +if.else.456: ; 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.725, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.457 + +if.merge.457: ; preds = %if.else.456, %if.then.455 + %bp = phi { ptr, i64 } [ { ptr @str.723, i64 4 }, %if.then.455 ], [ %callN, %if.else.456 ] + 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.458, label %if.else.459 + +if.then.458: ; preds = %entry + br label %if.merge.460 + +if.else.459: ; 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.728, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.727, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.460 + +if.merge.460: ; preds = %if.else.459, %if.then.458 + %bp = phi { ptr, i64 } [ { ptr @str.726, i64 4 }, %if.then.458 ], [ %callN, %if.else.459 ] + 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.461, label %if.else.462 + +if.then.461: ; preds = %entry + br label %if.merge.463 + +if.else.462: ; 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.731, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.730, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.463 + +if.merge.463: ; preds = %if.else.462, %if.then.461 + %bp = phi { ptr, i64 } [ { ptr @str.729, i64 4 }, %if.then.461 ], [ %callN, %if.else.462 ] + 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.464, label %if.else.465 + +if.then.464: ; preds = %entry + br label %if.merge.466 + +if.else.465: ; 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.734, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.733, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.466 + +if.merge.466: ; preds = %if.else.465, %if.then.464 + %bp = phi { ptr, i64 } [ { ptr @str.732, i64 4 }, %if.then.464 ], [ %callN, %if.else.465 ] + 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.467, label %if.else.468 + +if.then.467: ; preds = %entry + br label %if.merge.469 + +if.else.468: ; 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.737, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.736, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.469 + +if.merge.469: ; preds = %if.else.468, %if.then.467 + %bp = phi { ptr, i64 } [ { ptr @str.735, i64 4 }, %if.then.467 ], [ %callN, %if.else.468 ] + 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.470, label %if.else.471 + +if.then.470: ; preds = %entry + br label %if.merge.472 + +if.else.471: ; 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.740, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.739, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.472 + +if.merge.472: ; preds = %if.else.471, %if.then.470 + %bp = phi { ptr, i64 } [ { ptr @str.738, i64 4 }, %if.then.470 ], [ %callN, %if.else.471 ] + 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.473, label %if.else.474 + +if.then.473: ; preds = %entry + br label %if.merge.475 + +if.else.474: ; 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.743, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.742, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.475 + +if.merge.475: ; preds = %if.else.474, %if.then.473 + %bp = phi { ptr, i64 } [ { ptr @str.741, i64 4 }, %if.then.473 ], [ %callN, %if.else.474 ] + 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.476, label %if.else.477 + +if.then.476: ; preds = %entry + br label %if.merge.478 + +if.else.477: ; 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.746, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.745, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.478 + +if.merge.478: ; preds = %if.else.477, %if.then.476 + %bp = phi { ptr, i64 } [ { ptr @str.744, i64 4 }, %if.then.476 ], [ %callN, %if.else.477 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.479, label %if.else.480 + +if.then.479: ; preds = %entry + br label %if.merge.481 + +if.else.480: ; 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.749, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.748, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.481 + +if.merge.481: ; preds = %if.else.480, %if.then.479 + %bp = phi { ptr, i64 } [ { ptr @str.747, i64 4 }, %if.then.479 ], [ %callN, %if.else.480 ] + 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.482, label %if.else.483 + +if.then.482: ; preds = %entry + br label %if.merge.484 + +if.else.483: ; 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.752, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.751, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.484 + +if.merge.484: ; preds = %if.else.483, %if.then.482 + %bp = phi { ptr, i64 } [ { ptr @str.750, i64 4 }, %if.then.482 ], [ %callN, %if.else.483 ] + 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.485, label %if.else.486 + +if.then.485: ; preds = %entry + br label %if.merge.487 + +if.else.486: ; 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.755, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.754, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.487 + +if.merge.487: ; preds = %if.else.486, %if.then.485 + %bp = phi { ptr, i64 } [ { ptr @str.753, i64 4 }, %if.then.485 ], [ %callN, %if.else.486 ] + 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.488, label %if.else.489 + +if.then.488: ; preds = %entry + br label %if.merge.490 + +if.else.489: ; 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.758, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.757, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.490 + +if.merge.490: ; preds = %if.else.489, %if.then.488 + %bp = phi { ptr, i64 } [ { ptr @str.756, i64 4 }, %if.then.488 ], [ %callN, %if.else.489 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_IntCell(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.491, label %if.else.492 + +if.then.491: ; preds = %entry + br label %if.merge.493 + +if.else.492: ; 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.761, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.760, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.493 + +if.merge.493: ; preds = %if.else.492, %if.then.491 + %bp = phi { ptr, i64 } [ { ptr @str.759, i64 4 }, %if.then.491 ], [ %callN, %if.else.492 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_StrCell(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.494, label %if.else.495 + +if.then.494: ; preds = %entry + br label %if.merge.496 + +if.else.495: ; 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.764, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.763, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.496 + +if.merge.496: ; preds = %if.else.495, %if.then.494 + %bp = phi { ptr, i64 } [ { ptr @str.762, i64 4 }, %if.then.494 ], [ %callN, %if.else.495 ] + 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.497, label %if.else.498 + +if.then.497: ; preds = %entry + br label %if.merge.499 + +if.else.498: ; 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.767, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.766, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.499 + +if.merge.499: ; preds = %if.else.498, %if.then.497 + %bp = phi { ptr, i64 } [ { ptr @str.765, i64 4 }, %if.then.497 ], [ %callN, %if.else.498 ] + 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.500, label %if.else.501 + +if.then.500: ; preds = %entry + br label %if.merge.502 + +if.else.501: ; 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.770, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.769, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.502 + +if.merge.502: ; preds = %if.else.501, %if.then.500 + %bp = phi { ptr, i64 } [ { ptr @str.768, i64 4 }, %if.then.500 ], [ %callN, %if.else.501 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_VL__s64(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.503, label %if.else.504 + +if.then.503: ; preds = %entry + br label %if.merge.505 + +if.else.504: ; 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.773, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.772, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.505 + +if.merge.505: ; preds = %if.else.504, %if.then.503 + %bp = phi { ptr, i64 } [ { ptr @str.771, i64 4 }, %if.then.503 ], [ %callN, %if.else.504 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(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.506, label %if.else.507 + +if.then.506: ; preds = %entry + br label %if.merge.508 + +if.else.507: ; 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.776, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.775, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.508 + +if.merge.508: ; preds = %if.else.507, %if.then.506 + %bp = phi { ptr, i64 } [ { ptr @str.774, i64 4 }, %if.then.506 ], [ %callN, %if.else.507 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(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.509, label %if.else.510 + +if.then.509: ; preds = %entry + br label %if.merge.511 + +if.else.510: ; 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.779, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.778, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.511 + +if.merge.511: ; preds = %if.else.510, %if.then.509 + %bp = phi { ptr, i64 } [ { ptr @str.777, i64 4 }, %if.then.509 ], [ %callN, %if.else.510 ] + 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.512, label %if.else.513 + +if.then.512: ; preds = %entry + br label %if.merge.514 + +if.else.513: ; 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.782, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.781, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.514 + +if.merge.514: ; preds = %if.else.513, %if.then.512 + %bp = phi { ptr, i64 } [ { ptr @str.780, i64 4 }, %if.then.512 ], [ %callN, %if.else.513 ] + 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.515, label %if.else.516 + +if.then.515: ; preds = %entry + br label %if.merge.517 + +if.else.516: ; 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.785, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.784, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.517 + +if.merge.517: ; preds = %if.else.516, %if.then.515 + %bp = phi { ptr, i64 } [ { ptr @str.783, i64 4 }, %if.then.515 ], [ %callN, %if.else.516 ] + 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.518, label %if.else.519 + +if.then.518: ; preds = %entry + br label %if.merge.520 + +if.else.519: ; 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.788, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.787, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.520 + +if.merge.520: ; preds = %if.else.519, %if.then.518 + %bp = phi { ptr, i64 } [ { ptr @str.786, i64 4 }, %if.then.518 ], [ %callN, %if.else.519 ] + 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.521, label %if.else.522 + +if.then.521: ; preds = %entry + br label %if.merge.523 + +if.else.522: ; 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.791, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.790, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.523 + +if.merge.523: ; preds = %if.else.522, %if.then.521 + %bp = phi { ptr, i64 } [ { ptr @str.789, i64 4 }, %if.then.521 ], [ %callN, %if.else.522 ] ret { ptr, i64 } %bp } @@ -4302,20 +8238,20 @@ entry: 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.317, label %if.else.318 + br i1 %icmp, label %if.then.524, label %if.else.525 -if.then.317: ; preds = %entry - br label %if.merge.319 +if.then.524: ; preds = %entry + br label %if.merge.526 -if.else.318: ; preds = %entry +if.else.525: ; 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.336, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.335, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.319 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.794, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.793, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.526 -if.merge.319: ; preds = %if.else.318, %if.then.317 - %bp = phi { ptr, i64 } [ { ptr @str.334, i64 4 }, %if.then.317 ], [ %callN, %if.else.318 ] +if.merge.526: ; preds = %if.else.525, %if.then.524 + %bp = phi { ptr, i64 } [ { ptr @str.792, i64 4 }, %if.then.524 ], [ %callN, %if.else.525 ] ret { ptr, i64 } %bp } @@ -4330,20 +8266,20 @@ entry: 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.320, label %if.else.321 + br i1 %icmp, label %if.then.527, label %if.else.528 -if.then.320: ; preds = %entry - br label %if.merge.322 +if.then.527: ; preds = %entry + br label %if.merge.529 -if.else.321: ; preds = %entry +if.else.528: ; 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.339, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.338, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.322 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.797, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.796, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.529 -if.merge.322: ; preds = %if.else.321, %if.then.320 - %bp = phi { ptr, i64 } [ { ptr @str.337, i64 4 }, %if.then.320 ], [ %callN, %if.else.321 ] +if.merge.529: ; preds = %if.else.528, %if.then.527 + %bp = phi { ptr, i64 } [ { ptr @str.795, i64 4 }, %if.then.527 ], [ %callN, %if.else.528 ] ret { ptr, i64 } %bp } @@ -4358,20 +8294,20 @@ entry: 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.323, label %if.else.324 + br i1 %icmp, label %if.then.530, label %if.else.531 -if.then.323: ; preds = %entry - br label %if.merge.325 +if.then.530: ; preds = %entry + br label %if.merge.532 -if.else.324: ; preds = %entry +if.else.531: ; 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.342, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.341, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.325 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.800, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.799, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.532 -if.merge.325: ; preds = %if.else.324, %if.then.323 - %bp = phi { ptr, i64 } [ { ptr @str.340, i64 4 }, %if.then.323 ], [ %callN, %if.else.324 ] +if.merge.532: ; preds = %if.else.531, %if.then.530 + %bp = phi { ptr, i64 } [ { ptr @str.798, i64 4 }, %if.then.530 ], [ %callN, %if.else.531 ] ret { ptr, i64 } %bp } @@ -4386,19 +8322,115 @@ entry: 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.326, label %if.else.327 + br i1 %icmp, label %if.then.533, label %if.else.534 -if.then.326: ; preds = %entry - br label %if.merge.328 +if.then.533: ; preds = %entry + br label %if.merge.535 -if.else.327: ; preds = %entry +if.else.534: ; 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.345, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.344, i64 21 }, { ptr, i64 } %callN) - br label %if.merge.328 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.803, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.802, i64 21 }, { ptr, i64 } %callN) + br label %if.merge.535 -if.merge.328: ; preds = %if.else.327, %if.then.326 - %bp = phi { ptr, i64 } [ { ptr @str.343, i64 4 }, %if.then.326 ], [ %callN, %if.else.327 ] +if.merge.535: ; preds = %if.else.534, %if.then.533 + %bp = phi { ptr, i64 } [ { ptr @str.801, i64 4 }, %if.then.533 ], [ %callN, %if.else.534 ] 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.542, label %if.merge.543 + +if.then.542: ; preds = %entry + ret { ptr, i64 } { ptr @str.804, i64 4 } + +if.merge.543: ; 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 39, 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.544, label %if.merge.545 + +if.then.544: ; preds = %entry + ret { ptr, i64 } { ptr @str.805, i64 4 } + +if.merge.545: ; 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_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.546, label %if.merge.547 + +if.then.546: ; preds = %entry + ret { ptr, i64 } { ptr @str.806, i64 4 } + +if.merge.547: ; 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 45, 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.548, label %if.merge.549 + +if.then.548: ; preds = %entry + ret { ptr, i64 } { ptr @str.807, i64 4 } + +if.merge.549: ; 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 88, 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/0414-protocols-generic-struct-protocol-erase.ir b/examples/expected/0414-protocols-generic-struct-protocol-erase.ir index 66bf153..2ffd365 100644 --- a/examples/expected/0414-protocols-generic-struct-protocol-erase.ir +++ b/examples/expected/0414-protocols-generic-struct-protocol-erase.ir @@ -3,341 +3,701 @@ @__VL__s64__IntCell__vtable = internal constant { ptr } { ptr @__thunk_IntCell_VL__s64_get } @__VL__s64__Combined__s64__s64__vtable = internal constant { ptr } { ptr @__thunk_Combined__s64__s64_VL__s64_get } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [94 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [184 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [8 x i8] c"IntCell\00" -@tn.str.64 = private constant [9 x i8] c"*IntCell\00" -@tn.str.65 = private constant [2 x i8] c"R\00" -@tn.str.66 = private constant [9 x i8] c"Combined\00" -@tn.str.67 = private constant [8 x i8] c"VL__s64\00" -@tn.str.68 = private constant [18 x i8] c"__VL__s64__Vtable\00" -@tn.str.69 = private constant [3 x i8] c"VL\00" -@tn.str.70 = private constant [5 x i8] c"[]VL\00" -@tn.str.71 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.72 = private constant [5 x i8] c"*s64\00" -@tn.str.73 = private constant [7 x i8] c"**void\00" -@tn.str.74 = private constant [6 x i8] c"[]Any\00" -@tn.str.75 = private constant [5 x i8] c"*Any\00" -@tn.str.76 = private constant [7 x i8] c"[1]Any\00" -@tn.str.77 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.78 = private constant [7 x i8] c"*[]Any\00" -@tn.str.79 = private constant [10 x i8] c"(VL__s64)\00" -@tn.str.80 = private constant [19 x i8] c"Combined__s64__s64\00" -@tn.str.81 = private constant [20 x i8] c"*Combined__s64__s64\00" -@tn.str.82 = private constant [10 x i8] c"**IntCell\00" -@tn.str.83 = private constant [19 x i8] c"*__VL__s64__Vtable\00" -@tn.str.84 = private constant [11 x i8] c"*(VL__s64)\00" -@tn.str.85 = private constant [21 x i8] c"**Combined__s64__s64\00" -@tn.str.86 = private constant [9 x i8] c"*VL__s64\00" -@tn.str.87 = private constant [8 x i8] c"*string\00" -@tn.str.88 = private constant [4 x i8] c"*u8\00" -@tn.str.89 = private constant [6 x i8] c"*bool\00" -@tn.str.90 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.91 = private constant [5 x i8] c"*f64\00" -@tn.str.92 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.93 = private constant [11 x i8] c"*Allocator\00" -@tn.str.94 = private constant [9 x i8] c"*Context\00" -@tn.str.95 = private constant [3 x i8] c"*R\00" -@tn.str.96 = private constant [10 x i8] c"*Combined\00" -@tn.str.97 = private constant [4 x i8] c"*VL\00" -@tn.str.98 = private constant [10 x i8] c"*[]string\00" -@tn.str.99 = private constant [6 x i8] c"*[]VL\00" -@tn.str.100 = private constant [6 x i8] c"**GPA\00" -@tn.str.101 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.102 = private constant [8 x i8] c"**Arena\00" -@tn.str.103 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.104 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.105 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.106 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.107 = private constant [6 x i8] c"**s64\00" -@tn.str.108 = private constant [8 x i8] c"***void\00" -@tn.str.109 = private constant [6 x i8] c"**Any\00" -@tn.str.110 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.111 = private constant [8 x i8] c"**[]Any\00" -@tn.str.112 = private constant [11 x i8] c"***IntCell\00" -@tn.str.113 = private constant [20 x i8] c"**__VL__s64__Vtable\00" -@tn.str.114 = private constant [12 x i8] c"**(VL__s64)\00" -@tn.str.115 = private constant [22 x i8] c"***Combined__s64__s64\00" -@tn.str.116 = private constant [10 x i8] c"**VL__s64\00" -@tn.str.117 = private constant [9 x i8] c"**string\00" -@tn.str.118 = private constant [5 x i8] c"**u8\00" -@tn.str.119 = private constant [7 x i8] c"**bool\00" -@__sx_type_names = private constant [94 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 7 }, { ptr, i64 } { ptr @tn.str.64, i64 8 }, { ptr, i64 } { ptr @tn.str.65, i64 1 }, { ptr, i64 } { ptr @tn.str.66, i64 8 }, { ptr, i64 } { ptr @tn.str.67, i64 7 }, { ptr, i64 } { ptr @tn.str.68, i64 17 }, { ptr, i64 } { ptr @tn.str.69, i64 2 }, { ptr, i64 } { ptr @tn.str.70, i64 4 }, { ptr, i64 } { ptr @tn.str.71, i64 12 }, { ptr, i64 } { ptr @tn.str.72, i64 4 }, { ptr, i64 } { ptr @tn.str.73, i64 6 }, { ptr, i64 } { ptr @tn.str.74, i64 5 }, { ptr, i64 } { ptr @tn.str.75, i64 4 }, { ptr, i64 } { ptr @tn.str.76, i64 6 }, { ptr, i64 } { ptr @tn.str.77, i64 7 }, { ptr, i64 } { ptr @tn.str.78, i64 6 }, { ptr, i64 } { ptr @tn.str.79, i64 9 }, { ptr, i64 } { ptr @tn.str.80, i64 18 }, { ptr, i64 } { ptr @tn.str.81, i64 19 }, { ptr, i64 } { ptr @tn.str.82, i64 9 }, { ptr, i64 } { ptr @tn.str.83, i64 18 }, { ptr, i64 } { ptr @tn.str.84, i64 10 }, { ptr, i64 } { ptr @tn.str.85, i64 20 }, { ptr, i64 } { ptr @tn.str.86, i64 8 }, { ptr, i64 } { ptr @tn.str.87, i64 7 }, { ptr, i64 } { ptr @tn.str.88, i64 3 }, { ptr, i64 } { ptr @tn.str.89, i64 5 }, { ptr, i64 } { ptr @tn.str.90, i64 7 }, { ptr, i64 } { ptr @tn.str.91, i64 4 }, { ptr, i64 } { ptr @tn.str.92, i64 16 }, { ptr, i64 } { ptr @tn.str.93, i64 10 }, { ptr, i64 } { ptr @tn.str.94, i64 8 }, { ptr, i64 } { ptr @tn.str.95, i64 2 }, { ptr, i64 } { ptr @tn.str.96, i64 9 }, { ptr, i64 } { ptr @tn.str.97, i64 3 }, { ptr, i64 } { ptr @tn.str.98, i64 9 }, { ptr, i64 } { ptr @tn.str.99, i64 5 }, { ptr, i64 } { ptr @tn.str.100, i64 5 }, { ptr, i64 } { ptr @tn.str.101, i64 12 }, { ptr, i64 } { ptr @tn.str.102, i64 7 }, { ptr, i64 } { ptr @tn.str.103, i64 6 }, { ptr, i64 } { ptr @tn.str.104, i64 10 }, { ptr, i64 } { ptr @tn.str.105, i64 19 }, { ptr, i64 } { ptr @tn.str.106, i64 13 }, { ptr, i64 } { ptr @tn.str.107, i64 5 }, { ptr, i64 } { ptr @tn.str.108, i64 7 }, { ptr, i64 } { ptr @tn.str.109, i64 5 }, { ptr, i64 } { ptr @tn.str.110, i64 8 }, { ptr, i64 } { ptr @tn.str.111, i64 7 }, { ptr, i64 } { ptr @tn.str.112, i64 10 }, { ptr, i64 } { ptr @tn.str.113, i64 19 }, { ptr, i64 } { ptr @tn.str.114, i64 11 }, { ptr, i64 } { ptr @tn.str.115, i64 21 }, { ptr, i64 } { ptr @tn.str.116, i64 9 }, { ptr, i64 } { ptr @tn.str.117, i64 8 }, { ptr, i64 } { ptr @tn.str.118, i64 4 }, { ptr, i64 } { ptr @tn.str.119, i64 6 }] -@str.120 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.121 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.122 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.123 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.124 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.125 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.126 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.127 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.128 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.129 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.133 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.134 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.135 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.136 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.138 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.139 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.140 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.141 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.142 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.144 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.145 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [8 x i8] c"IntCell\00" +@tn.str.237 = private constant [9 x i8] c"*IntCell\00" +@tn.str.238 = private constant [2 x i8] c"R\00" +@tn.str.239 = private constant [9 x i8] c"Combined\00" +@tn.str.240 = private constant [8 x i8] c"VL__s64\00" +@tn.str.241 = private constant [18 x i8] c"__VL__s64__Vtable\00" +@tn.str.242 = private constant [3 x i8] c"VL\00" +@tn.str.243 = private constant [5 x i8] c"[]VL\00" +@tn.str.244 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.245 = private constant [7 x i8] c"**void\00" +@tn.str.246 = private constant [6 x i8] c"[]Any\00" +@tn.str.247 = private constant [5 x i8] c"*Any\00" +@tn.str.248 = private constant [7 x i8] c"[1]Any\00" +@tn.str.249 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.250 = private constant [7 x i8] c"*[]Any\00" +@tn.str.251 = private constant [10 x i8] c"(VL__s64)\00" +@tn.str.252 = private constant [19 x i8] c"Combined__s64__s64\00" +@tn.str.253 = private constant [20 x i8] c"*Combined__s64__s64\00" +@tn.str.254 = private constant [10 x i8] c"**IntCell\00" +@tn.str.255 = private constant [19 x i8] c"*__VL__s64__Vtable\00" +@tn.str.256 = private constant [11 x i8] c"*(VL__s64)\00" +@tn.str.257 = private constant [21 x i8] c"**Combined__s64__s64\00" +@tn.str.258 = private constant [9 x i8] c"*VL__s64\00" +@tn.str.259 = private constant [8 x i8] c"*string\00" +@tn.str.260 = private constant [6 x i8] c"*bool\00" +@tn.str.261 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.262 = private constant [5 x i8] c"*f64\00" +@tn.str.263 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.264 = private constant [11 x i8] c"*Allocator\00" +@tn.str.265 = private constant [9 x i8] c"*Context\00" +@tn.str.266 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.267 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.268 = private constant [8 x i8] c"*Member\00" +@tn.str.269 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.270 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.271 = private constant [9 x i8] c"*Command\00" +@tn.str.272 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.273 = private constant [3 x i8] c"*R\00" +@tn.str.274 = private constant [10 x i8] c"*Combined\00" +@tn.str.275 = private constant [4 x i8] c"*VL\00" +@tn.str.276 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.277 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.278 = private constant [7 x i8] c"*Value\00" +@tn.str.279 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.280 = private constant [14 x i8] c"*Architecture\00" +@tn.str.281 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.282 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.283 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.284 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.285 = private constant [10 x i8] c"*[]string\00" +@tn.str.286 = private constant [6 x i8] c"*[]u8\00" +@tn.str.287 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.288 = private constant [11 x i8] c"*[]Command\00" +@tn.str.289 = private constant [6 x i8] c"*[]VL\00" +@tn.str.290 = private constant [6 x i8] c"**GPA\00" +@tn.str.291 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.292 = private constant [8 x i8] c"**Arena\00" +@tn.str.293 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.294 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.295 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.296 = private constant [7 x i8] c"**File\00" +@tn.str.297 = private constant [5 x i8] c"**u8\00" +@tn.str.298 = private constant [6 x i8] c"**s32\00" +@tn.str.299 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.300 = private constant [6 x i8] c"**u32\00" +@tn.str.301 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.302 = private constant [8 x i8] c"**Array\00" +@tn.str.303 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.304 = private constant [9 x i8] c"**Object\00" +@tn.str.305 = private constant [7 x i8] c"**Sink\00" +@tn.str.306 = private constant [9 x i8] c"**Parser\00" +@tn.str.307 = private constant [6 x i8] c"**s64\00" +@tn.str.308 = private constant [9 x i8] c"**Parsed\00" +@tn.str.309 = private constant [7 x i8] c"**Diag\00" +@tn.str.310 = private constant [9 x i8] c"**Sha256\00" +@tn.str.311 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.312 = private constant [8 x i8] c"***void\00" +@tn.str.313 = private constant [6 x i8] c"**Any\00" +@tn.str.314 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.315 = private constant [8 x i8] c"**[]Any\00" +@tn.str.316 = private constant [11 x i8] c"***IntCell\00" +@tn.str.317 = private constant [20 x i8] c"**__VL__s64__Vtable\00" +@tn.str.318 = private constant [12 x i8] c"**(VL__s64)\00" +@tn.str.319 = private constant [22 x i8] c"***Combined__s64__s64\00" +@tn.str.320 = private constant [10 x i8] c"**VL__s64\00" +@tn.str.321 = private constant [9 x i8] c"**string\00" +@tn.str.322 = private constant [7 x i8] c"**bool\00" +@tn.str.323 = private constant [7 x i8] c"*?File\00" +@tn.str.324 = private constant [9 x i8] c"*?string\00" +@tn.str.325 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.326 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [184 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 7 }, { ptr, i64 } { ptr @tn.str.237, i64 8 }, { ptr, i64 } { ptr @tn.str.238, i64 1 }, { ptr, i64 } { ptr @tn.str.239, i64 8 }, { ptr, i64 } { ptr @tn.str.240, i64 7 }, { ptr, i64 } { ptr @tn.str.241, i64 17 }, { ptr, i64 } { ptr @tn.str.242, i64 2 }, { ptr, i64 } { ptr @tn.str.243, i64 4 }, { ptr, i64 } { ptr @tn.str.244, i64 12 }, { ptr, i64 } { ptr @tn.str.245, i64 6 }, { ptr, i64 } { ptr @tn.str.246, i64 5 }, { ptr, i64 } { ptr @tn.str.247, i64 4 }, { ptr, i64 } { ptr @tn.str.248, i64 6 }, { ptr, i64 } { ptr @tn.str.249, i64 7 }, { ptr, i64 } { ptr @tn.str.250, i64 6 }, { ptr, i64 } { ptr @tn.str.251, i64 9 }, { ptr, i64 } { ptr @tn.str.252, i64 18 }, { ptr, i64 } { ptr @tn.str.253, i64 19 }, { ptr, i64 } { ptr @tn.str.254, i64 9 }, { ptr, i64 } { ptr @tn.str.255, i64 18 }, { ptr, i64 } { ptr @tn.str.256, i64 10 }, { ptr, i64 } { ptr @tn.str.257, i64 20 }, { ptr, i64 } { ptr @tn.str.258, i64 8 }, { ptr, i64 } { ptr @tn.str.259, i64 7 }, { ptr, i64 } { ptr @tn.str.260, i64 5 }, { ptr, i64 } { ptr @tn.str.261, i64 7 }, { ptr, i64 } { ptr @tn.str.262, i64 4 }, { ptr, i64 } { ptr @tn.str.263, i64 16 }, { ptr, i64 } { ptr @tn.str.264, i64 10 }, { ptr, i64 } { ptr @tn.str.265, i64 8 }, { ptr, i64 } { ptr @tn.str.266, i64 11 }, { ptr, i64 } { ptr @tn.str.267, i64 14 }, { ptr, i64 } { ptr @tn.str.268, i64 7 }, { ptr, i64 } { ptr @tn.str.269, i64 13 }, { ptr, i64 } { ptr @tn.str.270, i64 9 }, { ptr, i64 } { ptr @tn.str.271, i64 8 }, { ptr, i64 } { ptr @tn.str.272, i64 10 }, { ptr, i64 } { ptr @tn.str.273, i64 2 }, { ptr, i64 } { ptr @tn.str.274, i64 9 }, { ptr, i64 } { ptr @tn.str.275, i64 3 }, { ptr, i64 } { ptr @tn.str.276, i64 9 }, { ptr, i64 } { ptr @tn.str.277, i64 9 }, { ptr, i64 } { ptr @tn.str.278, i64 6 }, { ptr, i64 } { ptr @tn.str.279, i64 16 }, { ptr, i64 } { ptr @tn.str.280, i64 13 }, { ptr, i64 } { ptr @tn.str.281, i64 14 }, { ptr, i64 } { ptr @tn.str.282, i64 7 }, { ptr, i64 } { ptr @tn.str.283, i64 7 }, { ptr, i64 } { ptr @tn.str.284, i64 8 }, { ptr, i64 } { ptr @tn.str.285, i64 9 }, { ptr, i64 } { ptr @tn.str.286, i64 5 }, { ptr, i64 } { ptr @tn.str.287, i64 11 }, { ptr, i64 } { ptr @tn.str.288, i64 10 }, { ptr, i64 } { ptr @tn.str.289, i64 5 }, { ptr, i64 } { ptr @tn.str.290, i64 5 }, { ptr, i64 } { ptr @tn.str.291, i64 12 }, { ptr, i64 } { ptr @tn.str.292, i64 7 }, { ptr, i64 } { ptr @tn.str.293, i64 6 }, { ptr, i64 } { ptr @tn.str.294, i64 10 }, { ptr, i64 } { ptr @tn.str.295, i64 19 }, { ptr, i64 } { ptr @tn.str.296, i64 6 }, { ptr, i64 } { ptr @tn.str.297, i64 4 }, { ptr, i64 } { ptr @tn.str.298, i64 5 }, { ptr, i64 } { ptr @tn.str.299, i64 10 }, { ptr, i64 } { ptr @tn.str.300, i64 5 }, { ptr, i64 } { ptr @tn.str.301, i64 9 }, { ptr, i64 } { ptr @tn.str.302, i64 7 }, { ptr, i64 } { ptr @tn.str.303, i64 10 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }, { ptr, i64 } { ptr @tn.str.305, i64 6 }, { ptr, i64 } { ptr @tn.str.306, i64 8 }, { ptr, i64 } { ptr @tn.str.307, i64 5 }, { ptr, i64 } { ptr @tn.str.308, i64 8 }, { ptr, i64 } { ptr @tn.str.309, i64 6 }, { ptr, i64 } { ptr @tn.str.310, i64 8 }, { ptr, i64 } { ptr @tn.str.311, i64 13 }, { ptr, i64 } { ptr @tn.str.312, i64 7 }, { ptr, i64 } { ptr @tn.str.313, i64 5 }, { ptr, i64 } { ptr @tn.str.314, i64 8 }, { ptr, i64 } { ptr @tn.str.315, i64 7 }, { ptr, i64 } { ptr @tn.str.316, i64 10 }, { ptr, i64 } { ptr @tn.str.317, i64 19 }, { ptr, i64 } { ptr @tn.str.318, i64 11 }, { ptr, i64 } { ptr @tn.str.319, i64 21 }, { ptr, i64 } { ptr @tn.str.320, i64 9 }, { ptr, i64 } { ptr @tn.str.321, i64 8 }, { ptr, i64 } { ptr @tn.str.322, i64 6 }, { ptr, i64 } { ptr @tn.str.323, i64 6 }, { ptr, i64 } { ptr @tn.str.324, i64 8 }, { ptr, i64 } { ptr @tn.str.325, i64 15 }, { ptr, i64 } { ptr @tn.str.326, i64 8 }] +@str.327 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.328 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.329 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.330 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.331 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.332 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.333 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.334 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.335 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.336 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.337 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.338 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.339 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.340 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.341 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.342 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.343 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.344 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.345 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.346 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.347 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.348 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.349 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.350 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.351 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.353 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.354 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.146 = private constant [5 x i8] c"line\00" -@fld.str.147 = private constant [4 x i8] c"col\00" -@fld.str.148 = 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.146, i64 4 }, { ptr, i64 } { ptr @fld.str.147, i64 3 }, { ptr, i64 } { ptr @fld.str.148, i64 4 }] -@str.149 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.150 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.152 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.153 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.154 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.155 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.156 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.157 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.158 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.159 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.160 = private constant [12 x i8] c"alloc_count\00" -@field_names.161 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.160, i64 11 }] -@str.162 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.163 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.164 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.165 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.166 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.167 = private constant [5 x i8] c"next\00" -@fld.str.168 = private constant [4 x i8] c"cap\00" -@field_names.169 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.167, i64 4 }, { ptr, i64 } { ptr @fld.str.168, i64 3 }] -@str.170 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.171 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.172 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.173 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.174 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.175 = private constant [4 x i8] c"ctx\00" -@fld.str.176 = private constant [6 x i8] c"alloc\00" -@fld.str.177 = private constant [8 x i8] c"dealloc\00" -@field_names.178 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.175, i64 3 }, { ptr, i64 } { ptr @fld.str.176, i64 5 }, { ptr, i64 } { ptr @fld.str.177, i64 7 }] -@str.179 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.180 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.181 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.182 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.183 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.184 = private constant [6 x i8] c"first\00" -@fld.str.185 = private constant [10 x i8] c"end_index\00" -@fld.str.186 = private constant [7 x i8] c"parent\00" -@field_names.187 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.184, i64 5 }, { ptr, i64 } { ptr @fld.str.185, i64 9 }, { ptr, i64 } { ptr @fld.str.186, i64 6 }] -@str.188 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.189 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.190 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.191 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.192 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.193 = private constant [4 x i8] c"buf\00" -@fld.str.194 = private constant [4 x i8] c"len\00" -@fld.str.195 = private constant [4 x i8] c"pos\00" -@field_names.196 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.193, i64 3 }, { ptr, i64 } { ptr @fld.str.194, i64 3 }, { ptr, i64 } { ptr @fld.str.195, i64 3 }] -@str.197 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.198 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.199 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.200 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.201 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.202 = private constant [7 x i8] c"parent\00" -@fld.str.203 = private constant [12 x i8] c"alloc_count\00" -@fld.str.204 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.205 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.206 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.202, i64 6 }, { ptr, i64 } { ptr @fld.str.203, i64 11 }, { ptr, i64 } { ptr @fld.str.204, i64 13 }, { ptr, i64 } { ptr @fld.str.205, i64 17 }] -@str.207 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.208 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.209 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.210 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.211 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.212 = private constant [10 x i8] c"allocator\00" -@fld.str.213 = private constant [5 x i8] c"data\00" -@field_names.214 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.212, i64 9 }, { ptr, i64 } { ptr @fld.str.213, i64 4 }] -@str.215 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.216 = private unnamed_addr constant [8 x i8] c"IntCell\00", align 1 -@str.217 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.218 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.219 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.220 = private constant [2 x i8] c"v\00" -@field_names.221 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.220, i64 1 }] -@str.222 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.223 = private unnamed_addr constant [2 x i8] c"R\00", align 1 -@str.224 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.225 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.226 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.227 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.228 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.229 = private unnamed_addr constant [9 x i8] c"Combined\00", align 1 -@str.230 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.231 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.232 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.233 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.234 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.235 = private unnamed_addr constant [8 x i8] c"VL__s64\00", align 1 -@str.236 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.237 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.238 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.239 = private constant [4 x i8] c"ctx\00" -@fld.str.240 = private constant [9 x i8] c"__vtable\00" -@field_names.241 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.239, i64 3 }, { ptr, i64 } { ptr @fld.str.240, i64 8 }] -@str.242 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.243 = private unnamed_addr constant [18 x i8] c"__VL__s64__Vtable\00", align 1 -@str.244 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.245 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.246 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.247 = private constant [4 x i8] c"get\00" -@field_names.248 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.247, i64 3 }] -@str.249 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.250 = private unnamed_addr constant [3 x i8] c"VL\00", align 1 -@str.251 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.252 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.253 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.254 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.255 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.256 = private unnamed_addr constant [19 x i8] c"Combined__s64__s64\00", align 1 -@str.257 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.258 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.259 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.260 = private constant [8 x i8] c"sources\00" -@fld.str.261 = private constant [6 x i8] c"value\00" -@field_names.262 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.260, i64 7 }, { ptr, i64 } { ptr @fld.str.261, i64 5 }] -@str.263 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.264 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.265 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.266 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.267 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.268 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.269 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.270 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.271 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.272 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.273 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.274 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.275 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.276 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.277 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.278 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.279 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.280 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.281 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.282 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.283 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.284 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.285 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.286 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.287 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.288 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.289 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.290 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.291 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.292 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.293 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.294 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.295 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.296 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.297 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.298 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.299 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.300 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.301 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.302 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.303 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.304 = private unnamed_addr constant [9 x i8] c"*IntCell\00", align 1 -@str.305 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.306 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.307 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.308 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.309 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.310 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.311 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.312 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.313 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.314 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.315 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.316 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.317 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.318 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.319 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.320 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.321 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.322 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.323 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.324 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.325 = private unnamed_addr constant [20 x i8] c"*Combined__s64__s64\00", align 1 -@str.326 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.327 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.328 = private unnamed_addr constant [10 x i8] c"**IntCell\00", align 1 -@str.329 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.330 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.331 = private unnamed_addr constant [19 x i8] c"*__VL__s64__Vtable\00", align 1 -@str.332 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.333 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.334 = private unnamed_addr constant [7 x i8] c"*tuple\00", align 1 -@str.335 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.336 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.337 = private unnamed_addr constant [21 x i8] c"**Combined__s64__s64\00", align 1 -@str.338 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.339 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.340 = private unnamed_addr constant [9 x i8] c"*VL__s64\00", align 1 -@str.341 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.342 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.343 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.344 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.345 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.346 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.347 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.348 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.349 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.350 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.355 = private constant [5 x i8] c"line\00" +@fld.str.356 = private constant [4 x i8] c"col\00" +@fld.str.357 = 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.355, i64 4 }, { ptr, i64 } { ptr @fld.str.356, i64 3 }, { ptr, i64 } { ptr @fld.str.357, i64 4 }] +@str.358 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.359 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.360 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.361 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.362 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.363 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.364 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.365 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.366 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.367 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.368 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.369 = private constant [12 x i8] c"alloc_count\00" +@field_names.370 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.369, i64 11 }] +@str.371 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.372 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.373 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.374 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.375 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.376 = private constant [5 x i8] c"next\00" +@fld.str.377 = private constant [4 x i8] c"cap\00" +@field_names.378 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.376, i64 4 }, { ptr, i64 } { ptr @fld.str.377, i64 3 }] +@str.379 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.380 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.381 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.382 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.383 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.384 = private constant [4 x i8] c"ctx\00" +@fld.str.385 = private constant [6 x i8] c"alloc\00" +@fld.str.386 = private constant [8 x i8] c"dealloc\00" +@field_names.387 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.384, i64 3 }, { ptr, i64 } { ptr @fld.str.385, i64 5 }, { ptr, i64 } { ptr @fld.str.386, i64 7 }] +@str.388 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.389 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.390 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.391 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.392 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.393 = private constant [6 x i8] c"first\00" +@fld.str.394 = private constant [10 x i8] c"end_index\00" +@fld.str.395 = private constant [7 x i8] c"parent\00" +@field_names.396 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.393, i64 5 }, { ptr, i64 } { ptr @fld.str.394, i64 9 }, { ptr, i64 } { ptr @fld.str.395, i64 6 }] +@str.397 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.398 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.399 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.400 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.401 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.402 = private constant [4 x i8] c"buf\00" +@fld.str.403 = private constant [4 x i8] c"len\00" +@fld.str.404 = private constant [4 x i8] c"pos\00" +@field_names.405 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.402, i64 3 }, { ptr, i64 } { ptr @fld.str.403, i64 3 }, { ptr, i64 } { ptr @fld.str.404, i64 3 }] +@str.406 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.407 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.408 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.409 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.410 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.411 = private constant [7 x i8] c"parent\00" +@fld.str.412 = private constant [12 x i8] c"alloc_count\00" +@fld.str.413 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.414 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.415 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.411, i64 6 }, { ptr, i64 } { ptr @fld.str.412, i64 11 }, { ptr, i64 } { ptr @fld.str.413, i64 13 }, { ptr, i64 } { ptr @fld.str.414, i64 17 }] +@str.416 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.417 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.420 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.421 = private constant [10 x i8] c"allocator\00" +@fld.str.422 = private constant [5 x i8] c"data\00" +@field_names.423 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.421, i64 9 }, { ptr, i64 } { ptr @fld.str.422, i64 4 }] +@str.424 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.425 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.426 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.427 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.428 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.429 = private constant [3 x i8] c"fd\00" +@field_names.430 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.429, i64 2 }] +@str.431 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.432 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.433 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.434 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.435 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.436 = private constant [5 x i8] c"file\00" +@fld.str.437 = private constant [5 x i8] c"line\00" +@fld.str.438 = private constant [4 x i8] c"col\00" +@fld.str.439 = private constant [5 x i8] c"func\00" +@fld.str.440 = private constant [10 x i8] c"line_text\00" +@field_names.441 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.436, i64 4 }, { ptr, i64 } { ptr @fld.str.437, i64 4 }, { ptr, i64 } { ptr @fld.str.438, i64 3 }, { ptr, i64 } { ptr @fld.str.439, i64 4 }, { ptr, i64 } { ptr @fld.str.440, i64 9 }] +@str.442 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.443 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.444 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.445 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.446 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.447 = private constant [10 x i8] c"exit_code\00" +@fld.str.448 = private constant [7 x i8] c"stdout\00" +@field_names.449 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.447, i64 9 }, { ptr, i64 } { ptr @fld.str.448, i64 6 }] +@str.450 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.451 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.452 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.453 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.454 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.455 = private constant [8 x i8] c"sin_len\00" +@fld.str.456 = private constant [11 x i8] c"sin_family\00" +@fld.str.457 = private constant [9 x i8] c"sin_port\00" +@fld.str.458 = private constant [9 x i8] c"sin_addr\00" +@fld.str.459 = private constant [9 x i8] c"sin_zero\00" +@field_names.460 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.455, i64 7 }, { ptr, i64 } { ptr @fld.str.456, i64 10 }, { ptr, i64 } { ptr @fld.str.457, i64 8 }, { ptr, i64 } { ptr @fld.str.458, i64 8 }, { ptr, i64 } { ptr @fld.str.459, i64 8 }] +@str.461 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.462 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.463 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.464 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.465 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.466 = private constant [6 x i8] c"items\00" +@fld.str.467 = private constant [4 x i8] c"len\00" +@fld.str.468 = private constant [4 x i8] c"cap\00" +@field_names.469 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.466, i64 5 }, { ptr, i64 } { ptr @fld.str.467, i64 3 }, { ptr, i64 } { ptr @fld.str.468, i64 3 }] +@str.470 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.471 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.472 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.473 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.474 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.475 = private constant [6 x i8] c"items\00" +@fld.str.476 = private constant [4 x i8] c"len\00" +@fld.str.477 = private constant [4 x i8] c"cap\00" +@field_names.478 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.475, i64 5 }, { ptr, i64 } { ptr @fld.str.476, i64 3 }, { ptr, i64 } { ptr @fld.str.477, i64 3 }] +@str.479 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.480 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.481 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.482 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.483 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.484 = private constant [4 x i8] c"key\00" +@fld.str.485 = private constant [4 x i8] c"val\00" +@field_names.486 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.484, i64 3 }, { ptr, i64 } { ptr @fld.str.485, i64 3 }] +@str.487 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.488 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.489 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.490 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.491 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.492 = private constant [4 x i8] c"dst\00" +@fld.str.493 = private constant [4 x i8] c"pos\00" +@fld.str.494 = private constant [5 x i8] c"file\00" +@field_names.495 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.492, i64 3 }, { ptr, i64 } { ptr @fld.str.493, i64 3 }, { ptr, i64 } { ptr @fld.str.494, i64 4 }] +@str.496 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.497 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.498 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.499 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.500 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.501 = private constant [4 x i8] c"src\00" +@fld.str.502 = private constant [4 x i8] c"pos\00" +@fld.str.503 = private constant [6 x i8] c"alloc\00" +@field_names.504 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.501, i64 3 }, { ptr, i64 } { ptr @fld.str.502, i64 3 }, { ptr, i64 } { ptr @fld.str.503, i64 5 }] +@str.505 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.506 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.507 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.508 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.509 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.510 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.511 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.512 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.513 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.514 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.515 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.516 = private constant [5 x i8] c"name\00" +@fld.str.517 = private constant [12 x i8] c"takes_value\00" +@fld.str.518 = private constant [9 x i8] c"required\00" +@field_names.519 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.516, i64 4 }, { ptr, i64 } { ptr @fld.str.517, i64 11 }, { ptr, i64 } { ptr @fld.str.518, i64 8 }] +@str.520 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.521 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.522 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.523 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.524 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.525 = private constant [6 x i8] c"group\00" +@fld.str.526 = private constant [8 x i8] c"command\00" +@fld.str.527 = private constant [6 x i8] c"flags\00" +@field_names.528 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.525, i64 5 }, { ptr, i64 } { ptr @fld.str.526, i64 7 }, { ptr, i64 } { ptr @fld.str.527, i64 5 }] +@str.529 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.530 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.531 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.532 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.533 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.534 = private constant [4 x i8] c"set\00" +@fld.str.535 = private constant [6 x i8] c"value\00" +@field_names.536 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.534, i64 3 }, { ptr, i64 } { ptr @fld.str.535, i64 5 }] +@str.537 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.538 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.539 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.540 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.541 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.542 = private constant [6 x i8] c"index\00" +@fld.str.543 = private constant [6 x i8] c"token\00" +@field_names.544 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.542, i64 5 }, { ptr, i64 } { ptr @fld.str.543, i64 5 }] +@str.545 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.546 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.547 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.548 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.549 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.550 = private constant [6 x i8] c"group\00" +@fld.str.551 = private constant [8 x i8] c"command\00" +@fld.str.552 = private constant [10 x i8] c"cmd_index\00" +@fld.str.553 = private constant [5 x i8] c"json\00" +@fld.str.554 = private constant [5 x i8] c"rest\00" +@fld.str.555 = private constant [5 x i8] c"spec\00" +@fld.str.556 = private constant [7 x i8] c"values\00" +@field_names.557 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.550, i64 5 }, { ptr, i64 } { ptr @fld.str.551, i64 7 }, { ptr, i64 } { ptr @fld.str.552, i64 9 }, { ptr, i64 } { ptr @fld.str.553, i64 4 }, { ptr, i64 } { ptr @fld.str.554, i64 4 }, { ptr, i64 } { ptr @fld.str.555, i64 4 }, { ptr, i64 } { ptr @fld.str.556, i64 6 }] +@str.558 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.559 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.560 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.562 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.563 = private constant [2 x i8] c"h\00" +@fld.str.564 = private constant [4 x i8] c"buf\00" +@fld.str.565 = private constant [8 x i8] c"buf_len\00" +@fld.str.566 = private constant [10 x i8] c"total_len\00" +@field_names.567 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.563, i64 1 }, { ptr, i64 } { ptr @fld.str.564, i64 3 }, { ptr, i64 } { ptr @fld.str.565, i64 7 }, { ptr, i64 } { ptr @fld.str.566, i64 9 }] +@str.568 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.569 = private unnamed_addr constant [8 x i8] c"IntCell\00", align 1 +@str.570 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.571 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.572 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.573 = private constant [2 x i8] c"v\00" +@field_names.574 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.573, i64 1 }] +@str.575 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.576 = private unnamed_addr constant [2 x i8] c"R\00", align 1 +@str.577 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.578 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.579 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.580 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.581 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.582 = private unnamed_addr constant [9 x i8] c"Combined\00", align 1 +@str.583 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.584 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.585 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.586 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.587 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.588 = private unnamed_addr constant [8 x i8] c"VL__s64\00", align 1 +@str.589 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.590 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.591 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.592 = private constant [4 x i8] c"ctx\00" +@fld.str.593 = private constant [9 x i8] c"__vtable\00" +@field_names.594 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.592, i64 3 }, { ptr, i64 } { ptr @fld.str.593, i64 8 }] +@str.595 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.596 = private unnamed_addr constant [18 x i8] c"__VL__s64__Vtable\00", align 1 +@str.597 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.599 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.600 = private constant [4 x i8] c"get\00" +@field_names.601 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.600, i64 3 }] +@str.602 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.603 = private unnamed_addr constant [3 x i8] c"VL\00", align 1 +@str.604 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.606 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.607 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.608 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.609 = private unnamed_addr constant [19 x i8] c"Combined__s64__s64\00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.612 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.613 = private constant [8 x i8] c"sources\00" +@fld.str.614 = private constant [6 x i8] c"value\00" +@field_names.615 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.613, i64 7 }, { ptr, i64 } { ptr @fld.str.614, i64 5 }] +@str.616 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.618 = private constant [5 x i8] c"read\00" +@fld.str.619 = private constant [6 x i8] c"write\00" +@fld.str.620 = private constant [7 x i8] c"append\00" +@fld.str.621 = private constant [11 x i8] c"read_write\00" +@field_names.622 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.618, i64 4 }, { ptr, i64 } { ptr @fld.str.619, i64 5 }, { ptr, i64 } { ptr @fld.str.620, i64 6 }, { ptr, i64 } { ptr @fld.str.621, i64 10 }] +@str.623 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.624 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.626 = private constant [4 x i8] c"set\00" +@fld.str.627 = private constant [8 x i8] c"current\00" +@fld.str.628 = private constant [4 x i8] c"end\00" +@field_names.629 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.626, i64 3 }, { ptr, i64 } { ptr @fld.str.627, i64 7 }, { ptr, i64 } { ptr @fld.str.628, i64 3 }] +@str.630 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.631 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.632 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.633 = private constant [6 x i8] c"null_\00" +@fld.str.634 = private constant [6 x i8] c"bool_\00" +@fld.str.635 = private constant [5 x i8] c"int_\00" +@fld.str.636 = private constant [4 x i8] c"str\00" +@fld.str.637 = private constant [6 x i8] c"array\00" +@fld.str.638 = private constant [7 x i8] c"object\00" +@field_names.639 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.633, i64 5 }, { ptr, i64 } { ptr @fld.str.634, i64 5 }, { ptr, i64 } { ptr @fld.str.635, i64 4 }, { ptr, i64 } { ptr @fld.str.636, i64 3 }, { ptr, i64 } { ptr @fld.str.637, i64 5 }, { ptr, i64 } { ptr @fld.str.638, i64 6 }] +@str.640 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.641 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.642 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.643 = private constant [6 x i8] c"macos\00" +@fld.str.644 = private constant [6 x i8] c"linux\00" +@fld.str.645 = private constant [8 x i8] c"windows\00" +@fld.str.646 = private constant [5 x i8] c"wasm\00" +@fld.str.647 = private constant [4 x i8] c"ios\00" +@fld.str.648 = private constant [8 x i8] c"android\00" +@fld.str.649 = private constant [8 x i8] c"unknown\00" +@field_names.650 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.643, i64 5 }, { ptr, i64 } { ptr @fld.str.644, i64 5 }, { ptr, i64 } { ptr @fld.str.645, i64 7 }, { ptr, i64 } { ptr @fld.str.646, i64 4 }, { ptr, i64 } { ptr @fld.str.647, i64 3 }, { ptr, i64 } { ptr @fld.str.648, i64 7 }, { ptr, i64 } { ptr @fld.str.649, i64 7 }] +@str.651 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.652 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.653 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.654 = private constant [8 x i8] c"aarch64\00" +@fld.str.655 = private constant [7 x i8] c"x86_64\00" +@fld.str.656 = private constant [7 x i8] c"wasm32\00" +@fld.str.657 = private constant [7 x i8] c"wasm64\00" +@fld.str.658 = private constant [8 x i8] c"unknown\00" +@field_names.659 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.654, i64 7 }, { ptr, i64 } { ptr @fld.str.655, i64 6 }, { ptr, i64 } { ptr @fld.str.656, i64 6 }, { ptr, i64 } { ptr @fld.str.657, i64 6 }, { ptr, i64 } { ptr @fld.str.658, i64 7 }] +@str.660 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.661 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.662 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.663 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.664 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.665 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.666 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.667 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.668 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.669 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.670 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.671 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.672 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.673 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.676 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.677 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.678 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.679 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.680 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.681 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.682 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.683 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.684 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.685 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.686 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.687 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.688 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.689 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.690 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.691 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.692 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.693 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.694 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.695 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.696 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.697 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.698 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.699 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.700 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.701 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.702 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.703 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.704 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.705 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.706 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.707 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.708 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.709 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.710 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.711 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.712 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.713 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.714 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.715 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.716 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.717 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.718 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.719 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.720 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.721 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.722 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.723 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.724 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.725 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.726 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.727 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.728 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.729 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.730 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.731 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.732 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.733 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.734 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.735 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.736 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.737 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.738 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.739 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.740 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.741 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.742 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.743 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.744 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.745 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.746 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.747 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.748 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.749 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.750 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.751 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.752 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.753 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.754 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.755 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.756 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.757 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.758 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.759 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.760 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.761 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.762 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.763 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.764 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.765 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.766 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.767 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.768 = private unnamed_addr constant [9 x i8] c"*IntCell\00", align 1 +@str.769 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.770 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.771 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.772 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.773 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.774 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.775 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.776 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.777 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.778 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.779 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.780 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.781 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.782 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.783 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.784 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.785 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.786 = private unnamed_addr constant [20 x i8] c"*Combined__s64__s64\00", align 1 +@str.787 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.788 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.789 = private unnamed_addr constant [10 x i8] c"**IntCell\00", align 1 +@str.790 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.791 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.792 = private unnamed_addr constant [19 x i8] c"*__VL__s64__Vtable\00", align 1 +@str.793 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.794 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.795 = private unnamed_addr constant [7 x i8] c"*tuple\00", align 1 +@str.796 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.797 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.798 = private unnamed_addr constant [21 x i8] c"**Combined__s64__s64\00", align 1 +@str.799 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.800 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.801 = private unnamed_addr constant [9 x i8] c"*VL__s64\00", align 1 +@str.802 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.803 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.804 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.805 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.806 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.807 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.808 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.809 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.810 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.811 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.812 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -569,7 +929,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -696,7 +1056,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -865,38 +1225,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.257 + br label %while.hdr.425 -while.hdr.257: ; preds = %if.merge.262, %entry +while.hdr.425: ; preds = %if.merge.430, %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.258, label %while.exit.259 + br i1 %icmp, label %while.body.426, label %while.exit.427 -while.body.258: ; preds = %while.hdr.257 +while.body.426: ; preds = %while.hdr.425 %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.260, label %if.else.261 + br i1 %icmpN, label %if.then.428, label %if.else.429 -while.exit.259: ; preds = %while.hdr.257 +while.exit.427: ; preds = %while.hdr.425 ret void -if.then.260: ; preds = %while.body.258 +if.then.428: ; preds = %while.body.426 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.262 + br label %if.merge.430 -if.else.261: ; preds = %while.body.258 +if.else.429: ; preds = %while.body.426 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.262 + br label %if.merge.430 -if.merge.262: ; preds = %if.else.261, %if.then.260 - %bp = phi i64 [ %addN, %if.then.260 ], [ %addN, %if.else.261 ] +if.merge.430: ; preds = %if.else.429, %if.then.428 + %bp = phi i64 [ %addN, %if.then.428 ], [ %addN, %if.else.429 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -909,7 +1269,7 @@ if.merge.262: ; preds = %if.else.261, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.257 + br label %while.hdr.425 } ; Function Attrs: nounwind @@ -1027,12 +1387,12 @@ entry: 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.255, label %if.merge.256 + br i1 %icmp, label %if.then.423, label %if.merge.424 -if.then.255: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.423: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.256: ; preds = %entry +if.merge.424: ; 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 @@ -1063,14 +1423,14 @@ if.merge.256: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.263 + br label %while.hdr.431 -while.hdr.263: ; preds = %if.merge.267, %if.merge.256 +while.hdr.431: ; preds = %if.merge.435, %if.merge.424 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.264, label %while.exit.265 + br i1 %icmpN, label %while.body.432, label %while.exit.433 -while.body.264: ; preds = %while.hdr.263 +while.body.432: ; preds = %while.hdr.431 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1078,9 +1438,9 @@ while.body.264: ; preds = %while.hdr.263 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.266, label %if.merge.267 + br i1 %icmpN, label %if.then.434, label %if.merge.435 -while.exit.265: ; preds = %if.then.266, %while.hdr.263 +while.exit.433: ; preds = %if.then.434, %while.hdr.431 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1088,14 +1448,14 @@ while.exit.265: ; preds = %if.then.266, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.266: ; preds = %while.body.264 - br label %while.exit.265 +if.then.434: ; preds = %while.body.432 + br label %while.exit.433 -if.merge.267: ; preds = %while.body.264 +if.merge.435: ; preds = %while.body.432 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.263 + br label %while.hdr.431 } ; Function Attrs: nounwind @@ -1173,11 +1533,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1210,18 +1573,49 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 - i64 37, label %match.arm.43 i64 39, label %match.arm.43 - i64 40, label %match.arm.43 - i64 41, label %match.arm.43 - i64 42, label %match.arm.43 i64 43, label %match.arm.43 - i64 54, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 93, label %match.arm.43 + i64 95, label %match.arm.43 + i64 96, label %match.arm.43 + i64 97, label %match.arm.43 + i64 98, label %match.arm.43 + i64 99, label %match.arm.43 + i64 109, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 50, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 105, label %match.arm.47 i64 36, label %match.arm.48 - i64 44, label %match.arm.48 - i64 48, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 100, label %match.arm.48 + i64 103, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1230,31 +1624,48 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 38, label %match.arm.49 - i64 45, label %match.arm.49 - i64 46, label %match.arm.49 + i64 40, label %match.arm.49 + i64 44, label %match.arm.49 i64 47, label %match.arm.49 i64 49, label %match.arm.49 - i64 51, label %match.arm.49 - i64 52, label %match.arm.49 - i64 55, label %match.arm.49 + i64 50, label %match.arm.49 i64 56, label %match.arm.49 i64 57, label %match.arm.49 i64 58, label %match.arm.49 i64 59, label %match.arm.49 - i64 60, label %match.arm.49 - i64 61, label %match.arm.49 i64 62, label %match.arm.49 - i64 63, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 94, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 104, label %match.arm.49 + i64 106, label %match.arm.49 + i64 107, label %match.arm.49 + i64 110, label %match.arm.49 + i64 111, label %match.arm.49 + i64 112, label %match.arm.49 + i64 113, label %match.arm.49 + i64 114, label %match.arm.49 + i64 115, label %match.arm.49 + i64 116, label %match.arm.49 + i64 117, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.226, %dispatch.merge.206, %dispatch.merge.192, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.544, %dispatch.merge.381, %dispatch.merge.343, %dispatch.merge.305, %dispatch.merge.288, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1263,7 +1674,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [94 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [184 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1291,7 +1702,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1305,84 +1716,146 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 - i64 37, label %dispatch.case.105 - i64 39, label %dispatch.case.106 - i64 40, label %dispatch.case.107 - i64 41, label %dispatch.case.108 - i64 42, label %dispatch.case.109 - i64 43, label %dispatch.case.110 - i64 54, label %dispatch.case.111 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 93, label %dispatch.case.121 + i64 95, label %dispatch.case.122 + i64 96, label %dispatch.case.123 + i64 97, label %dispatch.case.124 + i64 98, label %dispatch.case.125 + i64 99, label %dispatch.case.126 + i64 109, label %dispatch.case.127 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.289 [ + i64 37, label %dispatch.case.290 + i64 38, label %dispatch.case.291 + i64 54, label %dispatch.case.292 + i64 70, label %dispatch.case.293 + i64 71, label %dispatch.case.294 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.193 [ - i64 35, label %dispatch.case.194 - i64 50, label %dispatch.case.195 + switch i64 %ua.raw29, label %dispatch.default.306 [ + i64 35, label %dispatch.case.307 + i64 81, label %dispatch.case.308 + i64 87, label %dispatch.case.309 + i64 88, label %dispatch.case.310 + i64 92, label %dispatch.case.311 + i64 105, label %dispatch.case.312 ] -match.arm.48: ; preds = %entry, %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.207 [ - i64 36, label %dispatch.case.208 - i64 44, label %dispatch.case.209 - i64 48, label %dispatch.case.210 + switch i64 %ua.raw33, label %dispatch.default.344 [ + i64 36, label %dispatch.case.345 + i64 60, label %dispatch.case.346 + i64 77, label %dispatch.case.347 + i64 85, label %dispatch.case.348 + i64 100, label %dispatch.case.349 + i64 103, label %dispatch.case.350 ] -match.arm.49: ; 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 +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.227 [ - i64 18, label %dispatch.case.228 - i64 21, label %dispatch.case.229 - i64 23, label %dispatch.case.230 - i64 25, label %dispatch.case.231 - i64 28, label %dispatch.case.232 - i64 29, label %dispatch.case.233 - i64 31, label %dispatch.case.234 - i64 33, label %dispatch.case.235 - i64 38, label %dispatch.case.236 - i64 45, label %dispatch.case.237 - i64 46, label %dispatch.case.238 - i64 47, label %dispatch.case.239 - i64 49, label %dispatch.case.240 - i64 51, label %dispatch.case.241 - i64 52, label %dispatch.case.242 - i64 55, label %dispatch.case.243 - i64 56, label %dispatch.case.244 - i64 57, label %dispatch.case.245 - i64 58, label %dispatch.case.246 - i64 59, label %dispatch.case.247 - i64 60, label %dispatch.case.248 - i64 61, label %dispatch.case.249 - i64 62, label %dispatch.case.250 - i64 63, label %dispatch.case.251 + switch i64 %ua.raw37, label %dispatch.default.382 [ + i64 18, label %dispatch.case.383 + i64 21, label %dispatch.case.384 + i64 23, label %dispatch.case.385 + i64 25, label %dispatch.case.386 + i64 28, label %dispatch.case.387 + i64 29, label %dispatch.case.388 + i64 31, label %dispatch.case.389 + i64 33, label %dispatch.case.390 + i64 40, label %dispatch.case.391 + i64 44, label %dispatch.case.392 + i64 47, label %dispatch.case.393 + i64 49, label %dispatch.case.394 + i64 50, label %dispatch.case.395 + i64 56, label %dispatch.case.396 + i64 57, label %dispatch.case.397 + i64 58, label %dispatch.case.398 + i64 59, label %dispatch.case.399 + i64 62, label %dispatch.case.400 + i64 67, label %dispatch.case.401 + i64 74, label %dispatch.case.402 + i64 83, label %dispatch.case.403 + i64 86, label %dispatch.case.404 + i64 90, label %dispatch.case.405 + i64 94, label %dispatch.case.406 + i64 101, label %dispatch.case.407 + i64 102, label %dispatch.case.408 + i64 104, label %dispatch.case.409 + i64 106, label %dispatch.case.410 + i64 107, label %dispatch.case.411 + i64 110, label %dispatch.case.412 + i64 111, label %dispatch.case.413 + i64 112, label %dispatch.case.414 + i64 113, label %dispatch.case.415 + i64 114, label %dispatch.case.416 + i64 115, label %dispatch.case.417 + i64 116, label %dispatch.case.418 + i64 117, label %dispatch.case.419 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.545 [ + i64 41, label %dispatch.case.546 + i64 42, label %dispatch.case.547 + i64 46, label %dispatch.case.548 + i64 91, label %dispatch.case.549 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [94 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [184 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1392,15 +1865,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1408,16 +1881,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1427,377 +1900,734 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.127, %dispatch.case.126, %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.120, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.327, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { i64 }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__IntCell(ptr %0, { i64 } %ua.load85) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.106: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load {}, ptr %ua.ptr88, align 1 - %callN = call { ptr, i64 } @struct_to_string__R(ptr %0, {} %ua.load89) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.107: ; preds = %match.arm.43 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load {}, ptr %ua.ptr92, align 1 - %callN = call { ptr, i64 } @struct_to_string__Combined(ptr %0, {} %ua.load93) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.108: ; preds = %match.arm.43 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load { ptr, ptr }, ptr %ua.ptr96, align 8 - %callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load97) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.109: ; preds = %match.arm.43 - %ua.raw99 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr100 = inttoptr i64 %ua.raw99 to ptr - %ua.load101 = load { ptr }, ptr %ua.ptr100, align 8 - %callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load101) + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.110: ; preds = %match.arm.43 - %ua.raw103 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr104 = inttoptr i64 %ua.raw103 to ptr - %ua.load105 = load {}, ptr %ua.ptr104, align 1 - %callN = call { ptr, i64 } @struct_to_string__VL(ptr %0, {} %ua.load105) + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.111: ; preds = %match.arm.43 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr108 = inttoptr i64 %ua.raw107 to ptr - %ua.load109 = load { { { ptr, ptr } }, i64 }, ptr %ua.ptr108, align 8 - %callN = call { ptr, i64 } @struct_to_string__Combined__s64__s64(ptr %0, { { { ptr, ptr } }, i64 } %ua.load109) + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.192: ; preds = %dispatch.case.195, %dispatch.case.194, %dispatch.default.193 +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { i64 }, ptr %ua.ptr161, align 8 + %callN = call { ptr, i64 } @struct_to_string__IntCell(ptr %0, { i64 } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.122: ; preds = %match.arm.43 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load {}, ptr %ua.ptr165, align 1 + %callN = call { ptr, i64 } @struct_to_string__R(ptr %0, {} %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.123: ; preds = %match.arm.43 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load {}, ptr %ua.ptr169, align 1 + %callN = call { ptr, i64 } @struct_to_string__Combined(ptr %0, {} %ua.load170) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.124: ; preds = %match.arm.43 + %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr173 = inttoptr i64 %ua.raw172 to ptr + %ua.load174 = load { ptr, ptr }, ptr %ua.ptr173, align 8 + %callN = call { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %ua.load174) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.125: ; preds = %match.arm.43 + %ua.raw176 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr177 = inttoptr i64 %ua.raw176 to ptr + %ua.load178 = load { ptr }, ptr %ua.ptr177, align 8 + %callN = call { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr } %ua.load178) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.126: ; preds = %match.arm.43 + %ua.raw180 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr181 = inttoptr i64 %ua.raw180 to ptr + %ua.load182 = load {}, ptr %ua.ptr181, align 1 + %callN = call { ptr, i64 } @struct_to_string__VL(ptr %0, {} %ua.load182) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.127: ; preds = %match.arm.43 + %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr185 = inttoptr i64 %ua.raw184 to ptr + %ua.load186 = load { { { ptr, ptr } }, i64 }, ptr %ua.ptr185, align 8 + %callN = call { ptr, i64 } @struct_to_string__Combined__s64__s64(ptr %0, { { { ptr, ptr } }, i64 } %ua.load186) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.288: ; preds = %dispatch.case.294, %dispatch.case.293, %dispatch.case.292, %dispatch.case.291, %dispatch.case.290, %dispatch.default.289 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.193: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.121, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.192 +dispatch.default.289: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.328, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.288 -dispatch.case.194: ; preds = %match.arm.47 - %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr - %ua.load114 = load [4 x i64], ptr %ua.ptr113, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load114) +dispatch.case.290: ; preds = %match.arm.44 + %ua.raw189 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw189) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.192 + br label %dispatch.merge.288 -dispatch.case.195: ; preds = %match.arm.47 - %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr - %ua.load118 = load [1 x { i64, i64 }], ptr %ua.ptr117, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load118) +dispatch.case.291: ; preds = %match.arm.44 + %ua.raw191 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw191) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.192 + br label %dispatch.merge.288 -dispatch.merge.206: ; preds = %dispatch.case.210, %dispatch.case.209, %dispatch.case.208, %dispatch.default.207 +dispatch.case.292: ; preds = %match.arm.44 + %ua.raw193 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr194 = inttoptr i64 %ua.raw193 to ptr + %ua.load195 = load { i64, [24 x i8] }, ptr %ua.ptr194, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load195) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.288 + +dispatch.case.293: ; preds = %match.arm.44 + %ua.raw197 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw197) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.288 + +dispatch.case.294: ; preds = %match.arm.44 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw199) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.288 + +dispatch.merge.305: ; preds = %dispatch.case.312, %dispatch.case.311, %dispatch.case.310, %dispatch.case.309, %dispatch.case.308, %dispatch.case.307, %dispatch.default.306 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.207: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.122, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.206 +dispatch.default.306: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.329, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.305 -dispatch.case.208: ; preds = %match.arm.48 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr122 = inttoptr i64 %ua.raw121 to ptr - %ua.load123 = load { ptr, i64 }, ptr %ua.ptr122, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load123) +dispatch.case.307: ; preds = %match.arm.47 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [4 x i64], ptr %ua.ptr203, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load204) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.206 + br label %dispatch.merge.305 -dispatch.case.209: ; preds = %match.arm.48 - %ua.raw125 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr126 = inttoptr i64 %ua.raw125 to ptr - %ua.load127 = load { ptr, i64 }, ptr %ua.ptr126, align 8 - %callN = call { ptr, i64 } @slice_to_string__VL(ptr %0, { ptr, i64 } %ua.load127) +dispatch.case.308: ; preds = %match.arm.47 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr207, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load208) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.206 + br label %dispatch.merge.305 -dispatch.case.210: ; preds = %match.arm.48 - %ua.raw129 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr130 = inttoptr i64 %ua.raw129 to ptr - %ua.load131 = load { ptr, i64 }, ptr %ua.ptr130, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load131) +dispatch.case.309: ; preds = %match.arm.47 + %ua.raw210 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr211 = inttoptr i64 %ua.raw210 to ptr + %ua.load212 = load [8 x i64], ptr %ua.ptr211, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load212) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.206 + br label %dispatch.merge.305 -dispatch.merge.226: ; preds = %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.case.247, %dispatch.case.246, %dispatch.case.245, %dispatch.case.244, %dispatch.case.243, %dispatch.case.242, %dispatch.case.241, %dispatch.case.240, %dispatch.case.239, %dispatch.case.238, %dispatch.case.237, %dispatch.case.236, %dispatch.case.235, %dispatch.case.234, %dispatch.case.233, %dispatch.case.232, %dispatch.case.231, %dispatch.case.230, %dispatch.case.229, %dispatch.case.228, %dispatch.default.227 +dispatch.case.310: ; preds = %match.arm.47 + %ua.raw214 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr215 = inttoptr i64 %ua.raw214 to ptr + %ua.load216 = load [64 x i8], ptr %ua.ptr215, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load216) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.305 + +dispatch.case.311: ; preds = %match.arm.47 + %ua.raw218 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr219 = inttoptr i64 %ua.raw218 to ptr + %ua.load220 = load [64 x i64], ptr %ua.ptr219, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load220) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.305 + +dispatch.case.312: ; preds = %match.arm.47 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr223 = inttoptr i64 %ua.raw222 to ptr + %ua.load224 = load [1 x { i64, i64 }], ptr %ua.ptr223, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load224) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.305 + +dispatch.merge.343: ; preds = %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.default.344 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.227: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.123, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.226 +dispatch.default.344: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.330, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.343 -dispatch.case.228: ; preds = %match.arm.49 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw134 to ptr +dispatch.case.345: ; preds = %match.arm.48 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.346: ; preds = %match.arm.48 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr232 = inttoptr i64 %ua.raw231 to ptr + %ua.load233 = load { ptr, i64 }, ptr %ua.ptr232, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load233) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.347: ; preds = %match.arm.48 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr236 = inttoptr i64 %ua.raw235 to ptr + %ua.load237 = load { ptr, i64 }, ptr %ua.ptr236, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load237) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.348: ; preds = %match.arm.48 + %ua.raw239 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr240 = inttoptr i64 %ua.raw239 to ptr + %ua.load241 = load { ptr, i64 }, ptr %ua.ptr240, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load241) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.349: ; preds = %match.arm.48 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr244 = inttoptr i64 %ua.raw243 to ptr + %ua.load245 = load { ptr, i64 }, ptr %ua.ptr244, align 8 + %callN = call { ptr, i64 } @slice_to_string__VL(ptr %0, { ptr, i64 } %ua.load245) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.350: ; preds = %match.arm.48 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr248 = inttoptr i64 %ua.raw247 to ptr + %ua.load249 = load { ptr, i64 }, ptr %ua.ptr248, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load249) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.merge.381: ; preds = %dispatch.case.419, %dispatch.case.418, %dispatch.case.417, %dispatch.case.416, %dispatch.case.415, %dispatch.case.414, %dispatch.case.413, %dispatch.case.412, %dispatch.case.411, %dispatch.case.410, %dispatch.case.409, %dispatch.case.408, %dispatch.case.407, %dispatch.case.406, %dispatch.case.405, %dispatch.case.404, %dispatch.case.403, %dispatch.case.402, %dispatch.case.401, %dispatch.case.400, %dispatch.case.399, %dispatch.case.398, %dispatch.case.397, %dispatch.case.396, %dispatch.case.395, %dispatch.case.394, %dispatch.case.393, %dispatch.case.392, %dispatch.case.391, %dispatch.case.390, %dispatch.case.389, %dispatch.case.388, %dispatch.case.387, %dispatch.case.386, %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.default.382 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.382: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.331, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.383: ; preds = %match.arm.49 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw252 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.229: ; preds = %match.arm.49 - %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 - %iNp137 = inttoptr i64 %ua.raw136 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp137) +dispatch.case.384: ; preds = %match.arm.49 + %ua.raw254 = extractvalue { i64, i64 } %loadN, 1 + %iNp255 = inttoptr i64 %ua.raw254 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp255) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.230: ; preds = %match.arm.49 - %ua.raw139 = extractvalue { i64, i64 } %loadN, 1 - %iNp140 = inttoptr i64 %ua.raw139 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp140) +dispatch.case.385: ; preds = %match.arm.49 + %ua.raw257 = extractvalue { i64, i64 } %loadN, 1 + %iNp258 = inttoptr i64 %ua.raw257 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp258) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.231: ; preds = %match.arm.49 - %ua.raw142 = extractvalue { i64, i64 } %loadN, 1 - %iNp143 = inttoptr i64 %ua.raw142 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp143) +dispatch.case.386: ; preds = %match.arm.49 + %ua.raw260 = extractvalue { i64, i64 } %loadN, 1 + %iNp261 = inttoptr i64 %ua.raw260 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp261) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.232: ; preds = %match.arm.49 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp146) +dispatch.case.387: ; preds = %match.arm.49 + %ua.raw263 = extractvalue { i64, i64 } %loadN, 1 + %iNp264 = inttoptr i64 %ua.raw263 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp264) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.233: ; preds = %match.arm.49 - %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp149) +dispatch.case.388: ; preds = %match.arm.49 + %ua.raw266 = extractvalue { i64, i64 } %loadN, 1 + %iNp267 = inttoptr i64 %ua.raw266 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp267) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.234: ; preds = %match.arm.49 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp152) +dispatch.case.389: ; preds = %match.arm.49 + %ua.raw269 = extractvalue { i64, i64 } %loadN, 1 + %iNp270 = inttoptr i64 %ua.raw269 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp270) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.235: ; preds = %match.arm.49 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp155) +dispatch.case.390: ; preds = %match.arm.49 + %ua.raw272 = extractvalue { i64, i64 } %loadN, 1 + %iNp273 = inttoptr i64 %ua.raw272 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp273) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.236: ; preds = %match.arm.49 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %iNp158) +dispatch.case.391: ; preds = %match.arm.49 + %ua.raw275 = extractvalue { i64, i64 } %loadN, 1 + %iNp276 = inttoptr i64 %ua.raw275 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp276) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.237: ; preds = %match.arm.49 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp161) +dispatch.case.392: ; preds = %match.arm.49 + %ua.raw278 = extractvalue { i64, i64 } %loadN, 1 + %iNp279 = inttoptr i64 %ua.raw278 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp279) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.238: ; preds = %match.arm.49 - %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 - %iNp164 = inttoptr i64 %ua.raw163 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp164) +dispatch.case.393: ; preds = %match.arm.49 + %ua.raw281 = extractvalue { i64, i64 } %loadN, 1 + %iNp282 = inttoptr i64 %ua.raw281 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp282) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.239: ; preds = %match.arm.49 - %ua.raw166 = extractvalue { i64, i64 } %loadN, 1 - %iNp167 = inttoptr i64 %ua.raw166 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp167) +dispatch.case.394: ; preds = %match.arm.49 + %ua.raw284 = extractvalue { i64, i64 } %loadN, 1 + %iNp285 = inttoptr i64 %ua.raw284 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp285) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.240: ; preds = %match.arm.49 - %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 - %iNp170 = inttoptr i64 %ua.raw169 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp170) +dispatch.case.395: ; preds = %match.arm.49 + %ua.raw287 = extractvalue { i64, i64 } %loadN, 1 + %iNp288 = inttoptr i64 %ua.raw287 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp288) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.241: ; preds = %match.arm.49 - %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 - %iNp173 = inttoptr i64 %ua.raw172 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp173) +dispatch.case.396: ; preds = %match.arm.49 + %ua.raw290 = extractvalue { i64, i64 } %loadN, 1 + %iNp291 = inttoptr i64 %ua.raw290 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp291) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.242: ; preds = %match.arm.49 - %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 - %iNp176 = inttoptr i64 %ua.raw175 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp176) +dispatch.case.397: ; preds = %match.arm.49 + %ua.raw293 = extractvalue { i64, i64 } %loadN, 1 + %iNp294 = inttoptr i64 %ua.raw293 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp294) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.243: ; preds = %match.arm.49 - %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 - %iNp179 = inttoptr i64 %ua.raw178 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Combined__s64__s64(ptr %0, ptr %iNp179) +dispatch.case.398: ; preds = %match.arm.49 + %ua.raw296 = extractvalue { i64, i64 } %loadN, 1 + %iNp297 = inttoptr i64 %ua.raw296 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp297) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.244: ; preds = %match.arm.49 - %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 - %iNp182 = inttoptr i64 %ua.raw181 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(ptr %0, ptr %iNp182) +dispatch.case.399: ; preds = %match.arm.49 + %ua.raw299 = extractvalue { i64, i64 } %loadN, 1 + %iNp300 = inttoptr i64 %ua.raw299 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp300) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.245: ; preds = %match.arm.49 - %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 - %iNp185 = inttoptr i64 %ua.raw184 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp185) +dispatch.case.400: ; preds = %match.arm.49 + %ua.raw302 = extractvalue { i64, i64 } %loadN, 1 + %iNp303 = inttoptr i64 %ua.raw302 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp303) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.246: ; preds = %match.arm.49 - %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 - %iNp188 = inttoptr i64 %ua.raw187 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_tu_VL__s64(ptr %0, ptr %iNp188) +dispatch.case.401: ; preds = %match.arm.49 + %ua.raw305 = extractvalue { i64, i64 } %loadN, 1 + %iNp306 = inttoptr i64 %ua.raw305 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp306) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.247: ; preds = %match.arm.49 - %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 - %iNp191 = inttoptr i64 %ua.raw190 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__s64__s64(ptr %0, ptr %iNp191) +dispatch.case.402: ; preds = %match.arm.49 + %ua.raw308 = extractvalue { i64, i64 } %loadN, 1 + %iNp309 = inttoptr i64 %ua.raw308 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp309) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.248: ; preds = %match.arm.49 - %ua.raw193 = extractvalue { i64, i64 } %loadN, 1 - %iNp194 = inttoptr i64 %ua.raw193 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp194) +dispatch.case.403: ; preds = %match.arm.49 + %ua.raw311 = extractvalue { i64, i64 } %loadN, 1 + %iNp312 = inttoptr i64 %ua.raw311 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp312) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.249: ; preds = %match.arm.49 - %ua.raw196 = extractvalue { i64, i64 } %loadN, 1 - %iNp197 = inttoptr i64 %ua.raw196 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp197) +dispatch.case.404: ; preds = %match.arm.49 + %ua.raw314 = extractvalue { i64, i64 } %loadN, 1 + %iNp315 = inttoptr i64 %ua.raw314 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp315) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.250: ; preds = %match.arm.49 - %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 - %iNp200 = inttoptr i64 %ua.raw199 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp200) +dispatch.case.405: ; preds = %match.arm.49 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %iNp318 = inttoptr i64 %ua.raw317 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp318) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 -dispatch.case.251: ; preds = %match.arm.49 - %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 - %iNp203 = inttoptr i64 %ua.raw202 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp203) +dispatch.case.406: ; preds = %match.arm.49 + %ua.raw320 = extractvalue { i64, i64 } %loadN, 1 + %iNp321 = inttoptr i64 %ua.raw320 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %iNp321) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.226 + br label %dispatch.merge.381 + +dispatch.case.407: ; preds = %match.arm.49 + %ua.raw323 = extractvalue { i64, i64 } %loadN, 1 + %iNp324 = inttoptr i64 %ua.raw323 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp324) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.408: ; preds = %match.arm.49 + %ua.raw326 = extractvalue { i64, i64 } %loadN, 1 + %iNp327 = inttoptr i64 %ua.raw326 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.409: ; preds = %match.arm.49 + %ua.raw329 = extractvalue { i64, i64 } %loadN, 1 + %iNp330 = inttoptr i64 %ua.raw329 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp330) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.410: ; preds = %match.arm.49 + %ua.raw332 = extractvalue { i64, i64 } %loadN, 1 + %iNp333 = inttoptr i64 %ua.raw332 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp333) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.411: ; preds = %match.arm.49 + %ua.raw335 = extractvalue { i64, i64 } %loadN, 1 + %iNp336 = inttoptr i64 %ua.raw335 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp336) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.412: ; preds = %match.arm.49 + %ua.raw338 = extractvalue { i64, i64 } %loadN, 1 + %iNp339 = inttoptr i64 %ua.raw338 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Combined__s64__s64(ptr %0, ptr %iNp339) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.413: ; preds = %match.arm.49 + %ua.raw341 = extractvalue { i64, i64 } %loadN, 1 + %iNp342 = inttoptr i64 %ua.raw341 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(ptr %0, ptr %iNp342) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.414: ; preds = %match.arm.49 + %ua.raw344 = extractvalue { i64, i64 } %loadN, 1 + %iNp345 = inttoptr i64 %ua.raw344 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(ptr %0, ptr %iNp345) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.415: ; preds = %match.arm.49 + %ua.raw347 = extractvalue { i64, i64 } %loadN, 1 + %iNp348 = inttoptr i64 %ua.raw347 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_tu_VL__s64(ptr %0, ptr %iNp348) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.416: ; preds = %match.arm.49 + %ua.raw350 = extractvalue { i64, i64 } %loadN, 1 + %iNp351 = inttoptr i64 %ua.raw350 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__s64__s64(ptr %0, ptr %iNp351) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.417: ; preds = %match.arm.49 + %ua.raw353 = extractvalue { i64, i64 } %loadN, 1 + %iNp354 = inttoptr i64 %ua.raw353 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_VL__s64(ptr %0, ptr %iNp354) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.418: ; preds = %match.arm.49 + %ua.raw356 = extractvalue { i64, i64 } %loadN, 1 + %iNp357 = inttoptr i64 %ua.raw356 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp357) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.case.419: ; preds = %match.arm.49 + %ua.raw359 = extractvalue { i64, i64 } %loadN, 1 + %iNp360 = inttoptr i64 %ua.raw359 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp360) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.381 + +dispatch.merge.544: ; preds = %dispatch.case.549, %dispatch.case.548, %dispatch.case.547, %dispatch.case.546, %dispatch.default.545 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.545: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.332, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.544 + +dispatch.case.546: ; preds = %match.arm.50 + %ua.raw363 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr364 = inttoptr i64 %ua.raw363 to ptr + %ua.load365 = load { { i32 }, i1 }, ptr %ua.ptr364, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load365) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.544 + +dispatch.case.547: ; preds = %match.arm.50 + %ua.raw367 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr368 = inttoptr i64 %ua.raw367 to ptr + %ua.load369 = load { { ptr, i64 }, i1 }, ptr %ua.ptr368, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load369) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.544 + +dispatch.case.548: ; preds = %match.arm.50 + %ua.raw371 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr372 = inttoptr i64 %ua.raw371 to ptr + %ua.load373 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr372, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load373) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.544 + +dispatch.case.549: ; preds = %match.arm.50 + %ua.raw375 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr376 = inttoptr i64 %ua.raw375 to ptr + %ua.load377 = load { [64 x i8], i1 }, ptr %ua.ptr376, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load377) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.544 } ; Function Attrs: nounwind @@ -1806,7 +2636,7 @@ 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.124, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.333, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1902,7 +2732,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.125, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.334, 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 @@ -1910,7 +2740,7 @@ if.then.12: ; preds = %if.then.9 %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.126, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.335, 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 @@ -1920,13 +2750,13 @@ if.then.12: ; preds = %if.then.9 %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.127, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.336, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.337, 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 @@ -1934,7 +2764,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.129, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1948,7 +2778,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, 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 @@ -1956,7 +2786,7 @@ if.then.23: ; preds = %if.else.10 %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.131, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, 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 @@ -1967,7 +2797,7 @@ if.then.23: ; preds = %if.else.10 %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.132, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.341, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2024,7 +2854,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.342, 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 @@ -2032,7 +2862,7 @@ if.then.32: ; preds = %if.then.29 %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.134, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, 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 @@ -2043,7 +2873,7 @@ if.then.32: ; preds = %if.then.29 %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.135, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.344, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2063,7 +2893,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, 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 @@ -2071,7 +2901,7 @@ if.then.35: ; preds = %while.exit.2 %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.137, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, 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 @@ -2082,7 +2912,7 @@ if.then.35: ; preds = %while.exit.2 %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.138, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.347, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2159,6 +2989,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i64 @IntCell.get(ptr %0, ptr %1) #0 { entry: @@ -2213,7 +3781,7 @@ entry: %ba.tmp = alloca { i64 }, align 8 store { i64 } %load, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 93, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2267,7 +3835,7 @@ entry: define internal void @print__ct_sbc6305862a3a863d__pack_s64(ptr %0, i64 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.139, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.348, i64 3 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2282,7 +3850,7 @@ entry: %gepN = getelementptr inbounds { 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.140, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.349, i64 0 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ba.val9 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %loadN, 1 @@ -2304,7 +3872,7 @@ entry: ; 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.141, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.350, i64 3 }) ret { ptr, i64 } %call } @@ -2315,35 +3883,35 @@ entry: %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.142, i64 15 }, { ptr, i64 } { ptr @str.143, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.351, i64 15 }, { ptr, i64 } { ptr @str.352, 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.112 + br label %while.hdr.128 -while.hdr.112: ; preds = %fv.merge, %entry +while.hdr.128: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.113, label %while.exit.114 + br i1 %icmp, label %while.body.129, label %while.exit.130 -while.body.113: ; preds = %while.hdr.112 +while.body.129: ; preds = %while.hdr.128 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.115, label %if.merge.116 + br i1 %icmpN, label %if.then.131, label %if.merge.132 -while.exit.114: ; preds = %while.hdr.112 +while.exit.130: ; preds = %while.hdr.128 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 1 }) ret { ptr, i64 } %callN -if.then.115: ; preds = %while.body.113 +if.then.131: ; preds = %while.body.129 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.145, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.354, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.116 + br label %if.merge.132 -if.merge.116: ; preds = %if.then.115, %while.body.113 +if.merge.132: ; preds = %if.then.131, %while.body.129 %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 @@ -2351,7 +3919,7 @@ if.merge.116: ; preds = %if.then.115, %while %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.149, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, 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 @@ -2371,31 +3939,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.112 + br label %while.hdr.128 -fv.default: ; preds = %if.merge.116 +fv.default: ; preds = %if.merge.132 br label %fv.merge -fv.case: ; preds = %if.merge.116 +fv.case: ; preds = %if.merge.132 %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.116 +fv.case17: ; preds = %if.merge.132 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.116 +fv.case20: ; preds = %if.merge.132 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.116 +fv.case24: ; preds = %if.merge.132 %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 @@ -2408,43 +3976,43 @@ 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.150, i64 10 }, { ptr, i64 } { ptr @str.151, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.359, i64 10 }, { ptr, i64 } { ptr @str.360, 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.117 + br label %while.hdr.133 -while.hdr.117: ; preds = %if.merge.121, %entry +while.hdr.133: ; preds = %if.merge.137, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.118, label %while.exit.119 + br i1 %icmp, label %while.body.134, label %while.exit.135 -while.body.118: ; preds = %while.hdr.117 +while.body.134: ; preds = %while.hdr.133 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.120, label %if.merge.121 + br i1 %icmpN, label %if.then.136, label %if.merge.137 -while.exit.119: ; preds = %while.hdr.117 +while.exit.135: ; preds = %while.hdr.133 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, i64 1 }) ret { ptr, i64 } %callN -if.then.120: ; preds = %while.body.118 +if.then.136: ; preds = %while.body.134 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.153, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.362, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.121 + br label %if.merge.137 -if.merge.121: ; preds = %if.then.120, %while.body.118 +if.merge.137: ; preds = %if.then.136, %while.body.134 %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.154, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.363, 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.155, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.364, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2455,7 +4023,7 @@ if.merge.121: ; preds = %if.then.120, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.117 + br label %while.hdr.133 } ; Function Attrs: nounwind @@ -2463,43 +4031,43 @@ 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.156, i64 3 }, { ptr, i64 } { ptr @str.157, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.365, i64 3 }, { ptr, i64 } { ptr @str.366, 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.122 + br label %while.hdr.138 -while.hdr.122: ; preds = %fv.merge, %entry +while.hdr.138: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.123, label %while.exit.124 + br i1 %icmp, label %while.body.139, label %while.exit.140 -while.body.123: ; preds = %while.hdr.122 +while.body.139: ; preds = %while.hdr.138 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.125, label %if.merge.126 + br i1 %icmpN, label %if.then.141, label %if.merge.142 -while.exit.124: ; preds = %while.hdr.122 +while.exit.140: ; preds = %while.hdr.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, i64 1 }) ret { ptr, i64 } %callN -if.then.125: ; preds = %while.body.123 +if.then.141: ; preds = %while.body.139 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.368, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.126 + br label %if.merge.142 -if.merge.126: ; preds = %if.then.125, %while.body.123 +if.merge.142: ; preds = %if.then.141, %while.body.139 %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.161, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.370, 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.162, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.371, 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 @@ -2516,12 +4084,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.122 + br label %while.hdr.138 -fv.default: ; preds = %if.merge.126 +fv.default: ; preds = %if.merge.142 br label %fv.merge -fv.case: ; preds = %if.merge.126 +fv.case: ; preds = %if.merge.142 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2532,43 +4100,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.163, i64 10 }, { ptr, i64 } { ptr @str.164, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.372, i64 10 }, { ptr, i64 } { ptr @str.373, 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.127 + br label %while.hdr.143 -while.hdr.127: ; preds = %fv.merge, %entry +while.hdr.143: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.128, label %while.exit.129 + br i1 %icmp, label %while.body.144, label %while.exit.145 -while.body.128: ; preds = %while.hdr.127 +while.body.144: ; preds = %while.hdr.143 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.130, label %if.merge.131 + br i1 %icmpN, label %if.then.146, label %if.merge.147 -while.exit.129: ; preds = %while.hdr.127 +while.exit.145: ; preds = %while.hdr.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.374, i64 1 }) ret { ptr, i64 } %callN -if.then.130: ; preds = %while.body.128 +if.then.146: ; preds = %while.body.144 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.131 + br label %if.merge.147 -if.merge.131: ; preds = %if.then.130, %while.body.128 +if.merge.147: ; preds = %if.then.146, %while.body.144 %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.169, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.378, 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.170, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.379, 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 @@ -2586,18 +4154,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.127 + br label %while.hdr.143 -fv.default: ; preds = %if.merge.131 +fv.default: ; preds = %if.merge.147 br label %fv.merge -fv.case: ; preds = %if.merge.131 +fv.case: ; preds = %if.merge.147 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.131 +fv.case17: ; preds = %if.merge.147 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2608,43 +4176,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.171, i64 9 }, { ptr, i64 } { ptr @str.172, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.380, i64 9 }, { ptr, i64 } { ptr @str.381, 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.132 + br label %while.hdr.148 -while.hdr.132: ; preds = %fv.merge, %entry +while.hdr.148: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.133, label %while.exit.134 + br i1 %icmp, label %while.body.149, label %while.exit.150 -while.body.133: ; preds = %while.hdr.132 +while.body.149: ; preds = %while.hdr.148 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.135, label %if.merge.136 + br i1 %icmpN, label %if.then.151, label %if.merge.152 -while.exit.134: ; preds = %while.hdr.132 +while.exit.150: ; preds = %while.hdr.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, i64 1 }) ret { ptr, i64 } %callN -if.then.135: ; preds = %while.body.133 +if.then.151: ; preds = %while.body.149 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.383, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.136 + br label %if.merge.152 -if.merge.136: ; preds = %if.then.135, %while.body.133 +if.merge.152: ; preds = %if.then.151, %while.body.149 %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.178, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.387, 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.179, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.388, 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 @@ -2663,24 +4231,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.132 + br label %while.hdr.148 -fv.default: ; preds = %if.merge.136 +fv.default: ; preds = %if.merge.152 br label %fv.merge -fv.case: ; preds = %if.merge.136 +fv.case: ; preds = %if.merge.152 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.136 +fv.case17: ; preds = %if.merge.152 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.136 +fv.case21: ; preds = %if.merge.152 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2693,43 +4261,43 @@ 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.180, i64 5 }, { ptr, i64 } { ptr @str.181, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.389, i64 5 }, { ptr, i64 } { ptr @str.390, 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.137 + br label %while.hdr.153 -while.hdr.137: ; preds = %fv.merge, %entry +while.hdr.153: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.138, label %while.exit.139 + br i1 %icmp, label %while.body.154, label %while.exit.155 -while.body.138: ; preds = %while.hdr.137 +while.body.154: ; preds = %while.hdr.153 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.140, label %if.merge.141 + br i1 %icmpN, label %if.then.156, label %if.merge.157 -while.exit.139: ; preds = %while.hdr.137 +while.exit.155: ; preds = %while.hdr.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.182, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, i64 1 }) ret { ptr, i64 } %callN -if.then.140: ; preds = %while.body.138 +if.then.156: ; preds = %while.body.154 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.183, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.392, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.141 + br label %if.merge.157 -if.merge.141: ; preds = %if.then.140, %while.body.138 +if.merge.157: ; preds = %if.then.156, %while.body.154 %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.187, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.396, 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.188, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.397, 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 @@ -2748,23 +4316,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.137 + br label %while.hdr.153 -fv.default: ; preds = %if.merge.141 +fv.default: ; preds = %if.merge.157 br label %fv.merge -fv.case: ; preds = %if.merge.141 +fv.case: ; preds = %if.merge.157 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.141 +fv.case17: ; preds = %if.merge.157 %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.141 +fv.case20: ; preds = %if.merge.157 %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 @@ -2777,43 +4345,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.189, i64 8 }, { ptr, i64 } { ptr @str.190, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.398, i64 8 }, { ptr, i64 } { ptr @str.399, 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.142 + br label %while.hdr.158 -while.hdr.142: ; preds = %fv.merge, %entry +while.hdr.158: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.143, label %while.exit.144 + br i1 %icmp, label %while.body.159, label %while.exit.160 -while.body.143: ; preds = %while.hdr.142 +while.body.159: ; preds = %while.hdr.158 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.145, label %if.merge.146 + br i1 %icmpN, label %if.then.161, label %if.merge.162 -while.exit.144: ; preds = %while.hdr.142 +while.exit.160: ; preds = %while.hdr.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.191, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.400, i64 1 }) ret { ptr, i64 } %callN -if.then.145: ; preds = %while.body.143 +if.then.161: ; preds = %while.body.159 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.192, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.401, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.146 + br label %if.merge.162 -if.merge.146: ; preds = %if.then.145, %while.body.143 +if.merge.162: ; preds = %if.then.161, %while.body.159 %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.196, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.405, 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.197, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.406, 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 @@ -2832,23 +4400,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.142 + br label %while.hdr.158 -fv.default: ; preds = %if.merge.146 +fv.default: ; preds = %if.merge.162 br label %fv.merge -fv.case: ; preds = %if.merge.146 +fv.case: ; preds = %if.merge.162 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.146 +fv.case17: ; preds = %if.merge.162 %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.146 +fv.case20: ; preds = %if.merge.162 %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 @@ -2860,43 +4428,43 @@ 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.198, i64 17 }, { ptr, i64 } { ptr @str.199, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.407, i64 17 }, { ptr, i64 } { ptr @str.408, 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.147 + br label %while.hdr.163 -while.hdr.147: ; preds = %fv.merge, %entry +while.hdr.163: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.148, label %while.exit.149 + br i1 %icmp, label %while.body.164, label %while.exit.165 -while.body.148: ; preds = %while.hdr.147 +while.body.164: ; preds = %while.hdr.163 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.150, label %if.merge.151 + br i1 %icmpN, label %if.then.166, label %if.merge.167 -while.exit.149: ; preds = %while.hdr.147 +while.exit.165: ; preds = %while.hdr.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.200, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.409, i64 1 }) ret { ptr, i64 } %callN -if.then.150: ; preds = %while.body.148 +if.then.166: ; preds = %while.body.164 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.201, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.410, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.151 + br label %if.merge.167 -if.merge.151: ; preds = %if.then.150, %while.body.148 +if.merge.167: ; preds = %if.then.166, %while.body.164 %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.206, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.415, 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.207, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.416, 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 @@ -2916,29 +4484,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.147 + br label %while.hdr.163 -fv.default: ; preds = %if.merge.151 +fv.default: ; preds = %if.merge.167 br label %fv.merge -fv.case: ; preds = %if.merge.151 +fv.case: ; preds = %if.merge.167 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.151 +fv.case17: ; preds = %if.merge.167 %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.151 +fv.case20: ; preds = %if.merge.167 %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.151 +fv.case23: ; preds = %if.merge.167 %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 @@ -2950,43 +4518,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.208, i64 7 }, { ptr, i64 } { ptr @str.209, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.417, i64 7 }, { ptr, i64 } { ptr @str.418, 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.152 + br label %while.hdr.168 -while.hdr.152: ; preds = %fv.merge, %entry +while.hdr.168: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.153, label %while.exit.154 + br i1 %icmp, label %while.body.169, label %while.exit.170 -while.body.153: ; preds = %while.hdr.152 +while.body.169: ; preds = %while.hdr.168 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.155, label %if.merge.156 + br i1 %icmpN, label %if.then.171, label %if.merge.172 -while.exit.154: ; preds = %while.hdr.152 +while.exit.170: ; preds = %while.hdr.168 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.210, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 1 }) ret { ptr, i64 } %callN -if.then.155: ; preds = %while.body.153 +if.then.171: ; preds = %while.body.169 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.211, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.156 + br label %if.merge.172 -if.merge.156: ; preds = %if.then.155, %while.body.153 +if.merge.172: ; preds = %if.then.171, %while.body.169 %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.214, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.423, 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.215, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.424, 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 %alloca, align 8 @@ -3004,67 +4572,1436 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.152 + br label %while.hdr.168 -fv.default: ; preds = %if.merge.156 +fv.default: ; preds = %if.merge.172 br label %fv.merge -fv.case: ; preds = %if.merge.156 +fv.case: ; preds = %if.merge.172 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.156 +fv.case17: ; preds = %if.merge.172 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.425, i64 4 }, { ptr, i64 } { ptr @str.426, 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.173 + +while.hdr.173: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.174, label %while.exit.175 + +while.body.174: ; preds = %while.hdr.173 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.176, label %if.merge.177 + +while.exit.175: ; preds = %while.hdr.173 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.427, i64 1 }) + ret { ptr, i64 } %callN + +if.then.176: ; preds = %while.body.174 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.428, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.177 + +if.merge.177: ; preds = %if.then.176, %while.body.174 + %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.430, 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.431, 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.173 + +fv.default: ; preds = %if.merge.177 + br label %fv.merge + +fv.case: ; preds = %if.merge.177 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.432, i64 10 }, { ptr, i64 } { ptr @str.433, 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.178 + +while.hdr.178: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.179, label %while.exit.180 + +while.body.179: ; preds = %while.hdr.178 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.181, label %if.merge.182 + +while.exit.180: ; preds = %while.hdr.178 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.434, i64 1 }) + ret { ptr, i64 } %callN + +if.then.181: ; preds = %while.body.179 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.435, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.182 + +if.merge.182: ; preds = %if.then.181, %while.body.179 + %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.441, 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.442, 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.178 + +fv.default: ; preds = %if.merge.182 + br label %fv.merge + +fv.case: ; preds = %if.merge.182 + %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.182 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.182 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.182 + %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.182 + %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.443, i64 13 }, { ptr, i64 } { ptr @str.444, 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.183 + +while.hdr.183: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.184, label %while.exit.185 + +while.body.184: ; preds = %while.hdr.183 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.186, label %if.merge.187 + +while.exit.185: ; preds = %while.hdr.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.445, i64 1 }) + ret { ptr, i64 } %callN + +if.then.186: ; preds = %while.body.184 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.446, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.187 + +if.merge.187: ; preds = %if.then.186, %while.body.184 + %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.449, 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.450, 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.183 + +fv.default: ; preds = %if.merge.187 + br label %fv.merge + +fv.case: ; preds = %if.merge.187 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.187 + %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.451, i64 8 }, { ptr, i64 } { ptr @str.452, 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.188 + +while.hdr.188: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.189, label %while.exit.190 + +while.body.189: ; preds = %while.hdr.188 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.191, label %if.merge.192 + +while.exit.190: ; preds = %while.hdr.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.453, i64 1 }) + ret { ptr, i64 } %callN + +if.then.191: ; preds = %while.body.189 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.454, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.192 + +if.merge.192: ; preds = %if.then.191, %while.body.189 + %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.460, 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.461, 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.188 + +fv.default: ; preds = %if.merge.192 + br label %fv.merge + +fv.case: ; preds = %if.merge.192 + %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.192 + %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.192 + %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.192 + %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.192 + %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.462, i64 5 }, { ptr, i64 } { ptr @str.463, 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.193 + +while.hdr.193: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.194, label %while.exit.195 + +while.body.194: ; preds = %while.hdr.193 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.196, label %if.merge.197 + +while.exit.195: ; preds = %while.hdr.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.464, i64 1 }) + ret { ptr, i64 } %callN + +if.then.196: ; preds = %while.body.194 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.465, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.197 + +if.merge.197: ; preds = %if.then.196, %while.body.194 + %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.469, 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.470, 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.193 + +fv.default: ; preds = %if.merge.197 + br label %fv.merge + +fv.case: ; preds = %if.merge.197 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.197 + %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.197 + %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.471, i64 6 }, { ptr, i64 } { ptr @str.472, 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.198 + +while.hdr.198: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.199, label %while.exit.200 + +while.body.199: ; preds = %while.hdr.198 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.201, label %if.merge.202 + +while.exit.200: ; preds = %while.hdr.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.473, i64 1 }) + ret { ptr, i64 } %callN + +if.then.201: ; preds = %while.body.199 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.474, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.202 + +if.merge.202: ; preds = %if.then.201, %while.body.199 + %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.478, 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.479, 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.198 + +fv.default: ; preds = %if.merge.202 + br label %fv.merge + +fv.case: ; preds = %if.merge.202 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.202 + %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.202 + %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.480, i64 6 }, { ptr, i64 } { ptr @str.481, 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.203 + +while.hdr.203: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.204, label %while.exit.205 + +while.body.204: ; preds = %while.hdr.203 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.206, label %if.merge.207 + +while.exit.205: ; preds = %while.hdr.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.482, i64 1 }) + ret { ptr, i64 } %callN + +if.then.206: ; preds = %while.body.204 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.483, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.207 + +if.merge.207: ; preds = %if.then.206, %while.body.204 + %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.486, 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.487, 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.203 + +fv.default: ; preds = %if.merge.207 + br label %fv.merge + +fv.case: ; preds = %if.merge.207 + %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.207 + %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 54, 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.488, i64 4 }, { ptr, i64 } { ptr @str.489, 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.208 + +while.hdr.208: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.209, label %while.exit.210 + +while.body.209: ; preds = %while.hdr.208 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.211, label %if.merge.212 + +while.exit.210: ; preds = %while.hdr.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.490, i64 1 }) + ret { ptr, i64 } %callN + +if.then.211: ; preds = %while.body.209 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.491, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.212 + +if.merge.212: ; preds = %if.then.211, %while.body.209 + %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.495, 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.496, 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.208 + +fv.default: ; preds = %if.merge.212 + br label %fv.merge + +fv.case: ; preds = %if.merge.212 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.212 + %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.212 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.497, i64 6 }, { ptr, i64 } { ptr @str.498, 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.213 + +while.hdr.213: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.214, label %while.exit.215 + +while.body.214: ; preds = %while.hdr.213 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.216, label %if.merge.217 + +while.exit.215: ; preds = %while.hdr.213 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.499, i64 1 }) + ret { ptr, i64 } %callN + +if.then.216: ; preds = %while.body.214 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.500, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.217 + +if.merge.217: ; preds = %if.then.216, %while.body.214 + %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.504, 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.505, 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.213 + +fv.default: ; preds = %if.merge.217 + br label %fv.merge + +fv.case: ; preds = %if.merge.217 + %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.217 + %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.217 + %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 26, i64 undef }, i64 %ba.p2i23, 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.506, i64 12 }, { ptr, i64 } { ptr @str.507, 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.218 + +while.hdr.218: ; preds = %if.merge.222, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.219, label %while.exit.220 + +while.body.219: ; preds = %while.hdr.218 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.221, label %if.merge.222 + +while.exit.220: ; preds = %while.hdr.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.508, i64 1 }) + ret { ptr, i64 } %callN + +if.then.221: ; preds = %while.body.219 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.509, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.222 + +if.merge.222: ; preds = %if.then.221, %while.body.219 + %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.510, 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.511, 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.218 +} + +; 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.512, i64 8 }, { ptr, i64 } { ptr @str.513, 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.223 + +while.hdr.223: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.224, label %while.exit.225 + +while.body.224: ; preds = %while.hdr.223 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.226, label %if.merge.227 + +while.exit.225: ; preds = %while.hdr.223 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.514, i64 1 }) + ret { ptr, i64 } %callN + +if.then.226: ; preds = %while.body.224 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.515, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.227 + +if.merge.227: ; preds = %if.then.226, %while.body.224 + %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.519, 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.520, 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.223 + +fv.default: ; preds = %if.merge.227 + br label %fv.merge + +fv.case: ; preds = %if.merge.227 + %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.227 + %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.227 + %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.521, i64 7 }, { ptr, i64 } { ptr @str.522, 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.228 + +while.hdr.228: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.229, label %while.exit.230 + +while.body.229: ; preds = %while.hdr.228 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.231, label %if.merge.232 + +while.exit.230: ; preds = %while.hdr.228 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.523, i64 1 }) + ret { ptr, i64 } %callN + +if.then.231: ; preds = %while.body.229 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.524, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.232 + +if.merge.232: ; preds = %if.then.231, %while.body.229 + %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.528, 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.529, 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.228 + +fv.default: ; preds = %if.merge.232 + br label %fv.merge + +fv.case: ; preds = %if.merge.232 + %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.232 + %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.232 + %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 77, 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.530, i64 9 }, { ptr, i64 } { ptr @str.531, 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.233 + +while.hdr.233: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.234, label %while.exit.235 + +while.body.234: ; preds = %while.hdr.233 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.236, label %if.merge.237 + +while.exit.235: ; preds = %while.hdr.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.532, i64 1 }) + ret { ptr, i64 } %callN + +if.then.236: ; preds = %while.body.234 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.533, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.237 + +if.merge.237: ; preds = %if.then.236, %while.body.234 + %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.536, 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.537, 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.233 + +fv.default: ; preds = %if.merge.237 + br label %fv.merge + +fv.case: ; preds = %if.merge.237 + %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.237 + %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.538, i64 4 }, { ptr, i64 } { ptr @str.539, 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.238 + +while.hdr.238: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.239, label %while.exit.240 + +while.body.239: ; preds = %while.hdr.238 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.241, label %if.merge.242 + +while.exit.240: ; preds = %while.hdr.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.540, i64 1 }) + ret { ptr, i64 } %callN + +if.then.241: ; preds = %while.body.239 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.541, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.242 + +if.merge.242: ; preds = %if.then.241, %while.body.239 + %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.544, 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.545, 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.238 + +fv.default: ; preds = %if.merge.242 + br label %fv.merge + +fv.case: ; preds = %if.merge.242 + %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.242 + %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.546, i64 6 }, { ptr, i64 } { ptr @str.547, 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.243 + +while.hdr.243: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.244, label %while.exit.245 + +while.body.244: ; preds = %while.hdr.243 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.246, label %if.merge.247 + +while.exit.245: ; preds = %while.hdr.243 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.548, i64 1 }) + ret { ptr, i64 } %callN + +if.then.246: ; preds = %while.body.244 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.549, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.247 + +if.merge.247: ; preds = %if.then.246, %while.body.244 + %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.557, 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.558, 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.243 + +fv.default: ; preds = %if.merge.247 + br label %fv.merge + +fv.case: ; preds = %if.merge.247 + %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.247 + %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.247 + %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.247 + %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.247 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.247 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.247 + %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 81, 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.559, i64 6 }, { ptr, i64 } { ptr @str.560, 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.248 + +while.hdr.248: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.249, label %while.exit.250 + +while.body.249: ; preds = %while.hdr.248 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.251, label %if.merge.252 + +while.exit.250: ; preds = %while.hdr.248 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.561, i64 1 }) + ret { ptr, i64 } %callN + +if.then.251: ; preds = %while.body.249 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.562, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.252 + +if.merge.252: ; preds = %if.then.251, %while.body.249 + %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.567, 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.568, 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.248 + +fv.default: ; preds = %if.merge.252 + br label %fv.merge + +fv.case: ; preds = %if.merge.252 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.252 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.252 + %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.252 + %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__IntCell(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.216, i64 7 }, { ptr, i64 } { ptr @str.217, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.569, i64 7 }, { ptr, i64 } { ptr @str.570, 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.157 + br label %while.hdr.253 -while.hdr.157: ; preds = %fv.merge, %entry +while.hdr.253: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.158, label %while.exit.159 + br i1 %icmp, label %while.body.254, label %while.exit.255 -while.body.158: ; preds = %while.hdr.157 +while.body.254: ; preds = %while.hdr.253 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.160, label %if.merge.161 + br i1 %icmpN, label %if.then.256, label %if.merge.257 -while.exit.159: ; preds = %while.hdr.157 +while.exit.255: ; preds = %while.hdr.253 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.218, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.571, i64 1 }) ret { ptr, i64 } %callN -if.then.160: ; preds = %while.body.158 +if.then.256: ; preds = %while.body.254 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.219, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.572, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.161 + br label %if.merge.257 -if.merge.161: ; preds = %if.then.160, %while.body.158 +if.merge.257: ; preds = %if.then.256, %while.body.254 %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.221, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.574, 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.222, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.575, 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 @@ -3081,12 +6018,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.157 + br label %while.hdr.253 -fv.default: ; preds = %if.merge.161 +fv.default: ; preds = %if.merge.257 br label %fv.merge -fv.case: ; preds = %if.merge.161 +fv.case: ; preds = %if.merge.257 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -3097,43 +6034,43 @@ define internal { ptr, i64 } @struct_to_string__R(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.223, i64 1 }, { ptr, i64 } { ptr @str.224, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.576, i64 1 }, { ptr, i64 } { ptr @str.577, 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.162 + br label %while.hdr.258 -while.hdr.162: ; preds = %if.merge.166, %entry +while.hdr.258: ; preds = %if.merge.262, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.163, label %while.exit.164 + br i1 %icmp, label %while.body.259, label %while.exit.260 -while.body.163: ; preds = %while.hdr.162 +while.body.259: ; preds = %while.hdr.258 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.165, label %if.merge.166 + br i1 %icmpN, label %if.then.261, label %if.merge.262 -while.exit.164: ; preds = %while.hdr.162 +while.exit.260: ; preds = %while.hdr.258 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.225, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.578, i64 1 }) ret { ptr, i64 } %callN -if.then.165: ; preds = %while.body.163 +if.then.261: ; preds = %while.body.259 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.226, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.579, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.166 + br label %if.merge.262 -if.merge.166: ; preds = %if.then.165, %while.body.163 +if.merge.262: ; preds = %if.then.261, %while.body.259 %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.227, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.580, 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.228, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.581, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -3144,7 +6081,7 @@ if.merge.166: ; preds = %if.then.165, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.162 + br label %while.hdr.258 } ; Function Attrs: nounwind @@ -3152,43 +6089,43 @@ define internal { ptr, i64 } @struct_to_string__Combined(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.229, i64 8 }, { ptr, i64 } { ptr @str.230, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.582, i64 8 }, { ptr, i64 } { ptr @str.583, 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.167 + br label %while.hdr.263 -while.hdr.167: ; preds = %if.merge.171, %entry +while.hdr.263: ; preds = %if.merge.267, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.168, label %while.exit.169 + br i1 %icmp, label %while.body.264, label %while.exit.265 -while.body.168: ; preds = %while.hdr.167 +while.body.264: ; preds = %while.hdr.263 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.170, label %if.merge.171 + br i1 %icmpN, label %if.then.266, label %if.merge.267 -while.exit.169: ; preds = %while.hdr.167 +while.exit.265: ; preds = %while.hdr.263 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.231, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.584, i64 1 }) ret { ptr, i64 } %callN -if.then.170: ; preds = %while.body.168 +if.then.266: ; preds = %while.body.264 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.232, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.585, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.171 + br label %if.merge.267 -if.merge.171: ; preds = %if.then.170, %while.body.168 +if.merge.267: ; preds = %if.then.266, %while.body.264 %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.233, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.586, 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.234, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.587, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -3199,7 +6136,7 @@ if.merge.171: ; preds = %if.then.170, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.167 + br label %while.hdr.263 } ; Function Attrs: nounwind @@ -3207,43 +6144,43 @@ define internal { ptr, i64 } @struct_to_string__VL__s64(ptr %0, { ptr, ptr } %1) entry: %alloca = alloca { ptr, ptr }, align 8 store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.235, i64 7 }, { ptr, i64 } { ptr @str.236, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.588, i64 7 }, { ptr, i64 } { ptr @str.589, 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.172 + br label %while.hdr.268 -while.hdr.172: ; preds = %fv.merge, %entry +while.hdr.268: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.173, label %while.exit.174 + br i1 %icmp, label %while.body.269, label %while.exit.270 -while.body.173: ; preds = %while.hdr.172 +while.body.269: ; preds = %while.hdr.268 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.175, label %if.merge.176 + br i1 %icmpN, label %if.then.271, label %if.merge.272 -while.exit.174: ; preds = %while.hdr.172 +while.exit.270: ; preds = %while.hdr.268 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.237, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.590, i64 1 }) ret { ptr, i64 } %callN -if.then.175: ; preds = %while.body.173 +if.then.271: ; preds = %while.body.269 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.238, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.591, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.176 + br label %if.merge.272 -if.merge.176: ; preds = %if.then.175, %while.body.173 +if.merge.272: ; preds = %if.then.271, %while.body.269 %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.241, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.594, 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.242, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.595, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, ptr }, ptr %alloca, align 8 @@ -3261,18 +6198,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.172 + br label %while.hdr.268 -fv.default: ; preds = %if.merge.176 +fv.default: ; preds = %if.merge.272 br label %fv.merge -fv.case: ; preds = %if.merge.176 +fv.case: ; preds = %if.merge.272 %fv.field = extractvalue { ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.176 +fv.case17: ; preds = %if.merge.272 %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 @@ -3284,43 +6221,43 @@ define internal { ptr, i64 } @struct_to_string____VL__s64__Vtable(ptr %0, { ptr entry: %alloca = alloca { ptr }, align 8 store { ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.243, i64 17 }, { ptr, i64 } { ptr @str.244, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.596, i64 17 }, { ptr, i64 } { ptr @str.597, 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.177 + br label %while.hdr.273 -while.hdr.177: ; preds = %fv.merge, %entry +while.hdr.273: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.178, label %while.exit.179 + br i1 %icmp, label %while.body.274, label %while.exit.275 -while.body.178: ; preds = %while.hdr.177 +while.body.274: ; preds = %while.hdr.273 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.180, label %if.merge.181 + br i1 %icmpN, label %if.then.276, label %if.merge.277 -while.exit.179: ; preds = %while.hdr.177 +while.exit.275: ; preds = %while.hdr.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.245, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.598, i64 1 }) ret { ptr, i64 } %callN -if.then.180: ; preds = %while.body.178 +if.then.276: ; preds = %while.body.274 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.246, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.599, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.181 + br label %if.merge.277 -if.merge.181: ; preds = %if.then.180, %while.body.178 +if.merge.277: ; preds = %if.then.276, %while.body.274 %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.248, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.601, 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.249, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.602, 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 @@ -3337,12 +6274,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.177 + br label %while.hdr.273 -fv.default: ; preds = %if.merge.181 +fv.default: ; preds = %if.merge.277 br label %fv.merge -fv.case: ; preds = %if.merge.181 +fv.case: ; preds = %if.merge.277 %fv.field = extractvalue { ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 @@ -3354,43 +6291,43 @@ define internal { ptr, i64 } @struct_to_string__VL(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.250, i64 2 }, { ptr, i64 } { ptr @str.251, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.603, i64 2 }, { ptr, i64 } { ptr @str.604, 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.182 + br label %while.hdr.278 -while.hdr.182: ; preds = %if.merge.186, %entry +while.hdr.278: ; preds = %if.merge.282, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.183, label %while.exit.184 + br i1 %icmp, label %while.body.279, label %while.exit.280 -while.body.183: ; preds = %while.hdr.182 +while.body.279: ; preds = %while.hdr.278 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.185, label %if.merge.186 + br i1 %icmpN, label %if.then.281, label %if.merge.282 -while.exit.184: ; preds = %while.hdr.182 +while.exit.280: ; preds = %while.hdr.278 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.252, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.605, i64 1 }) ret { ptr, i64 } %callN -if.then.185: ; preds = %while.body.183 +if.then.281: ; preds = %while.body.279 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.253, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.186 + br label %if.merge.282 -if.merge.186: ; preds = %if.then.185, %while.body.183 +if.merge.282: ; preds = %if.then.281, %while.body.279 %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.254, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.607, 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.255, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -3401,7 +6338,7 @@ if.merge.186: ; preds = %if.then.185, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.182 + br label %while.hdr.278 } ; Function Attrs: nounwind @@ -3410,43 +6347,43 @@ entry: %alloca = alloca { { { ptr, ptr } }, i64 }, align 8 %ba.tmp = alloca { { ptr, ptr } }, align 8 store { { { ptr, ptr } }, i64 } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.256, i64 18 }, { ptr, i64 } { ptr @str.257, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.609, i64 18 }, { ptr, i64 } { ptr @str.610, 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.187 + br label %while.hdr.283 -while.hdr.187: ; preds = %fv.merge, %entry +while.hdr.283: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.188, label %while.exit.189 + br i1 %icmp, label %while.body.284, label %while.exit.285 -while.body.188: ; preds = %while.hdr.187 +while.body.284: ; preds = %while.hdr.283 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.190, label %if.merge.191 + br i1 %icmpN, label %if.then.286, label %if.merge.287 -while.exit.189: ; preds = %while.hdr.187 +while.exit.285: ; preds = %while.hdr.283 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.258, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 1 }) ret { ptr, i64 } %callN -if.then.190: ; preds = %while.body.188 +if.then.286: ; preds = %while.body.284 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.259, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.191 + br label %if.merge.287 -if.merge.191: ; preds = %if.then.190, %while.body.188 +if.merge.287: ; preds = %if.then.286, %while.body.284 %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.262, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.615, 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.263, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { { { ptr, ptr } }, i64 }, ptr %alloca, align 8 @@ -3464,24 +6401,297 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.187 + br label %while.hdr.283 -fv.default: ; preds = %if.merge.191 +fv.default: ; preds = %if.merge.287 br label %fv.merge -fv.case: ; preds = %if.merge.191 +fv.case: ; preds = %if.merge.287 %fv.field = extractvalue { { { ptr, ptr } }, i64 } %loadN, 0 store { { ptr, ptr } } %fv.field, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 53, i64 undef }, i64 %ba.p2i, 1 + %fv.val = insertvalue { i64, i64 } { i64 108, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.191 +fv.case17: ; preds = %if.merge.287 %fv.field18 = extractvalue { { { ptr, 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 } @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.622, 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.617, 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.295, label %if.merge.296 + +if.then.295: ; 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.624, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.623, 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.296 + +if.merge.296: ; preds = %if.then.295, %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.629, 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.625, 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.297, label %if.merge.298 + +if.then.297: ; 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.631, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.630, 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.298 + +if.merge.298: ; preds = %if.then.297, %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.639, 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.632, 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.299: ; 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.641, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.640, 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.300 + +if.merge.300: ; preds = %if.then.299, %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.299, label %if.merge.300 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.650, 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.642, 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.301, label %if.merge.302 + +if.then.301: ; 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.652, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, 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.302 + +if.merge.302: ; preds = %if.then.301, %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.659, 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.653, 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.303, label %if.merge.304 + +if.then.303: ; 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.661, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.660, 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.304 + +if.merge.304: ; preds = %if.then.303, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -3489,33 +6699,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.264, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.662, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.196 + br label %while.hdr.313 -while.hdr.196: ; preds = %if.merge.200, %entry +while.hdr.313: ; preds = %if.merge.317, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.197, label %while.exit.198 + br i1 %icmp, label %while.body.314, label %while.exit.315 -while.body.197: ; preds = %while.hdr.196 +while.body.314: ; preds = %while.hdr.313 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.199, label %if.merge.200 + br i1 %icmpN, label %if.then.316, label %if.merge.317 -while.exit.198: ; preds = %while.hdr.196 +while.exit.315: ; preds = %while.hdr.313 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.265, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.663, i64 1 }) ret { ptr, i64 } %call -if.then.199: ; preds = %while.body.197 +if.then.316: ; preds = %while.body.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.266, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.664, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.200 + br label %if.merge.317 -if.merge.200: ; preds = %if.then.199, %while.body.197 +if.merge.317: ; preds = %if.then.316, %while.body.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3529,7 +6739,211 @@ if.merge.200: ; preds = %if.then.199, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.196 + br label %while.hdr.313 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.665, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.318 + +while.hdr.318: ; preds = %if.merge.322, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.319, label %while.exit.320 + +while.body.319: ; preds = %while.hdr.318 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.321, label %if.merge.322 + +while.exit.320: ; preds = %while.hdr.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.666, i64 1 }) + ret { ptr, i64 } %call + +if.then.321: ; preds = %while.body.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.667, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.322 + +if.merge.322: ; preds = %if.then.321, %while.body.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.318 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.668, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.323 + +while.hdr.323: ; preds = %if.merge.327, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.324, label %while.exit.325 + +while.body.324: ; preds = %while.hdr.323 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.326, label %if.merge.327 + +while.exit.325: ; preds = %while.hdr.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.669, i64 1 }) + ret { ptr, i64 } %call + +if.then.326: ; preds = %while.body.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.670, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.327 + +if.merge.327: ; preds = %if.then.326, %while.body.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.323 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.671, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.328 + +while.hdr.328: ; preds = %if.merge.332, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.329, label %while.exit.330 + +while.body.329: ; preds = %while.hdr.328 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.331, label %if.merge.332 + +while.exit.330: ; preds = %while.hdr.328 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.672, i64 1 }) + ret { ptr, i64 } %call + +if.then.331: ; preds = %while.body.329 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.673, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.332 + +if.merge.332: ; preds = %if.then.331, %while.body.329 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.328 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.674, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.333 + +while.hdr.333: ; preds = %if.merge.337, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.334, label %while.exit.335 + +while.body.334: ; preds = %while.hdr.333 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.336, label %if.merge.337 + +while.exit.335: ; preds = %while.hdr.333 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.675, i64 1 }) + ret { ptr, i64 } %call + +if.then.336: ; preds = %while.body.334 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.676, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.337 + +if.merge.337: ; preds = %if.then.336, %while.body.334 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.333 } ; Function Attrs: nounwind @@ -3540,33 +6954,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.267, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.677, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.201 + br label %while.hdr.338 -while.hdr.201: ; preds = %if.merge.205, %entry +while.hdr.338: ; preds = %if.merge.342, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.202, label %while.exit.203 + br i1 %icmp, label %while.body.339, label %while.exit.340 -while.body.202: ; preds = %while.hdr.201 +while.body.339: ; preds = %while.hdr.338 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.204, label %if.merge.205 + br i1 %icmpN, label %if.then.341, label %if.merge.342 -while.exit.203: ; preds = %while.hdr.201 +while.exit.340: ; preds = %while.hdr.338 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.268, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.678, i64 1 }) ret { ptr, i64 } %call -if.then.204: ; preds = %while.body.202 +if.then.341: ; preds = %while.body.339 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.269, i64 2 }) + %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 - br label %if.merge.205 + br label %if.merge.342 -if.merge.205: ; preds = %if.then.204, %while.body.202 +if.merge.342: ; preds = %if.then.341, %while.body.339 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3582,7 +6996,7 @@ if.merge.205: ; preds = %if.then.204, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.201 + br label %while.hdr.338 } ; Function Attrs: nounwind @@ -3592,35 +7006,35 @@ entry: %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.270, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.680, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.211 + br label %while.hdr.351 -while.hdr.211: ; preds = %if.merge.215, %entry +while.hdr.351: ; preds = %if.merge.355, %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.212, label %while.exit.213 + br i1 %icmp, label %while.body.352, label %while.exit.353 -while.body.212: ; preds = %while.hdr.211 +while.body.352: ; preds = %while.hdr.351 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.214, label %if.merge.215 + br i1 %icmpN, label %if.then.354, label %if.merge.355 -while.exit.213: ; preds = %while.hdr.211 +while.exit.353: ; preds = %while.hdr.351 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.271, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.681, i64 1 }) ret { ptr, i64 } %call -if.then.214: ; preds = %while.body.212 +if.then.354: ; preds = %while.body.352 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.272, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.682, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.215 + br label %if.merge.355 -if.merge.215: ; preds = %if.then.214, %while.body.212 +if.merge.355: ; preds = %if.then.354, %while.body.352 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3636,7 +7050,167 @@ if.merge.215: ; preds = %if.then.214, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.211 + br label %while.hdr.351 +} + +; 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.683, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.356 + +while.hdr.356: ; preds = %if.merge.360, %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.357, label %while.exit.358 + +while.body.357: ; preds = %while.hdr.356 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.359, label %if.merge.360 + +while.exit.358: ; preds = %while.hdr.356 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.684, i64 1 }) + ret { ptr, i64 } %call + +if.then.359: ; preds = %while.body.357 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.685, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.360 + +if.merge.360: ; preds = %if.then.359, %while.body.357 + %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.356 +} + +; 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.686, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.361 + +while.hdr.361: ; preds = %if.merge.365, %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.362, label %while.exit.363 + +while.body.362: ; preds = %while.hdr.361 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.364, label %if.merge.365 + +while.exit.363: ; preds = %while.hdr.361 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.687, i64 1 }) + ret { ptr, i64 } %call + +if.then.364: ; preds = %while.body.362 + %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 + br label %if.merge.365 + +if.merge.365: ; preds = %if.then.364, %while.body.362 + %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 76, 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.361 +} + +; 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.689, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.366 + +while.hdr.366: ; preds = %if.merge.370, %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.367, label %while.exit.368 + +while.body.367: ; preds = %while.hdr.366 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.369, label %if.merge.370 + +while.exit.368: ; preds = %while.hdr.366 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.690, i64 1 }) + ret { ptr, i64 } %call + +if.then.369: ; preds = %while.body.367 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.691, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.370 + +if.merge.370: ; preds = %if.then.369, %while.body.367 + %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 78, 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.366 } ; Function Attrs: nounwind @@ -3646,35 +7220,35 @@ entry: %ba.tmp = alloca {}, align 8 store { ptr, i64 } %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.273, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.692, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.216 + br label %while.hdr.371 -while.hdr.216: ; preds = %if.merge.220, %entry +while.hdr.371: ; preds = %if.merge.375, %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.217, label %while.exit.218 + br i1 %icmp, label %while.body.372, label %while.exit.373 -while.body.217: ; preds = %while.hdr.216 +while.body.372: ; preds = %while.hdr.371 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.219, label %if.merge.220 + br i1 %icmpN, label %if.then.374, label %if.merge.375 -while.exit.218: ; preds = %while.hdr.216 +while.exit.373: ; preds = %while.hdr.371 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.274, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.693, i64 1 }) ret { ptr, i64 } %call -if.then.219: ; preds = %while.body.217 +if.then.374: ; preds = %while.body.372 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.275, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.694, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.220 + br label %if.merge.375 -if.merge.220: ; preds = %if.then.219, %while.body.217 +if.merge.375: ; preds = %if.then.374, %while.body.372 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3683,14 +7257,14 @@ if.merge.220: ; preds = %if.then.219, %while %ig.val = load {}, ptr %ig.ptr, align 1 store {} %ig.val, ptr %ba.tmp, align 1 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 43, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 99, 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.216 + br label %while.hdr.371 } ; Function Attrs: nounwind @@ -3700,35 +7274,35 @@ entry: %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.276, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.695, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.221 + br label %while.hdr.376 -while.hdr.221: ; preds = %if.merge.225, %entry +while.hdr.376: ; preds = %if.merge.380, %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.222, label %while.exit.223 + br i1 %icmp, label %while.body.377, label %while.exit.378 -while.body.222: ; preds = %while.hdr.221 +while.body.377: ; preds = %while.hdr.376 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.224, label %if.merge.225 + br i1 %icmpN, label %if.then.379, label %if.merge.380 -while.exit.223: ; preds = %while.hdr.221 +while.exit.378: ; preds = %while.hdr.376 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.277, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.696, i64 1 }) ret { ptr, i64 } %call -if.then.224: ; preds = %while.body.222 +if.then.379: ; preds = %while.body.377 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.278, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.697, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.225 + br label %if.merge.380 -if.merge.225: ; preds = %if.then.224, %while.body.222 +if.merge.380: ; preds = %if.then.379, %while.body.377 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3744,7 +7318,7 @@ if.merge.225: ; preds = %if.then.224, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.221 + br label %while.hdr.376 } ; Function Attrs: nounwind @@ -3758,20 +7332,20 @@ entry: 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.252, label %if.else.253 + br i1 %icmp, label %if.then.420, label %if.else.421 -if.then.252: ; preds = %entry - br label %if.merge.254 +if.then.420: ; preds = %entry + br label %if.merge.422 -if.else.253: ; preds = %entry +if.else.421: ; 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.281, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.280, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.254 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.700, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.699, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.422 -if.merge.254: ; preds = %if.else.253, %if.then.252 - %bp = phi { ptr, i64 } [ { ptr @str.279, i64 4 }, %if.then.252 ], [ %callN, %if.else.253 ] +if.merge.422: ; preds = %if.else.421, %if.then.420 + %bp = phi { ptr, i64 } [ { ptr @str.698, i64 4 }, %if.then.420 ], [ %callN, %if.else.421 ] ret { ptr, i64 } %bp } @@ -3786,20 +7360,20 @@ entry: 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.268, label %if.else.269 + br i1 %icmp, label %if.then.436, label %if.else.437 -if.then.268: ; preds = %entry - br label %if.merge.270 +if.then.436: ; preds = %entry + br label %if.merge.438 -if.else.269: ; preds = %entry +if.else.437: ; 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.284, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.283, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.270 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.702, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.438 -if.merge.270: ; preds = %if.else.269, %if.then.268 - %bp = phi { ptr, i64 } [ { ptr @str.282, i64 4 }, %if.then.268 ], [ %callN, %if.else.269 ] +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.701, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] ret { ptr, i64 } %bp } @@ -3814,20 +7388,20 @@ entry: 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.271, label %if.else.272 + br i1 %icmp, label %if.then.439, label %if.else.440 -if.then.271: ; preds = %entry - br label %if.merge.273 +if.then.439: ; preds = %entry + br label %if.merge.441 -if.else.272: ; preds = %entry +if.else.440: ; 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.287, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.286, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.273 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.706, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.705, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.441 -if.merge.273: ; preds = %if.else.272, %if.then.271 - %bp = phi { ptr, i64 } [ { ptr @str.285, i64 4 }, %if.then.271 ], [ %callN, %if.else.272 ] +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.704, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] ret { ptr, i64 } %bp } @@ -3842,20 +7416,20 @@ entry: 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.274, label %if.else.275 + br i1 %icmp, label %if.then.442, label %if.else.443 -if.then.274: ; preds = %entry - br label %if.merge.276 +if.then.442: ; preds = %entry + br label %if.merge.444 -if.else.275: ; preds = %entry +if.else.443: ; 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.290, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.289, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.276 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.709, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.708, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.444 -if.merge.276: ; preds = %if.else.275, %if.then.274 - %bp = phi { ptr, i64 } [ { ptr @str.288, i64 4 }, %if.then.274 ], [ %callN, %if.else.275 ] +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.707, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] ret { ptr, i64 } %bp } @@ -3870,20 +7444,20 @@ entry: 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.277, label %if.else.278 + br i1 %icmp, label %if.then.445, label %if.else.446 -if.then.277: ; preds = %entry - br label %if.merge.279 +if.then.445: ; preds = %entry + br label %if.merge.447 -if.else.278: ; preds = %entry +if.else.446: ; 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.293, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.292, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.279 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.712, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.711, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.447 -if.merge.279: ; preds = %if.else.278, %if.then.277 - %bp = phi { ptr, i64 } [ { ptr @str.291, i64 4 }, %if.then.277 ], [ %callN, %if.else.278 ] +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.710, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] ret { ptr, i64 } %bp } @@ -3897,20 +7471,20 @@ entry: 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.280, label %if.else.281 + br i1 %icmp, label %if.then.448, label %if.else.449 -if.then.280: ; preds = %entry - br label %if.merge.282 +if.then.448: ; preds = %entry + br label %if.merge.450 -if.else.281: ; preds = %entry +if.else.449: ; 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.296, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.295, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.282 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.715, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.714, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.450 -if.merge.282: ; preds = %if.else.281, %if.then.280 - %bp = phi { ptr, i64 } [ { ptr @str.294, i64 4 }, %if.then.280 ], [ %callN, %if.else.281 ] +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.713, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] ret { ptr, i64 } %bp } @@ -3925,20 +7499,20 @@ entry: 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.283, label %if.else.284 + br i1 %icmp, label %if.then.451, label %if.else.452 -if.then.283: ; preds = %entry - br label %if.merge.285 +if.then.451: ; preds = %entry + br label %if.merge.453 -if.else.284: ; preds = %entry +if.else.452: ; 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.299, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.298, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.285 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.717, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.453 -if.merge.285: ; preds = %if.else.284, %if.then.283 - %bp = phi { ptr, i64 } [ { ptr @str.297, i64 4 }, %if.then.283 ], [ %callN, %if.else.284 ] +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.716, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] ret { ptr, i64 } %bp } @@ -3953,25 +7527,25 @@ entry: 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.286, label %if.else.287 + br i1 %icmp, label %if.then.454, label %if.else.455 -if.then.286: ; preds = %entry - br label %if.merge.288 +if.then.454: ; preds = %entry + br label %if.merge.456 -if.else.287: ; preds = %entry +if.else.455: ; 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.302, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.301, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.288 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.721, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.720, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.456 -if.merge.288: ; preds = %if.else.287, %if.then.286 - %bp = phi { ptr, i64 } [ { ptr @str.300, i64 4 }, %if.then.286 ], [ %callN, %if.else.287 ] +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.719, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_IntCell(ptr %0, ptr %1) #0 { +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 @@ -3981,384 +7555,20 @@ entry: 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.289, label %if.else.290 + br i1 %icmp, label %if.then.457, label %if.else.458 -if.then.289: ; preds = %entry - br label %if.merge.291 +if.then.457: ; preds = %entry + br label %if.merge.459 -if.else.290: ; preds = %entry +if.else.458: ; 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.305, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.304, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.291 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.723, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.459 -if.merge.291: ; preds = %if.else.290, %if.then.289 - %bp = phi { ptr, i64 } [ { ptr @str.303, i64 4 }, %if.then.289 ], [ %callN, %if.else.290 ] - 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.292, label %if.else.293 - -if.then.292: ; preds = %entry - br label %if.merge.294 - -if.else.293: ; 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.308, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.307, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.294 - -if.merge.294: ; preds = %if.else.293, %if.then.292 - %bp = phi { ptr, i64 } [ { ptr @str.306, i64 4 }, %if.then.292 ], [ %callN, %if.else.293 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.295, label %if.else.296 - -if.then.295: ; preds = %entry - br label %if.merge.297 - -if.else.296: ; 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.311, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.310, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.297 - -if.merge.297: ; preds = %if.else.296, %if.then.295 - %bp = phi { ptr, i64 } [ { ptr @str.309, i64 4 }, %if.then.295 ], [ %callN, %if.else.296 ] - 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.298, label %if.else.299 - -if.then.298: ; preds = %entry - br label %if.merge.300 - -if.else.299: ; 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.314, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.313, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.300 - -if.merge.300: ; preds = %if.else.299, %if.then.298 - %bp = phi { ptr, i64 } [ { ptr @str.312, i64 4 }, %if.then.298 ], [ %callN, %if.else.299 ] - 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.301, label %if.else.302 - -if.then.301: ; preds = %entry - br label %if.merge.303 - -if.else.302: ; 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.317, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.316, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.303 - -if.merge.303: ; preds = %if.else.302, %if.then.301 - %bp = phi { ptr, i64 } [ { ptr @str.315, i64 4 }, %if.then.301 ], [ %callN, %if.else.302 ] - 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.304, label %if.else.305 - -if.then.304: ; preds = %entry - br label %if.merge.306 - -if.else.305: ; 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.320, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.319, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.306 - -if.merge.306: ; preds = %if.else.305, %if.then.304 - %bp = phi { ptr, i64 } [ { ptr @str.318, i64 4 }, %if.then.304 ], [ %callN, %if.else.305 ] - 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.307, label %if.else.308 - -if.then.307: ; preds = %entry - br label %if.merge.309 - -if.else.308: ; 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.323, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.322, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.309 - -if.merge.309: ; preds = %if.else.308, %if.then.307 - %bp = phi { ptr, i64 } [ { ptr @str.321, i64 4 }, %if.then.307 ], [ %callN, %if.else.308 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Combined__s64__s64(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.310, label %if.else.311 - -if.then.310: ; preds = %entry - br label %if.merge.312 - -if.else.311: ; 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.326, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.325, i64 19 }, { ptr, i64 } %callN) - br label %if.merge.312 - -if.merge.312: ; preds = %if.else.311, %if.then.310 - %bp = phi { ptr, i64 } [ { ptr @str.324, i64 4 }, %if.then.310 ], [ %callN, %if.else.311 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(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.313, label %if.else.314 - -if.then.313: ; preds = %entry - br label %if.merge.315 - -if.else.314: ; 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.329, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.328, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.315 - -if.merge.315: ; preds = %if.else.314, %if.then.313 - %bp = phi { ptr, i64 } [ { ptr @str.327, i64 4 }, %if.then.313 ], [ %callN, %if.else.314 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(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.316, label %if.else.317 - -if.then.316: ; preds = %entry - br label %if.merge.318 - -if.else.317: ; 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.332, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.331, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.318 - -if.merge.318: ; preds = %if.else.317, %if.then.316 - %bp = phi { ptr, i64 } [ { ptr @str.330, i64 4 }, %if.then.316 ], [ %callN, %if.else.317 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_tu_VL__s64(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.319, label %if.else.320 - -if.then.319: ; preds = %entry - br label %if.merge.321 - -if.else.320: ; 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.335, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.334, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.321 - -if.merge.321: ; preds = %if.else.320, %if.then.319 - %bp = phi { ptr, i64 } [ { ptr @str.333, i64 4 }, %if.then.319 ], [ %callN, %if.else.320 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__s64__s64(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.322, label %if.else.323 - -if.then.322: ; preds = %entry - br label %if.merge.324 - -if.else.323: ; 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.338, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.337, i64 20 }, { ptr, i64 } %callN) - br label %if.merge.324 - -if.merge.324: ; preds = %if.else.323, %if.then.322 - %bp = phi { ptr, i64 } [ { ptr @str.336, i64 4 }, %if.then.322 ], [ %callN, %if.else.323 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_VL__s64(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.325, label %if.else.326 - -if.then.325: ; preds = %entry - br label %if.merge.327 - -if.else.326: ; 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.341, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.340, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.327 - -if.merge.327: ; preds = %if.else.326, %if.then.325 - %bp = phi { ptr, i64 } [ { ptr @str.339, i64 4 }, %if.then.325 ], [ %callN, %if.else.326 ] - 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.328, label %if.else.329 - -if.then.328: ; preds = %entry - br label %if.merge.330 - -if.else.329: ; 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.344, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.343, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.330 - -if.merge.330: ; preds = %if.else.329, %if.then.328 - %bp = phi { ptr, i64 } [ { ptr @str.342, i64 4 }, %if.then.328 ], [ %callN, %if.else.329 ] +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.722, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] ret { ptr, i64 } %bp } @@ -4373,20 +7583,746 @@ entry: 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.331, label %if.else.332 + br i1 %icmp, label %if.then.460, label %if.else.461 -if.then.331: ; preds = %entry - br label %if.merge.333 +if.then.460: ; preds = %entry + br label %if.merge.462 -if.else.332: ; preds = %entry +if.else.461: ; 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.347, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.346, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.333 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.727, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.726, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.462 -if.merge.333: ; preds = %if.else.332, %if.then.331 - %bp = phi { ptr, i64 } [ { ptr @str.345, i64 4 }, %if.then.331 ], [ %callN, %if.else.332 ] +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.725, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.730, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.729, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.728, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + 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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.733, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.732, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.731, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] + 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.469, label %if.else.470 + +if.then.469: ; preds = %entry + br label %if.merge.471 + +if.else.470: ; 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.736, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.735, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.471 + +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.734, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] + 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.472, label %if.else.473 + +if.then.472: ; preds = %entry + br label %if.merge.474 + +if.else.473: ; 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.739, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.738, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.474 + +if.merge.474: ; preds = %if.else.473, %if.then.472 + %bp = phi { ptr, i64 } [ { ptr @str.737, i64 4 }, %if.then.472 ], [ %callN, %if.else.473 ] + 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.475, label %if.else.476 + +if.then.475: ; preds = %entry + br label %if.merge.477 + +if.else.476: ; 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.742, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.741, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.477 + +if.merge.477: ; preds = %if.else.476, %if.then.475 + %bp = phi { ptr, i64 } [ { ptr @str.740, i64 4 }, %if.then.475 ], [ %callN, %if.else.476 ] + 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.478, label %if.else.479 + +if.then.478: ; preds = %entry + br label %if.merge.480 + +if.else.479: ; 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.745, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.744, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.480 + +if.merge.480: ; preds = %if.else.479, %if.then.478 + %bp = phi { ptr, i64 } [ { ptr @str.743, i64 4 }, %if.then.478 ], [ %callN, %if.else.479 ] + 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.481, label %if.else.482 + +if.then.481: ; preds = %entry + br label %if.merge.483 + +if.else.482: ; 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.748, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.747, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.483 + +if.merge.483: ; preds = %if.else.482, %if.then.481 + %bp = phi { ptr, i64 } [ { ptr @str.746, i64 4 }, %if.then.481 ], [ %callN, %if.else.482 ] + 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.484, label %if.else.485 + +if.then.484: ; preds = %entry + br label %if.merge.486 + +if.else.485: ; 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.751, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.750, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.486 + +if.merge.486: ; preds = %if.else.485, %if.then.484 + %bp = phi { ptr, i64 } [ { ptr @str.749, i64 4 }, %if.then.484 ], [ %callN, %if.else.485 ] + 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.487, label %if.else.488 + +if.then.487: ; preds = %entry + br label %if.merge.489 + +if.else.488: ; 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.754, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.753, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.489 + +if.merge.489: ; preds = %if.else.488, %if.then.487 + %bp = phi { ptr, i64 } [ { ptr @str.752, i64 4 }, %if.then.487 ], [ %callN, %if.else.488 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.490, label %if.else.491 + +if.then.490: ; preds = %entry + br label %if.merge.492 + +if.else.491: ; 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.757, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.756, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.492 + +if.merge.492: ; preds = %if.else.491, %if.then.490 + %bp = phi { ptr, i64 } [ { ptr @str.755, i64 4 }, %if.then.490 ], [ %callN, %if.else.491 ] + 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.493, label %if.else.494 + +if.then.493: ; preds = %entry + br label %if.merge.495 + +if.else.494: ; 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.760, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.759, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.495 + +if.merge.495: ; preds = %if.else.494, %if.then.493 + %bp = phi { ptr, i64 } [ { ptr @str.758, i64 4 }, %if.then.493 ], [ %callN, %if.else.494 ] + 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.496, label %if.else.497 + +if.then.496: ; preds = %entry + br label %if.merge.498 + +if.else.497: ; 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.763, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.762, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.498 + +if.merge.498: ; preds = %if.else.497, %if.then.496 + %bp = phi { ptr, i64 } [ { ptr @str.761, i64 4 }, %if.then.496 ], [ %callN, %if.else.497 ] + 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.499, label %if.else.500 + +if.then.499: ; preds = %entry + br label %if.merge.501 + +if.else.500: ; 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.766, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.765, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.501 + +if.merge.501: ; preds = %if.else.500, %if.then.499 + %bp = phi { ptr, i64 } [ { ptr @str.764, i64 4 }, %if.then.499 ], [ %callN, %if.else.500 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_IntCell(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.502, label %if.else.503 + +if.then.502: ; preds = %entry + br label %if.merge.504 + +if.else.503: ; 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.769, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.768, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.504 + +if.merge.504: ; preds = %if.else.503, %if.then.502 + %bp = phi { ptr, i64 } [ { ptr @str.767, i64 4 }, %if.then.502 ], [ %callN, %if.else.503 ] + 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.505, label %if.else.506 + +if.then.505: ; preds = %entry + br label %if.merge.507 + +if.else.506: ; 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.772, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.771, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.507 + +if.merge.507: ; preds = %if.else.506, %if.then.505 + %bp = phi { ptr, i64 } [ { ptr @str.770, i64 4 }, %if.then.505 ], [ %callN, %if.else.506 ] + 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.508, label %if.else.509 + +if.then.508: ; preds = %entry + br label %if.merge.510 + +if.else.509: ; 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.775, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.774, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.510 + +if.merge.510: ; preds = %if.else.509, %if.then.508 + %bp = phi { ptr, i64 } [ { ptr @str.773, i64 4 }, %if.then.508 ], [ %callN, %if.else.509 ] + 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.511, label %if.else.512 + +if.then.511: ; preds = %entry + br label %if.merge.513 + +if.else.512: ; 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.778, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.777, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.513 + +if.merge.513: ; preds = %if.else.512, %if.then.511 + %bp = phi { ptr, i64 } [ { ptr @str.776, i64 4 }, %if.then.511 ], [ %callN, %if.else.512 ] + 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.514, label %if.else.515 + +if.then.514: ; preds = %entry + br label %if.merge.516 + +if.else.515: ; 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.781, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.780, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.516 + +if.merge.516: ; preds = %if.else.515, %if.then.514 + %bp = phi { ptr, i64 } [ { ptr @str.779, i64 4 }, %if.then.514 ], [ %callN, %if.else.515 ] + 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.517, label %if.else.518 + +if.then.517: ; preds = %entry + br label %if.merge.519 + +if.else.518: ; 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.784, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.783, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.519 + +if.merge.519: ; preds = %if.else.518, %if.then.517 + %bp = phi { ptr, i64 } [ { ptr @str.782, i64 4 }, %if.then.517 ], [ %callN, %if.else.518 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Combined__s64__s64(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.520, label %if.else.521 + +if.then.520: ; preds = %entry + br label %if.merge.522 + +if.else.521: ; 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.787, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.786, i64 19 }, { ptr, i64 } %callN) + br label %if.merge.522 + +if.merge.522: ; preds = %if.else.521, %if.then.520 + %bp = phi { ptr, i64 } [ { ptr @str.785, i64 4 }, %if.then.520 ], [ %callN, %if.else.521 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_IntCell(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.523, label %if.else.524 + +if.then.523: ; preds = %entry + br label %if.merge.525 + +if.else.524: ; 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.790, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.789, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.525 + +if.merge.525: ; preds = %if.else.524, %if.then.523 + %bp = phi { ptr, i64 } [ { ptr @str.788, i64 4 }, %if.then.523 ], [ %callN, %if.else.524 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr___VL__s64__Vtable(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.526, label %if.else.527 + +if.then.526: ; preds = %entry + br label %if.merge.528 + +if.else.527: ; 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.793, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.792, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.528 + +if.merge.528: ; preds = %if.else.527, %if.then.526 + %bp = phi { ptr, i64 } [ { ptr @str.791, i64 4 }, %if.then.526 ], [ %callN, %if.else.527 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_tu_VL__s64(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.529, label %if.else.530 + +if.then.529: ; preds = %entry + br label %if.merge.531 + +if.else.530: ; 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.796, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.795, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.531 + +if.merge.531: ; preds = %if.else.530, %if.then.529 + %bp = phi { ptr, i64 } [ { ptr @str.794, i64 4 }, %if.then.529 ], [ %callN, %if.else.530 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Combined__s64__s64(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.532, label %if.else.533 + +if.then.532: ; preds = %entry + br label %if.merge.534 + +if.else.533: ; 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.799, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.798, i64 20 }, { ptr, i64 } %callN) + br label %if.merge.534 + +if.merge.534: ; preds = %if.else.533, %if.then.532 + %bp = phi { ptr, i64 } [ { ptr @str.797, i64 4 }, %if.then.532 ], [ %callN, %if.else.533 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_VL__s64(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.535, label %if.else.536 + +if.then.535: ; preds = %entry + br label %if.merge.537 + +if.else.536: ; 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.802, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.801, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.537 + +if.merge.537: ; preds = %if.else.536, %if.then.535 + %bp = phi { ptr, i64 } [ { ptr @str.800, i64 4 }, %if.then.535 ], [ %callN, %if.else.536 ] + 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.538, label %if.else.539 + +if.then.538: ; preds = %entry + br label %if.merge.540 + +if.else.539: ; 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.805, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.804, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.540 + +if.merge.540: ; preds = %if.else.539, %if.then.538 + %bp = phi { ptr, i64 } [ { ptr @str.803, i64 4 }, %if.then.538 ], [ %callN, %if.else.539 ] ret { ptr, i64 } %bp } @@ -4401,19 +8337,115 @@ entry: 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.334, label %if.else.335 + br i1 %icmp, label %if.then.541, label %if.else.542 -if.then.334: ; preds = %entry - br label %if.merge.336 +if.then.541: ; preds = %entry + br label %if.merge.543 -if.else.335: ; preds = %entry +if.else.542: ; 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.350, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.349, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.336 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.808, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.807, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.543 -if.merge.336: ; preds = %if.else.335, %if.then.334 - %bp = phi { ptr, i64 } [ { ptr @str.348, i64 4 }, %if.then.334 ], [ %callN, %if.else.335 ] +if.merge.543: ; preds = %if.else.542, %if.then.541 + %bp = phi { ptr, i64 } [ { ptr @str.806, i64 4 }, %if.then.541 ], [ %callN, %if.else.542 ] 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.550, label %if.merge.551 + +if.then.550: ; preds = %entry + ret { ptr, i64 } { ptr @str.809, i64 4 } + +if.merge.551: ; 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 39, 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.552, label %if.merge.553 + +if.then.552: ; preds = %entry + ret { ptr, i64 } { ptr @str.810, i64 4 } + +if.merge.553: ; 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_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.554, label %if.merge.555 + +if.then.554: ; preds = %entry + ret { ptr, i64 } { ptr @str.811, i64 4 } + +if.merge.555: ; 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 45, 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.556, label %if.merge.557 + +if.then.556: ; preds = %entry + ret { ptr, i64 } { ptr @str.812, i64 4 } + +if.merge.557: ; 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 88, 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/0416-protocols-auto-type-erasure.ir b/examples/expected/0416-protocols-auto-type-erasure.ir index 13b4e59..1c8104f 100644 --- a/examples/expected/0416-protocols-auto-type-erasure.ir +++ b/examples/expected/0416-protocols-auto-type-erasure.ir @@ -1,436 +1,754 @@ -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @__Counter__SimpleCounter__vtable = internal constant { ptr, ptr } { ptr @__thunk_SimpleCounter_Counter_inc, ptr @__thunk_SimpleCounter_Counter_get } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.78 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.79 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.80 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.81 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.82 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.83 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [108 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] +@str.466 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.467 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.468 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.469 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.470 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.471 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [189 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.472 = private constant [9 x i8] c"Overflow\00" +@tag.str.473 = private constant [3 x i8] c"Io\00" +@tag.str.474 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.475 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.476 = private constant [10 x i8] c"BadEscape\00" +@tag.str.477 = private constant [10 x i8] c"BadNumber\00" +@tag.str.478 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.479 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.480 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.481 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.482 = private constant [13 x i8] c"MissingValue\00" +@tag.str.483 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.484 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.472, i64 8 }, { ptr, i64 } { ptr @tag.str.473, i64 2 }, { ptr, i64 } { ptr @tag.str.474, i64 15 }, { ptr, i64 } { ptr @tag.str.475, i64 13 }, { ptr, i64 } { ptr @tag.str.476, i64 9 }, { ptr, i64 } { ptr @tag.str.477, i64 9 }, { ptr, i64 } { ptr @tag.str.478, i64 15 }, { ptr, i64 } { ptr @tag.str.479, i64 14 }, { ptr, i64 } { ptr @tag.str.480, i64 14 }, { ptr, i64 } { ptr @tag.str.481, i64 11 }, { ptr, i64 } { ptr @tag.str.482, i64 12 }, { ptr, i64 } { ptr @tag.str.483, i64 15 }, { ptr, i64 } { ptr @tag.str.484, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.84 = private constant [5 x i8] c"bool\00" -@tn.str.85 = private constant [3 x i8] c"s8\00" -@tn.str.86 = private constant [4 x i8] c"s16\00" -@tn.str.87 = private constant [4 x i8] c"s32\00" -@tn.str.88 = private constant [4 x i8] c"s64\00" -@tn.str.89 = private constant [3 x i8] c"u8\00" -@tn.str.90 = private constant [4 x i8] c"u16\00" -@tn.str.91 = private constant [4 x i8] c"u32\00" -@tn.str.92 = private constant [4 x i8] c"u64\00" -@tn.str.93 = private constant [4 x i8] c"f32\00" -@tn.str.94 = private constant [4 x i8] c"f64\00" -@tn.str.95 = private constant [7 x i8] c"string\00" -@tn.str.96 = private constant [4 x i8] c"Any\00" -@tn.str.97 = private constant [9 x i8] c"noreturn\00" -@tn.str.98 = private constant [6 x i8] c"isize\00" -@tn.str.99 = private constant [6 x i8] c"usize\00" -@tn.str.100 = private constant [5 x i8] c"void\00" -@tn.str.101 = private constant [6 x i8] c"*void\00" -@tn.str.102 = private constant [16 x i8] c"Source_Location\00" -@tn.str.103 = private constant [11 x i8] c"CAllocator\00" -@tn.str.104 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.105 = private constant [4 x i8] c"GPA\00" -@tn.str.106 = private constant [5 x i8] c"*GPA\00" -@tn.str.107 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.108 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.109 = private constant [10 x i8] c"Allocator\00" -@tn.str.110 = private constant [6 x i8] c"Arena\00" -@tn.str.111 = private constant [7 x i8] c"*Arena\00" -@tn.str.112 = private constant [6 x i8] c"[*]u8\00" -@tn.str.113 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.114 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.115 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.116 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.117 = private constant [8 x i8] c"Context\00" -@tn.str.118 = private constant [7 x i8] c"[4]s64\00" -@tn.str.119 = private constant [9 x i8] c"[]string\00" -@tn.str.120 = private constant [8 x i8] c"[16]f32\00" -@tn.str.121 = private constant [5 x i8] c"Mat4\00" -@tn.str.122 = private constant [5 x i8] c"Vec2\00" -@tn.str.123 = private constant [16 x i8] c"OperatingSystem\00" -@tn.str.124 = private constant [13 x i8] c"Architecture\00" -@tn.str.125 = private constant [13 x i8] c"BuildOptions\00" -@tn.str.126 = private constant [11 x i8] c"() -> bool\00" -@tn.str.127 = private constant [6 x i8] c"Point\00" -@tn.str.128 = private constant [8 x i8] c"Counter\00" -@tn.str.129 = private constant [18 x i8] c"__Counter__Vtable\00" -@tn.str.130 = private constant [9 x i8] c"Summable\00" -@tn.str.131 = private constant [19 x i8] c"__Summable__Vtable\00" -@tn.str.132 = private constant [14 x i8] c"SimpleCounter\00" -@tn.str.133 = private constant [15 x i8] c"*SimpleCounter\00" -@tn.str.134 = private constant [7 x i8] c"*Point\00" -@tn.str.135 = private constant [6 x i8] c"Adder\00" -@tn.str.136 = private constant [12 x i8] c"Accumulator\00" -@tn.str.137 = private constant [13 x i8] c"*Accumulator\00" -@tn.str.138 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.139 = private constant [5 x i8] c"*s64\00" -@tn.str.140 = private constant [7 x i8] c"**void\00" -@tn.str.141 = private constant [8 x i8] c"*string\00" -@tn.str.142 = private constant [6 x i8] c"[]Any\00" -@tn.str.143 = private constant [5 x i8] c"*Any\00" -@tn.str.144 = private constant [7 x i8] c"*[]Any\00" -@tn.str.145 = private constant [4 x i8] c"*u8\00" -@tn.str.146 = private constant [6 x i8] c"*bool\00" -@tn.str.147 = private constant [9 x i8] c"*Counter\00" -@tn.str.148 = private constant [16 x i8] c"**SimpleCounter\00" -@tn.str.149 = private constant [5 x i8] c"*s32\00" -@tn.str.150 = private constant [19 x i8] c"*__Counter__Vtable\00" -@tn.str.151 = private constant [7 x i8] c"[1]Any\00" -@tn.str.152 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.153 = private constant [7 x i8] c"*Adder\00" -@tn.str.154 = private constant [14 x i8] c"**Accumulator\00" -@tn.str.155 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.156 = private constant [5 x i8] c"*f64\00" -@tn.str.157 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.158 = private constant [11 x i8] c"*Allocator\00" -@tn.str.159 = private constant [9 x i8] c"*Context\00" -@tn.str.160 = private constant [6 x i8] c"*Mat4\00" -@tn.str.161 = private constant [6 x i8] c"*Vec2\00" -@tn.str.162 = private constant [14 x i8] c"*BuildOptions\00" -@tn.str.163 = private constant [10 x i8] c"*Summable\00" -@tn.str.164 = private constant [20 x i8] c"*__Summable__Vtable\00" -@tn.str.165 = private constant [17 x i8] c"*OperatingSystem\00" -@tn.str.166 = private constant [14 x i8] c"*Architecture\00" -@tn.str.167 = private constant [9 x i8] c"*[16]f32\00" -@tn.str.168 = private constant [10 x i8] c"*[]string\00" -@tn.str.169 = private constant [6 x i8] c"**GPA\00" -@tn.str.170 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.171 = private constant [8 x i8] c"**Arena\00" -@tn.str.172 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.173 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.174 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.175 = private constant [8 x i8] c"**Point\00" -@tn.str.176 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.177 = private constant [6 x i8] c"**s64\00" -@tn.str.178 = private constant [8 x i8] c"***void\00" -@tn.str.179 = private constant [9 x i8] c"**string\00" -@tn.str.180 = private constant [6 x i8] c"**Any\00" -@tn.str.181 = private constant [8 x i8] c"**[]Any\00" -@tn.str.182 = private constant [5 x i8] c"**u8\00" -@tn.str.183 = private constant [7 x i8] c"**bool\00" -@tn.str.184 = private constant [10 x i8] c"**Counter\00" -@tn.str.185 = private constant [17 x i8] c"***SimpleCounter\00" -@tn.str.186 = private constant [6 x i8] c"**s32\00" -@tn.str.187 = private constant [20 x i8] c"**__Counter__Vtable\00" -@tn.str.188 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.189 = private constant [8 x i8] c"**Adder\00" -@tn.str.190 = private constant [15 x i8] c"***Accumulator\00" -@__sx_type_names = private constant [108 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.84, i64 4 }, { ptr, i64 } { ptr @tn.str.85, i64 2 }, { ptr, i64 } { ptr @tn.str.86, i64 3 }, { ptr, i64 } { ptr @tn.str.87, i64 3 }, { ptr, i64 } { ptr @tn.str.88, i64 3 }, { ptr, i64 } { ptr @tn.str.89, i64 2 }, { ptr, i64 } { ptr @tn.str.90, i64 3 }, { ptr, i64 } { ptr @tn.str.91, i64 3 }, { ptr, i64 } { ptr @tn.str.92, i64 3 }, { ptr, i64 } { ptr @tn.str.93, i64 3 }, { ptr, i64 } { ptr @tn.str.94, i64 3 }, { ptr, i64 } { ptr @tn.str.95, i64 6 }, { ptr, i64 } { ptr @tn.str.96, i64 3 }, { ptr, i64 } { ptr @tn.str.97, i64 8 }, { ptr, i64 } { ptr @tn.str.98, i64 5 }, { ptr, i64 } { ptr @tn.str.99, i64 5 }, { ptr, i64 } { ptr @tn.str.100, i64 4 }, { ptr, i64 } { ptr @tn.str.101, i64 5 }, { ptr, i64 } { ptr @tn.str.102, i64 15 }, { ptr, i64 } { ptr @tn.str.103, i64 10 }, { ptr, i64 } { ptr @tn.str.104, i64 11 }, { ptr, i64 } { ptr @tn.str.105, i64 3 }, { ptr, i64 } { ptr @tn.str.106, i64 4 }, { ptr, i64 } { ptr @tn.str.107, i64 10 }, { ptr, i64 } { ptr @tn.str.108, i64 11 }, { ptr, i64 } { ptr @tn.str.109, i64 9 }, { ptr, i64 } { ptr @tn.str.110, i64 5 }, { ptr, i64 } { ptr @tn.str.111, i64 6 }, { ptr, i64 } { ptr @tn.str.112, i64 5 }, { ptr, i64 } { ptr @tn.str.113, i64 8 }, { ptr, i64 } { ptr @tn.str.114, i64 9 }, { ptr, i64 } { ptr @tn.str.115, i64 17 }, { ptr, i64 } { ptr @tn.str.116, i64 18 }, { ptr, i64 } { ptr @tn.str.117, i64 7 }, { ptr, i64 } { ptr @tn.str.118, i64 6 }, { ptr, i64 } { ptr @tn.str.119, i64 8 }, { ptr, i64 } { ptr @tn.str.120, i64 7 }, { ptr, i64 } { ptr @tn.str.121, i64 4 }, { ptr, i64 } { ptr @tn.str.122, i64 4 }, { ptr, i64 } { ptr @tn.str.123, i64 15 }, { ptr, i64 } { ptr @tn.str.124, i64 12 }, { ptr, i64 } { ptr @tn.str.125, i64 12 }, { ptr, i64 } { ptr @tn.str.126, i64 10 }, { ptr, i64 } { ptr @tn.str.127, i64 5 }, { ptr, i64 } { ptr @tn.str.128, i64 7 }, { ptr, i64 } { ptr @tn.str.129, i64 17 }, { ptr, i64 } { ptr @tn.str.130, i64 8 }, { ptr, i64 } { ptr @tn.str.131, i64 18 }, { ptr, i64 } { ptr @tn.str.132, i64 13 }, { ptr, i64 } { ptr @tn.str.133, i64 14 }, { ptr, i64 } { ptr @tn.str.134, i64 6 }, { ptr, i64 } { ptr @tn.str.135, i64 5 }, { ptr, i64 } { ptr @tn.str.136, i64 11 }, { ptr, i64 } { ptr @tn.str.137, i64 12 }, { ptr, i64 } { ptr @tn.str.138, i64 12 }, { ptr, i64 } { ptr @tn.str.139, i64 4 }, { ptr, i64 } { ptr @tn.str.140, i64 6 }, { ptr, i64 } { ptr @tn.str.141, i64 7 }, { ptr, i64 } { ptr @tn.str.142, i64 5 }, { ptr, i64 } { ptr @tn.str.143, i64 4 }, { ptr, i64 } { ptr @tn.str.144, i64 6 }, { ptr, i64 } { ptr @tn.str.145, i64 3 }, { ptr, i64 } { ptr @tn.str.146, i64 5 }, { ptr, i64 } { ptr @tn.str.147, i64 8 }, { ptr, i64 } { ptr @tn.str.148, i64 15 }, { ptr, i64 } { ptr @tn.str.149, i64 4 }, { ptr, i64 } { ptr @tn.str.150, i64 18 }, { ptr, i64 } { ptr @tn.str.151, i64 6 }, { ptr, i64 } { ptr @tn.str.152, i64 7 }, { ptr, i64 } { ptr @tn.str.153, i64 6 }, { ptr, i64 } { ptr @tn.str.154, i64 13 }, { ptr, i64 } { ptr @tn.str.155, i64 7 }, { ptr, i64 } { ptr @tn.str.156, i64 4 }, { ptr, i64 } { ptr @tn.str.157, i64 16 }, { ptr, i64 } { ptr @tn.str.158, i64 10 }, { ptr, i64 } { ptr @tn.str.159, i64 8 }, { ptr, i64 } { ptr @tn.str.160, i64 5 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 13 }, { ptr, i64 } { ptr @tn.str.163, i64 9 }, { ptr, i64 } { ptr @tn.str.164, i64 19 }, { ptr, i64 } { ptr @tn.str.165, i64 16 }, { ptr, i64 } { ptr @tn.str.166, i64 13 }, { ptr, i64 } { ptr @tn.str.167, i64 8 }, { ptr, i64 } { ptr @tn.str.168, i64 9 }, { ptr, i64 } { ptr @tn.str.169, i64 5 }, { ptr, i64 } { ptr @tn.str.170, i64 12 }, { ptr, i64 } { ptr @tn.str.171, i64 7 }, { ptr, i64 } { ptr @tn.str.172, i64 6 }, { ptr, i64 } { ptr @tn.str.173, i64 10 }, { ptr, i64 } { ptr @tn.str.174, i64 19 }, { ptr, i64 } { ptr @tn.str.175, i64 7 }, { ptr, i64 } { ptr @tn.str.176, i64 13 }, { ptr, i64 } { ptr @tn.str.177, i64 5 }, { ptr, i64 } { ptr @tn.str.178, i64 7 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 5 }, { ptr, i64 } { ptr @tn.str.181, i64 7 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 6 }, { ptr, i64 } { ptr @tn.str.184, i64 9 }, { ptr, i64 } { ptr @tn.str.185, i64 16 }, { ptr, i64 } { ptr @tn.str.186, i64 5 }, { ptr, i64 } { ptr @tn.str.187, i64 19 }, { ptr, i64 } { ptr @tn.str.188, i64 8 }, { ptr, i64 } { ptr @tn.str.189, i64 7 }, { ptr, i64 } { ptr @tn.str.190, i64 14 }] -@str.191 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.192 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.193 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.194 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.195 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.196 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.197 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.198 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.199 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.200 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.201 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.202 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.203 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.204 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.205 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.206 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.207 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.208 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.209 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.210 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.211 = private unnamed_addr constant [27 x i8] c"=== Auto Type Erasure ===\0A\00", align 1 -@str.212 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.213 = private unnamed_addr constant [27 x i8] c"=== Auto Type Erasure ===\0A\00", align 1 -@str.214 = private unnamed_addr constant [9 x i8] c"AE1: {}\0A\00", align 1 -@str.215 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.216 = private unnamed_addr constant [9 x i8] c"AE1: {}\0A\00", align 1 -@str.217 = private unnamed_addr constant [9 x i8] c"AE2: {}\0A\00", align 1 -@str.218 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.219 = private unnamed_addr constant [9 x i8] c"AE2: {}\0A\00", align 1 -@str.220 = private unnamed_addr constant [9 x i8] c"AE3: {}\0A\00", align 1 -@str.221 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.222 = private unnamed_addr constant [9 x i8] c"AE3: {}\0A\00", align 1 -@str.223 = private unnamed_addr constant [9 x i8] c"AE4: {}\0A\00", align 1 -@str.224 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.225 = private unnamed_addr constant [9 x i8] c"AE4: {}\0A\00", align 1 -@str.226 = private unnamed_addr constant [9 x i8] c"AE5: {}\0A\00", align 1 -@str.227 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.228 = private unnamed_addr constant [9 x i8] c"AE5: {}\0A\00", align 1 -@str.229 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.230 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.231 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.232 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.485 = private constant [5 x i8] c"bool\00" +@tn.str.486 = private constant [3 x i8] c"s8\00" +@tn.str.487 = private constant [4 x i8] c"s16\00" +@tn.str.488 = private constant [4 x i8] c"s32\00" +@tn.str.489 = private constant [4 x i8] c"s64\00" +@tn.str.490 = private constant [3 x i8] c"u8\00" +@tn.str.491 = private constant [4 x i8] c"u16\00" +@tn.str.492 = private constant [4 x i8] c"u32\00" +@tn.str.493 = private constant [4 x i8] c"u64\00" +@tn.str.494 = private constant [4 x i8] c"f32\00" +@tn.str.495 = private constant [4 x i8] c"f64\00" +@tn.str.496 = private constant [7 x i8] c"string\00" +@tn.str.497 = private constant [4 x i8] c"Any\00" +@tn.str.498 = private constant [9 x i8] c"noreturn\00" +@tn.str.499 = private constant [6 x i8] c"isize\00" +@tn.str.500 = private constant [6 x i8] c"usize\00" +@tn.str.501 = private constant [5 x i8] c"void\00" +@tn.str.502 = private constant [6 x i8] c"*void\00" +@tn.str.503 = private constant [16 x i8] c"Source_Location\00" +@tn.str.504 = private constant [11 x i8] c"CAllocator\00" +@tn.str.505 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.506 = private constant [4 x i8] c"GPA\00" +@tn.str.507 = private constant [5 x i8] c"*GPA\00" +@tn.str.508 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.509 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.510 = private constant [10 x i8] c"Allocator\00" +@tn.str.511 = private constant [6 x i8] c"Arena\00" +@tn.str.512 = private constant [7 x i8] c"*Arena\00" +@tn.str.513 = private constant [6 x i8] c"[*]u8\00" +@tn.str.514 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.515 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.516 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.517 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.518 = private constant [8 x i8] c"Context\00" +@tn.str.519 = private constant [7 x i8] c"[4]s64\00" +@tn.str.520 = private constant [9 x i8] c"[]string\00" +@tn.str.521 = private constant [9 x i8] c"OpenMode\00" +@tn.str.522 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.523 = private constant [5 x i8] c"File\00" +@tn.str.524 = private constant [6 x i8] c"*File\00" +@tn.str.525 = private constant [6 x i8] c"?File\00" +@tn.str.526 = private constant [8 x i8] c"?string\00" +@tn.str.527 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.528 = private constant [4 x i8] c"*u8\00" +@tn.str.529 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.530 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.531 = private constant [5 x i8] c"*s32\00" +@tn.str.532 = private constant [9 x i8] c"SockAddr\00" +@tn.str.533 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.534 = private constant [5 x i8] c"*u32\00" +@tn.str.535 = private constant [10 x i8] c"JsonError\00" +@tn.str.536 = private constant [6 x i8] c"Array\00" +@tn.str.537 = private constant [7 x i8] c"Object\00" +@tn.str.538 = private constant [6 x i8] c"Value\00" +@tn.str.539 = private constant [7 x i8] c"Member\00" +@tn.str.540 = private constant [9 x i8] c"[*]Value\00" +@tn.str.541 = private constant [7 x i8] c"*Array\00" +@tn.str.542 = private constant [10 x i8] c"[*]Member\00" +@tn.str.543 = private constant [8 x i8] c"*Object\00" +@tn.str.544 = private constant [5 x i8] c"[]u8\00" +@tn.str.545 = private constant [5 x i8] c"Sink\00" +@tn.str.546 = private constant [6 x i8] c"*Sink\00" +@tn.str.547 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.548 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.549 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.550 = private constant [7 x i8] c"Parser\00" +@tn.str.551 = private constant [8 x i8] c"*Parser\00" +@tn.str.552 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.553 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.554 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.555 = private constant [13 x i8] c"Architecture\00" +@tn.str.556 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.557 = private constant [11 x i8] c"() -> bool\00" +@tn.str.558 = private constant [5 x i8] c"*s64\00" +@tn.str.559 = private constant [9 x i8] c"CliError\00" +@tn.str.560 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.561 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.562 = private constant [8 x i8] c"Command\00" +@tn.str.563 = private constant [10 x i8] c"FlagValue\00" +@tn.str.564 = private constant [5 x i8] c"Diag\00" +@tn.str.565 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.566 = private constant [7 x i8] c"Parsed\00" +@tn.str.567 = private constant [8 x i8] c"*Parsed\00" +@tn.str.568 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.569 = private constant [10 x i8] c"[]Command\00" +@tn.str.570 = private constant [6 x i8] c"*Diag\00" +@tn.str.571 = private constant [7 x i8] c"[8]s64\00" +@tn.str.572 = private constant [7 x i8] c"[64]u8\00" +@tn.str.573 = private constant [7 x i8] c"Sha256\00" +@tn.str.574 = private constant [8 x i8] c"*Sha256\00" +@tn.str.575 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.576 = private constant [8 x i8] c"[64]s64\00" +@tn.str.577 = private constant [8 x i8] c"[16]f32\00" +@tn.str.578 = private constant [5 x i8] c"Mat4\00" +@tn.str.579 = private constant [5 x i8] c"Vec2\00" +@tn.str.580 = private constant [6 x i8] c"Point\00" +@tn.str.581 = private constant [8 x i8] c"Counter\00" +@tn.str.582 = private constant [18 x i8] c"__Counter__Vtable\00" +@tn.str.583 = private constant [9 x i8] c"Summable\00" +@tn.str.584 = private constant [19 x i8] c"__Summable__Vtable\00" +@tn.str.585 = private constant [14 x i8] c"SimpleCounter\00" +@tn.str.586 = private constant [15 x i8] c"*SimpleCounter\00" +@tn.str.587 = private constant [7 x i8] c"*Point\00" +@tn.str.588 = private constant [6 x i8] c"Adder\00" +@tn.str.589 = private constant [12 x i8] c"Accumulator\00" +@tn.str.590 = private constant [13 x i8] c"*Accumulator\00" +@tn.str.591 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.592 = private constant [7 x i8] c"**void\00" +@tn.str.593 = private constant [8 x i8] c"*string\00" +@tn.str.594 = private constant [6 x i8] c"[]Any\00" +@tn.str.595 = private constant [5 x i8] c"*Any\00" +@tn.str.596 = private constant [7 x i8] c"*[]Any\00" +@tn.str.597 = private constant [6 x i8] c"*bool\00" +@tn.str.598 = private constant [9 x i8] c"*Counter\00" +@tn.str.599 = private constant [16 x i8] c"**SimpleCounter\00" +@tn.str.600 = private constant [19 x i8] c"*__Counter__Vtable\00" +@tn.str.601 = private constant [7 x i8] c"[1]Any\00" +@tn.str.602 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.603 = private constant [7 x i8] c"*Adder\00" +@tn.str.604 = private constant [14 x i8] c"**Accumulator\00" +@tn.str.605 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.606 = private constant [5 x i8] c"*f64\00" +@tn.str.607 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.608 = private constant [11 x i8] c"*Allocator\00" +@tn.str.609 = private constant [9 x i8] c"*Context\00" +@tn.str.610 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.611 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.612 = private constant [8 x i8] c"*Member\00" +@tn.str.613 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.614 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.615 = private constant [9 x i8] c"*Command\00" +@tn.str.616 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.617 = private constant [6 x i8] c"*Mat4\00" +@tn.str.618 = private constant [6 x i8] c"*Vec2\00" +@tn.str.619 = private constant [10 x i8] c"*Summable\00" +@tn.str.620 = private constant [20 x i8] c"*__Summable__Vtable\00" +@tn.str.621 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.622 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.623 = private constant [7 x i8] c"*Value\00" +@tn.str.624 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.625 = private constant [14 x i8] c"*Architecture\00" +@tn.str.626 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.627 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.628 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.629 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.630 = private constant [9 x i8] c"*[16]f32\00" +@tn.str.631 = private constant [10 x i8] c"*[]string\00" +@tn.str.632 = private constant [6 x i8] c"*[]u8\00" +@tn.str.633 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.634 = private constant [11 x i8] c"*[]Command\00" +@tn.str.635 = private constant [6 x i8] c"**GPA\00" +@tn.str.636 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.637 = private constant [8 x i8] c"**Arena\00" +@tn.str.638 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.639 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.640 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.641 = private constant [7 x i8] c"**File\00" +@tn.str.642 = private constant [5 x i8] c"**u8\00" +@tn.str.643 = private constant [6 x i8] c"**s32\00" +@tn.str.644 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.645 = private constant [6 x i8] c"**u32\00" +@tn.str.646 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.647 = private constant [8 x i8] c"**Array\00" +@tn.str.648 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.649 = private constant [9 x i8] c"**Object\00" +@tn.str.650 = private constant [7 x i8] c"**Sink\00" +@tn.str.651 = private constant [9 x i8] c"**Parser\00" +@tn.str.652 = private constant [6 x i8] c"**s64\00" +@tn.str.653 = private constant [9 x i8] c"**Parsed\00" +@tn.str.654 = private constant [7 x i8] c"**Diag\00" +@tn.str.655 = private constant [9 x i8] c"**Sha256\00" +@tn.str.656 = private constant [8 x i8] c"**Point\00" +@tn.str.657 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.658 = private constant [8 x i8] c"***void\00" +@tn.str.659 = private constant [9 x i8] c"**string\00" +@tn.str.660 = private constant [6 x i8] c"**Any\00" +@tn.str.661 = private constant [8 x i8] c"**[]Any\00" +@tn.str.662 = private constant [7 x i8] c"**bool\00" +@tn.str.663 = private constant [10 x i8] c"**Counter\00" +@tn.str.664 = private constant [17 x i8] c"***SimpleCounter\00" +@tn.str.665 = private constant [20 x i8] c"**__Counter__Vtable\00" +@tn.str.666 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.667 = private constant [8 x i8] c"**Adder\00" +@tn.str.668 = private constant [15 x i8] c"***Accumulator\00" +@tn.str.669 = private constant [7 x i8] c"*?File\00" +@tn.str.670 = private constant [9 x i8] c"*?string\00" +@tn.str.671 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.672 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [189 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.485, i64 4 }, { ptr, i64 } { ptr @tn.str.486, i64 2 }, { ptr, i64 } { ptr @tn.str.487, i64 3 }, { ptr, i64 } { ptr @tn.str.488, i64 3 }, { ptr, i64 } { ptr @tn.str.489, i64 3 }, { ptr, i64 } { ptr @tn.str.490, i64 2 }, { ptr, i64 } { ptr @tn.str.491, i64 3 }, { ptr, i64 } { ptr @tn.str.492, i64 3 }, { ptr, i64 } { ptr @tn.str.493, i64 3 }, { ptr, i64 } { ptr @tn.str.494, i64 3 }, { ptr, i64 } { ptr @tn.str.495, i64 3 }, { ptr, i64 } { ptr @tn.str.496, i64 6 }, { ptr, i64 } { ptr @tn.str.497, i64 3 }, { ptr, i64 } { ptr @tn.str.498, i64 8 }, { ptr, i64 } { ptr @tn.str.499, i64 5 }, { ptr, i64 } { ptr @tn.str.500, i64 5 }, { ptr, i64 } { ptr @tn.str.501, i64 4 }, { ptr, i64 } { ptr @tn.str.502, i64 5 }, { ptr, i64 } { ptr @tn.str.503, i64 15 }, { ptr, i64 } { ptr @tn.str.504, i64 10 }, { ptr, i64 } { ptr @tn.str.505, i64 11 }, { ptr, i64 } { ptr @tn.str.506, i64 3 }, { ptr, i64 } { ptr @tn.str.507, i64 4 }, { ptr, i64 } { ptr @tn.str.508, i64 10 }, { ptr, i64 } { ptr @tn.str.509, i64 11 }, { ptr, i64 } { ptr @tn.str.510, i64 9 }, { ptr, i64 } { ptr @tn.str.511, i64 5 }, { ptr, i64 } { ptr @tn.str.512, i64 6 }, { ptr, i64 } { ptr @tn.str.513, i64 5 }, { ptr, i64 } { ptr @tn.str.514, i64 8 }, { ptr, i64 } { ptr @tn.str.515, i64 9 }, { ptr, i64 } { ptr @tn.str.516, i64 17 }, { ptr, i64 } { ptr @tn.str.517, i64 18 }, { ptr, i64 } { ptr @tn.str.518, i64 7 }, { ptr, i64 } { ptr @tn.str.519, i64 6 }, { ptr, i64 } { ptr @tn.str.520, i64 8 }, { ptr, i64 } { ptr @tn.str.521, i64 8 }, { ptr, i64 } { ptr @tn.str.522, i64 8 }, { ptr, i64 } { ptr @tn.str.523, i64 4 }, { ptr, i64 } { ptr @tn.str.524, i64 5 }, { ptr, i64 } { ptr @tn.str.525, i64 5 }, { ptr, i64 } { ptr @tn.str.526, i64 7 }, { ptr, i64 } { ptr @tn.str.527, i64 10 }, { ptr, i64 } { ptr @tn.str.528, i64 3 }, { ptr, i64 } { ptr @tn.str.529, i64 13 }, { ptr, i64 } { ptr @tn.str.530, i64 14 }, { ptr, i64 } { ptr @tn.str.531, i64 4 }, { ptr, i64 } { ptr @tn.str.532, i64 8 }, { ptr, i64 } { ptr @tn.str.533, i64 9 }, { ptr, i64 } { ptr @tn.str.534, i64 4 }, { ptr, i64 } { ptr @tn.str.535, i64 9 }, { ptr, i64 } { ptr @tn.str.536, i64 5 }, { ptr, i64 } { ptr @tn.str.537, i64 6 }, { ptr, i64 } { ptr @tn.str.538, i64 5 }, { ptr, i64 } { ptr @tn.str.539, i64 6 }, { ptr, i64 } { ptr @tn.str.540, i64 8 }, { ptr, i64 } { ptr @tn.str.541, i64 6 }, { ptr, i64 } { ptr @tn.str.542, i64 9 }, { ptr, i64 } { ptr @tn.str.543, i64 7 }, { ptr, i64 } { ptr @tn.str.544, i64 4 }, { ptr, i64 } { ptr @tn.str.545, i64 4 }, { ptr, i64 } { ptr @tn.str.546, i64 5 }, { ptr, i64 } { ptr @tn.str.547, i64 16 }, { ptr, i64 } { ptr @tn.str.548, i64 14 }, { ptr, i64 } { ptr @tn.str.549, i64 21 }, { ptr, i64 } { ptr @tn.str.550, i64 6 }, { ptr, i64 } { ptr @tn.str.551, i64 7 }, { ptr, i64 } { ptr @tn.str.552, i64 24 }, { ptr, i64 } { ptr @tn.str.553, i64 23 }, { ptr, i64 } { ptr @tn.str.554, i64 15 }, { ptr, i64 } { ptr @tn.str.555, i64 12 }, { ptr, i64 } { ptr @tn.str.556, i64 12 }, { ptr, i64 } { ptr @tn.str.557, i64 10 }, { ptr, i64 } { ptr @tn.str.558, i64 4 }, { ptr, i64 } { ptr @tn.str.559, i64 8 }, { ptr, i64 } { ptr @tn.str.560, i64 8 }, { ptr, i64 } { ptr @tn.str.561, i64 10 }, { ptr, i64 } { ptr @tn.str.562, i64 7 }, { ptr, i64 } { ptr @tn.str.563, i64 9 }, { ptr, i64 } { ptr @tn.str.564, i64 4 }, { ptr, i64 } { ptr @tn.str.565, i64 13 }, { ptr, i64 } { ptr @tn.str.566, i64 6 }, { ptr, i64 } { ptr @tn.str.567, i64 7 }, { ptr, i64 } { ptr @tn.str.568, i64 18 }, { ptr, i64 } { ptr @tn.str.569, i64 9 }, { ptr, i64 } { ptr @tn.str.570, i64 5 }, { ptr, i64 } { ptr @tn.str.571, i64 6 }, { ptr, i64 } { ptr @tn.str.572, i64 6 }, { ptr, i64 } { ptr @tn.str.573, i64 6 }, { ptr, i64 } { ptr @tn.str.574, i64 7 }, { ptr, i64 } { ptr @tn.str.575, i64 7 }, { ptr, i64 } { ptr @tn.str.576, i64 7 }, { ptr, i64 } { ptr @tn.str.577, i64 7 }, { ptr, i64 } { ptr @tn.str.578, i64 4 }, { ptr, i64 } { ptr @tn.str.579, i64 4 }, { ptr, i64 } { ptr @tn.str.580, i64 5 }, { ptr, i64 } { ptr @tn.str.581, i64 7 }, { ptr, i64 } { ptr @tn.str.582, i64 17 }, { ptr, i64 } { ptr @tn.str.583, i64 8 }, { ptr, i64 } { ptr @tn.str.584, i64 18 }, { ptr, i64 } { ptr @tn.str.585, i64 13 }, { ptr, i64 } { ptr @tn.str.586, i64 14 }, { ptr, i64 } { ptr @tn.str.587, i64 6 }, { ptr, i64 } { ptr @tn.str.588, i64 5 }, { ptr, i64 } { ptr @tn.str.589, i64 11 }, { ptr, i64 } { ptr @tn.str.590, i64 12 }, { ptr, i64 } { ptr @tn.str.591, i64 12 }, { ptr, i64 } { ptr @tn.str.592, i64 6 }, { ptr, i64 } { ptr @tn.str.593, i64 7 }, { ptr, i64 } { ptr @tn.str.594, i64 5 }, { ptr, i64 } { ptr @tn.str.595, i64 4 }, { ptr, i64 } { ptr @tn.str.596, i64 6 }, { ptr, i64 } { ptr @tn.str.597, i64 5 }, { ptr, i64 } { ptr @tn.str.598, i64 8 }, { ptr, i64 } { ptr @tn.str.599, i64 15 }, { ptr, i64 } { ptr @tn.str.600, i64 18 }, { ptr, i64 } { ptr @tn.str.601, i64 6 }, { ptr, i64 } { ptr @tn.str.602, i64 7 }, { ptr, i64 } { ptr @tn.str.603, i64 6 }, { ptr, i64 } { ptr @tn.str.604, i64 13 }, { ptr, i64 } { ptr @tn.str.605, i64 7 }, { ptr, i64 } { ptr @tn.str.606, i64 4 }, { ptr, i64 } { ptr @tn.str.607, i64 16 }, { ptr, i64 } { ptr @tn.str.608, i64 10 }, { ptr, i64 } { ptr @tn.str.609, i64 8 }, { ptr, i64 } { ptr @tn.str.610, i64 11 }, { ptr, i64 } { ptr @tn.str.611, i64 14 }, { ptr, i64 } { ptr @tn.str.612, i64 7 }, { ptr, i64 } { ptr @tn.str.613, i64 13 }, { ptr, i64 } { ptr @tn.str.614, i64 9 }, { ptr, i64 } { ptr @tn.str.615, i64 8 }, { ptr, i64 } { ptr @tn.str.616, i64 10 }, { ptr, i64 } { ptr @tn.str.617, i64 5 }, { ptr, i64 } { ptr @tn.str.618, i64 5 }, { ptr, i64 } { ptr @tn.str.619, i64 9 }, { ptr, i64 } { ptr @tn.str.620, i64 19 }, { ptr, i64 } { ptr @tn.str.621, i64 9 }, { ptr, i64 } { ptr @tn.str.622, i64 9 }, { ptr, i64 } { ptr @tn.str.623, i64 6 }, { ptr, i64 } { ptr @tn.str.624, i64 16 }, { ptr, i64 } { ptr @tn.str.625, i64 13 }, { ptr, i64 } { ptr @tn.str.626, i64 14 }, { ptr, i64 } { ptr @tn.str.627, i64 7 }, { ptr, i64 } { ptr @tn.str.628, i64 7 }, { ptr, i64 } { ptr @tn.str.629, i64 8 }, { ptr, i64 } { ptr @tn.str.630, i64 8 }, { ptr, i64 } { ptr @tn.str.631, i64 9 }, { ptr, i64 } { ptr @tn.str.632, i64 5 }, { ptr, i64 } { ptr @tn.str.633, i64 11 }, { ptr, i64 } { ptr @tn.str.634, i64 10 }, { ptr, i64 } { ptr @tn.str.635, i64 5 }, { ptr, i64 } { ptr @tn.str.636, i64 12 }, { ptr, i64 } { ptr @tn.str.637, i64 7 }, { ptr, i64 } { ptr @tn.str.638, i64 6 }, { ptr, i64 } { ptr @tn.str.639, i64 10 }, { ptr, i64 } { ptr @tn.str.640, i64 19 }, { ptr, i64 } { ptr @tn.str.641, i64 6 }, { ptr, i64 } { ptr @tn.str.642, i64 4 }, { ptr, i64 } { ptr @tn.str.643, i64 5 }, { ptr, i64 } { ptr @tn.str.644, i64 10 }, { ptr, i64 } { ptr @tn.str.645, i64 5 }, { ptr, i64 } { ptr @tn.str.646, i64 9 }, { ptr, i64 } { ptr @tn.str.647, i64 7 }, { ptr, i64 } { ptr @tn.str.648, i64 10 }, { ptr, i64 } { ptr @tn.str.649, i64 8 }, { ptr, i64 } { ptr @tn.str.650, i64 6 }, { ptr, i64 } { ptr @tn.str.651, i64 8 }, { ptr, i64 } { ptr @tn.str.652, i64 5 }, { ptr, i64 } { ptr @tn.str.653, i64 8 }, { ptr, i64 } { ptr @tn.str.654, i64 6 }, { ptr, i64 } { ptr @tn.str.655, i64 8 }, { ptr, i64 } { ptr @tn.str.656, i64 7 }, { ptr, i64 } { ptr @tn.str.657, i64 13 }, { ptr, i64 } { ptr @tn.str.658, i64 7 }, { ptr, i64 } { ptr @tn.str.659, i64 8 }, { ptr, i64 } { ptr @tn.str.660, i64 5 }, { ptr, i64 } { ptr @tn.str.661, i64 7 }, { ptr, i64 } { ptr @tn.str.662, i64 6 }, { ptr, i64 } { ptr @tn.str.663, i64 9 }, { ptr, i64 } { ptr @tn.str.664, i64 16 }, { ptr, i64 } { ptr @tn.str.665, i64 19 }, { ptr, i64 } { ptr @tn.str.666, i64 8 }, { ptr, i64 } { ptr @tn.str.667, i64 7 }, { ptr, i64 } { ptr @tn.str.668, i64 14 }, { ptr, i64 } { ptr @tn.str.669, i64 6 }, { ptr, i64 } { ptr @tn.str.670, i64 8 }, { ptr, i64 } { ptr @tn.str.671, i64 15 }, { ptr, i64 } { ptr @tn.str.672, i64 8 }] +@str.673 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.674 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.675 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.676 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.677 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.678 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.679 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.680 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.681 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.682 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.683 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.684 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.685 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.686 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.687 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.688 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.689 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.690 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.691 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.692 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.693 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.694 = private unnamed_addr constant [27 x i8] c"=== Auto Type Erasure ===\0A\00", align 1 +@str.695 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.696 = private unnamed_addr constant [27 x i8] c"=== Auto Type Erasure ===\0A\00", align 1 +@str.697 = private unnamed_addr constant [9 x i8] c"AE1: {}\0A\00", align 1 +@str.698 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.699 = private unnamed_addr constant [9 x i8] c"AE1: {}\0A\00", align 1 +@str.700 = private unnamed_addr constant [9 x i8] c"AE2: {}\0A\00", align 1 +@str.701 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.702 = private unnamed_addr constant [9 x i8] c"AE2: {}\0A\00", align 1 +@str.703 = private unnamed_addr constant [9 x i8] c"AE3: {}\0A\00", align 1 +@str.704 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.705 = private unnamed_addr constant [9 x i8] c"AE3: {}\0A\00", align 1 +@str.706 = private unnamed_addr constant [9 x i8] c"AE4: {}\0A\00", align 1 +@str.707 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.708 = private unnamed_addr constant [9 x i8] c"AE4: {}\0A\00", align 1 +@str.709 = private unnamed_addr constant [9 x i8] c"AE5: {}\0A\00", align 1 +@str.710 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.711 = private unnamed_addr constant [9 x i8] c"AE5: {}\0A\00", align 1 +@str.712 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.713 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.714 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.715 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.233 = private constant [5 x i8] c"line\00" -@fld.str.234 = private constant [4 x i8] c"col\00" -@fld.str.235 = 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.233, i64 4 }, { ptr, i64 } { ptr @fld.str.234, i64 3 }, { ptr, i64 } { ptr @fld.str.235, i64 4 }] -@str.236 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.237 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.238 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.239 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.240 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.241 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.242 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.243 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.244 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.245 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.246 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.247 = private constant [12 x i8] c"alloc_count\00" -@field_names.248 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.247, i64 11 }] -@str.249 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.250 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.251 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.252 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.253 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.254 = private constant [5 x i8] c"next\00" -@fld.str.255 = private constant [4 x i8] c"cap\00" -@field_names.256 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.254, i64 4 }, { ptr, i64 } { ptr @fld.str.255, i64 3 }] -@str.257 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.258 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.259 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.260 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.261 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.262 = private constant [4 x i8] c"ctx\00" -@fld.str.263 = private constant [6 x i8] c"alloc\00" -@fld.str.264 = private constant [8 x i8] c"dealloc\00" -@field_names.265 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.262, i64 3 }, { ptr, i64 } { ptr @fld.str.263, i64 5 }, { ptr, i64 } { ptr @fld.str.264, i64 7 }] -@str.266 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.267 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.268 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.269 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.270 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.271 = private constant [6 x i8] c"first\00" -@fld.str.272 = private constant [10 x i8] c"end_index\00" -@fld.str.273 = private constant [7 x i8] c"parent\00" -@field_names.274 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.271, i64 5 }, { ptr, i64 } { ptr @fld.str.272, i64 9 }, { ptr, i64 } { ptr @fld.str.273, i64 6 }] -@str.275 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.276 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.277 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.278 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.279 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.280 = private constant [4 x i8] c"buf\00" -@fld.str.281 = private constant [4 x i8] c"len\00" -@fld.str.282 = private constant [4 x i8] c"pos\00" -@field_names.283 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.280, i64 3 }, { ptr, i64 } { ptr @fld.str.281, i64 3 }, { ptr, i64 } { ptr @fld.str.282, i64 3 }] -@str.284 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.285 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.286 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.287 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.288 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.289 = private constant [7 x i8] c"parent\00" -@fld.str.290 = private constant [12 x i8] c"alloc_count\00" -@fld.str.291 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.292 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.293 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.289, i64 6 }, { ptr, i64 } { ptr @fld.str.290, i64 11 }, { ptr, i64 } { ptr @fld.str.291, i64 13 }, { ptr, i64 } { ptr @fld.str.292, i64 17 }] -@str.294 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.295 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.296 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.297 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.298 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.299 = private constant [10 x i8] c"allocator\00" -@fld.str.300 = private constant [5 x i8] c"data\00" -@field_names.301 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.299, i64 9 }, { ptr, i64 } { ptr @fld.str.300, i64 4 }] -@str.302 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.303 = private unnamed_addr constant [5 x i8] c"Mat4\00", align 1 -@str.304 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.305 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.306 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.307 = private constant [5 x i8] c"data\00" -@field_names.308 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.307, i64 4 }] -@str.309 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.310 = private unnamed_addr constant [5 x i8] c"Vec2\00", align 1 -@str.311 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.312 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.313 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.314 = private constant [2 x i8] c"x\00" -@fld.str.315 = private constant [2 x i8] c"y\00" -@field_names.316 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.314, i64 1 }, { ptr, i64 } { ptr @fld.str.315, i64 1 }] -@str.317 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.318 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 -@str.319 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.320 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.321 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.322 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.323 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.324 = private unnamed_addr constant [6 x i8] c"Point\00", align 1 -@str.325 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.326 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.327 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.328 = private constant [2 x i8] c"x\00" -@fld.str.329 = private constant [2 x i8] c"y\00" -@field_names.330 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.328, i64 1 }, { ptr, i64 } { ptr @fld.str.329, i64 1 }] -@str.331 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.332 = private unnamed_addr constant [8 x i8] c"Counter\00", align 1 -@str.333 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.334 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.335 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.336 = private constant [4 x i8] c"ctx\00" -@fld.str.337 = private constant [9 x i8] c"__vtable\00" -@field_names.338 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.336, i64 3 }, { ptr, i64 } { ptr @fld.str.337, i64 8 }] -@str.339 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.340 = private unnamed_addr constant [18 x i8] c"__Counter__Vtable\00", align 1 -@str.341 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.342 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.343 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.344 = private constant [4 x i8] c"inc\00" -@fld.str.345 = private constant [4 x i8] c"get\00" -@field_names.346 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.344, i64 3 }, { ptr, i64 } { ptr @fld.str.345, i64 3 }] -@str.347 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.348 = private unnamed_addr constant [9 x i8] c"Summable\00", align 1 -@str.349 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.350 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.351 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.352 = private constant [4 x i8] c"ctx\00" -@fld.str.353 = private constant [9 x i8] c"__vtable\00" -@field_names.354 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.352, i64 3 }, { ptr, i64 } { ptr @fld.str.353, i64 8 }] -@str.355 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.356 = private unnamed_addr constant [19 x i8] c"__Summable__Vtable\00", align 1 -@str.357 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.358 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.359 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.360 = private constant [4 x i8] c"sum\00" -@field_names.361 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.360, i64 3 }] -@str.362 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.363 = private unnamed_addr constant [14 x i8] c"SimpleCounter\00", align 1 -@str.364 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.365 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.366 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.367 = private constant [4 x i8] c"val\00" -@field_names.368 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.367, i64 3 }] -@str.369 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.370 = private unnamed_addr constant [6 x i8] c"Adder\00", align 1 -@str.371 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.372 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.373 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.374 = private constant [4 x i8] c"ctx\00" -@fld.str.375 = private constant [4 x i8] c"add\00" -@fld.str.376 = private constant [6 x i8] c"value\00" -@field_names.377 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.374, i64 3 }, { ptr, i64 } { ptr @fld.str.375, i64 3 }, { ptr, i64 } { ptr @fld.str.376, i64 5 }] -@str.378 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.379 = private unnamed_addr constant [12 x i8] c"Accumulator\00", align 1 -@str.380 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.381 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.382 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.383 = private constant [6 x i8] c"total\00" -@field_names.384 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.383, i64 5 }] -@str.385 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.386 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.387 = private constant [6 x i8] c"macos\00" -@fld.str.388 = private constant [6 x i8] c"linux\00" -@fld.str.389 = private constant [8 x i8] c"windows\00" -@fld.str.390 = private constant [5 x i8] c"wasm\00" -@fld.str.391 = private constant [4 x i8] c"ios\00" -@fld.str.392 = private constant [8 x i8] c"android\00" -@fld.str.393 = private constant [8 x i8] c"unknown\00" -@field_names.394 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.387, i64 5 }, { ptr, i64 } { ptr @fld.str.388, i64 5 }, { ptr, i64 } { ptr @fld.str.389, i64 7 }, { ptr, i64 } { ptr @fld.str.390, i64 4 }, { ptr, i64 } { ptr @fld.str.391, i64 3 }, { ptr, i64 } { ptr @fld.str.392, i64 7 }, { ptr, i64 } { ptr @fld.str.393, i64 7 }] -@str.395 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.396 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.397 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.398 = private constant [8 x i8] c"aarch64\00" -@fld.str.399 = private constant [7 x i8] c"x86_64\00" -@fld.str.400 = private constant [7 x i8] c"wasm32\00" -@fld.str.401 = private constant [7 x i8] c"wasm64\00" -@fld.str.402 = private constant [8 x i8] c"unknown\00" -@field_names.403 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.398, i64 7 }, { ptr, i64 } { ptr @fld.str.399, i64 6 }, { ptr, i64 } { ptr @fld.str.400, i64 6 }, { ptr, i64 } { ptr @fld.str.401, i64 6 }, { ptr, i64 } { ptr @fld.str.402, i64 7 }] -@str.404 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.405 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.406 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.407 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.408 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.409 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.410 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.411 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.412 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.413 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.414 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.415 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.416 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.417 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.418 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.419 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.420 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.421 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.422 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.423 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.424 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.425 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.426 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.427 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.428 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.429 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.430 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.431 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.432 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.433 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.434 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.435 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.436 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.437 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.438 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.439 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.440 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.441 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.442 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.443 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.444 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.445 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.446 = private unnamed_addr constant [15 x i8] c"*SimpleCounter\00", align 1 -@str.447 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.448 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.449 = private unnamed_addr constant [7 x i8] c"*Point\00", align 1 -@str.450 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.451 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.452 = private unnamed_addr constant [13 x i8] c"*Accumulator\00", align 1 -@str.453 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.454 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.455 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.456 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.457 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.458 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.459 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.460 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.461 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.462 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.463 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.464 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.465 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.466 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.467 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.468 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.469 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.470 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.471 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.472 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.473 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.474 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.475 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.476 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.477 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.478 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.479 = private unnamed_addr constant [9 x i8] c"*Counter\00", align 1 -@str.480 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.481 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.482 = private unnamed_addr constant [16 x i8] c"**SimpleCounter\00", align 1 -@str.483 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.484 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.485 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.486 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.487 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.488 = private unnamed_addr constant [19 x i8] c"*__Counter__Vtable\00", align 1 -@str.489 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.490 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.491 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.492 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.493 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.494 = private unnamed_addr constant [7 x i8] c"*Adder\00", align 1 -@str.495 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.496 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.497 = private unnamed_addr constant [14 x i8] c"**Accumulator\00", align 1 -@str.498 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.716 = private constant [5 x i8] c"line\00" +@fld.str.717 = private constant [4 x i8] c"col\00" +@fld.str.718 = 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.716, i64 4 }, { ptr, i64 } { ptr @fld.str.717, i64 3 }, { ptr, i64 } { ptr @fld.str.718, i64 4 }] +@str.719 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.720 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.721 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.722 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.723 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.724 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.725 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.726 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.727 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.728 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.729 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.730 = private constant [12 x i8] c"alloc_count\00" +@field_names.731 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.730, i64 11 }] +@str.732 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.733 = private unnamed_addr constant [11 x i8] c"ArenaChunk\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 +@fld.str.737 = private constant [5 x i8] c"next\00" +@fld.str.738 = private constant [4 x i8] c"cap\00" +@field_names.739 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.737, i64 4 }, { ptr, i64 } { ptr @fld.str.738, i64 3 }] +@str.740 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.741 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.742 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.743 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.744 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.745 = private constant [4 x i8] c"ctx\00" +@fld.str.746 = private constant [6 x i8] c"alloc\00" +@fld.str.747 = private constant [8 x i8] c"dealloc\00" +@field_names.748 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.745, i64 3 }, { ptr, i64 } { ptr @fld.str.746, i64 5 }, { ptr, i64 } { ptr @fld.str.747, i64 7 }] +@str.749 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.750 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.751 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.752 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.753 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.754 = private constant [6 x i8] c"first\00" +@fld.str.755 = private constant [10 x i8] c"end_index\00" +@fld.str.756 = private constant [7 x i8] c"parent\00" +@field_names.757 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.754, i64 5 }, { ptr, i64 } { ptr @fld.str.755, i64 9 }, { ptr, i64 } { ptr @fld.str.756, i64 6 }] +@str.758 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.759 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.760 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.761 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.762 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.763 = private constant [4 x i8] c"buf\00" +@fld.str.764 = private constant [4 x i8] c"len\00" +@fld.str.765 = private constant [4 x i8] c"pos\00" +@field_names.766 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.763, i64 3 }, { ptr, i64 } { ptr @fld.str.764, i64 3 }, { ptr, i64 } { ptr @fld.str.765, i64 3 }] +@str.767 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.768 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.769 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.770 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.771 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.772 = private constant [7 x i8] c"parent\00" +@fld.str.773 = private constant [12 x i8] c"alloc_count\00" +@fld.str.774 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.775 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.776 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.772, i64 6 }, { ptr, i64 } { ptr @fld.str.773, i64 11 }, { ptr, i64 } { ptr @fld.str.774, i64 13 }, { ptr, i64 } { ptr @fld.str.775, i64 17 }] +@str.777 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.778 = private unnamed_addr constant [8 x i8] c"Context\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 [10 x i8] c"allocator\00" +@fld.str.783 = private constant [5 x i8] c"data\00" +@field_names.784 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.782, i64 9 }, { ptr, i64 } { ptr @fld.str.783, i64 4 }] +@str.785 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.786 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.787 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.788 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.789 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.790 = private constant [3 x i8] c"fd\00" +@field_names.791 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.790, i64 2 }] +@str.792 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.793 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.794 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.795 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.796 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.797 = private constant [5 x i8] c"file\00" +@fld.str.798 = private constant [5 x i8] c"line\00" +@fld.str.799 = private constant [4 x i8] c"col\00" +@fld.str.800 = private constant [5 x i8] c"func\00" +@fld.str.801 = private constant [10 x i8] c"line_text\00" +@field_names.802 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.797, i64 4 }, { ptr, i64 } { ptr @fld.str.798, i64 4 }, { ptr, i64 } { ptr @fld.str.799, i64 3 }, { ptr, i64 } { ptr @fld.str.800, i64 4 }, { ptr, i64 } { ptr @fld.str.801, i64 9 }] +@str.803 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.804 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.805 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.806 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.807 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.808 = private constant [10 x i8] c"exit_code\00" +@fld.str.809 = private constant [7 x i8] c"stdout\00" +@field_names.810 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.808, i64 9 }, { ptr, i64 } { ptr @fld.str.809, i64 6 }] +@str.811 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.812 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.813 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.814 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.815 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.816 = private constant [8 x i8] c"sin_len\00" +@fld.str.817 = private constant [11 x i8] c"sin_family\00" +@fld.str.818 = private constant [9 x i8] c"sin_port\00" +@fld.str.819 = private constant [9 x i8] c"sin_addr\00" +@fld.str.820 = private constant [9 x i8] c"sin_zero\00" +@field_names.821 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.816, i64 7 }, { ptr, i64 } { ptr @fld.str.817, i64 10 }, { ptr, i64 } { ptr @fld.str.818, i64 8 }, { ptr, i64 } { ptr @fld.str.819, i64 8 }, { ptr, i64 } { ptr @fld.str.820, i64 8 }] +@str.822 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.823 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.824 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.825 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.826 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.827 = private constant [6 x i8] c"items\00" +@fld.str.828 = private constant [4 x i8] c"len\00" +@fld.str.829 = private constant [4 x i8] c"cap\00" +@field_names.830 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.827, i64 5 }, { ptr, i64 } { ptr @fld.str.828, i64 3 }, { ptr, i64 } { ptr @fld.str.829, i64 3 }] +@str.831 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.832 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.833 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.834 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.835 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.836 = private constant [6 x i8] c"items\00" +@fld.str.837 = private constant [4 x i8] c"len\00" +@fld.str.838 = private constant [4 x i8] c"cap\00" +@field_names.839 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.836, i64 5 }, { ptr, i64 } { ptr @fld.str.837, i64 3 }, { ptr, i64 } { ptr @fld.str.838, i64 3 }] +@str.840 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.841 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.842 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.843 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.844 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.845 = private constant [4 x i8] c"key\00" +@fld.str.846 = private constant [4 x i8] c"val\00" +@field_names.847 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.845, i64 3 }, { ptr, i64 } { ptr @fld.str.846, i64 3 }] +@str.848 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.849 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.850 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.851 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.852 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.853 = private constant [4 x i8] c"dst\00" +@fld.str.854 = private constant [4 x i8] c"pos\00" +@fld.str.855 = private constant [5 x i8] c"file\00" +@field_names.856 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.853, i64 3 }, { ptr, i64 } { ptr @fld.str.854, i64 3 }, { ptr, i64 } { ptr @fld.str.855, i64 4 }] +@str.857 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.858 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.859 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.860 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.861 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.862 = private constant [4 x i8] c"src\00" +@fld.str.863 = private constant [4 x i8] c"pos\00" +@fld.str.864 = private constant [6 x i8] c"alloc\00" +@field_names.865 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.862, i64 3 }, { ptr, i64 } { ptr @fld.str.863, i64 3 }, { ptr, i64 } { ptr @fld.str.864, i64 5 }] +@str.866 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.867 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.868 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.869 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.870 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.871 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.872 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.873 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.874 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.875 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.876 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.877 = private constant [5 x i8] c"name\00" +@fld.str.878 = private constant [12 x i8] c"takes_value\00" +@fld.str.879 = private constant [9 x i8] c"required\00" +@field_names.880 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.877, i64 4 }, { ptr, i64 } { ptr @fld.str.878, i64 11 }, { ptr, i64 } { ptr @fld.str.879, i64 8 }] +@str.881 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.882 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.883 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.884 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.885 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.886 = private constant [6 x i8] c"group\00" +@fld.str.887 = private constant [8 x i8] c"command\00" +@fld.str.888 = private constant [6 x i8] c"flags\00" +@field_names.889 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.886, i64 5 }, { ptr, i64 } { ptr @fld.str.887, i64 7 }, { ptr, i64 } { ptr @fld.str.888, i64 5 }] +@str.890 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.891 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.892 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.893 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.894 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.895 = private constant [4 x i8] c"set\00" +@fld.str.896 = private constant [6 x i8] c"value\00" +@field_names.897 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.895, i64 3 }, { ptr, i64 } { ptr @fld.str.896, i64 5 }] +@str.898 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.899 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.900 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.901 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.902 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.903 = private constant [6 x i8] c"index\00" +@fld.str.904 = private constant [6 x i8] c"token\00" +@field_names.905 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.903, i64 5 }, { ptr, i64 } { ptr @fld.str.904, i64 5 }] +@str.906 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.907 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.908 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.909 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.910 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.911 = private constant [6 x i8] c"group\00" +@fld.str.912 = private constant [8 x i8] c"command\00" +@fld.str.913 = private constant [10 x i8] c"cmd_index\00" +@fld.str.914 = private constant [5 x i8] c"json\00" +@fld.str.915 = private constant [5 x i8] c"rest\00" +@fld.str.916 = private constant [5 x i8] c"spec\00" +@fld.str.917 = private constant [7 x i8] c"values\00" +@field_names.918 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.911, i64 5 }, { ptr, i64 } { ptr @fld.str.912, i64 7 }, { ptr, i64 } { ptr @fld.str.913, i64 9 }, { ptr, i64 } { ptr @fld.str.914, i64 4 }, { ptr, i64 } { ptr @fld.str.915, i64 4 }, { ptr, i64 } { ptr @fld.str.916, i64 4 }, { ptr, i64 } { ptr @fld.str.917, i64 6 }] +@str.919 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.920 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.921 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.922 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.923 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.924 = private constant [2 x i8] c"h\00" +@fld.str.925 = private constant [4 x i8] c"buf\00" +@fld.str.926 = private constant [8 x i8] c"buf_len\00" +@fld.str.927 = private constant [10 x i8] c"total_len\00" +@field_names.928 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.924, i64 1 }, { ptr, i64 } { ptr @fld.str.925, i64 3 }, { ptr, i64 } { ptr @fld.str.926, i64 7 }, { ptr, i64 } { ptr @fld.str.927, i64 9 }] +@str.929 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.930 = private unnamed_addr constant [5 x i8] c"Mat4\00", align 1 +@str.931 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.932 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.933 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.934 = private constant [5 x i8] c"data\00" +@field_names.935 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.934, i64 4 }] +@str.936 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.937 = private unnamed_addr constant [5 x i8] c"Vec2\00", align 1 +@str.938 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.939 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.940 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.941 = private constant [2 x i8] c"x\00" +@fld.str.942 = private constant [2 x i8] c"y\00" +@field_names.943 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.941, i64 1 }, { ptr, i64 } { ptr @fld.str.942, i64 1 }] +@str.944 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.945 = private unnamed_addr constant [6 x i8] c"Point\00", align 1 +@str.946 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.947 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.948 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.949 = private constant [2 x i8] c"x\00" +@fld.str.950 = private constant [2 x i8] c"y\00" +@field_names.951 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.949, i64 1 }, { ptr, i64 } { ptr @fld.str.950, i64 1 }] +@str.952 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.953 = private unnamed_addr constant [8 x i8] c"Counter\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"ctx\00" +@fld.str.958 = private constant [9 x i8] c"__vtable\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 8 }] +@str.960 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.961 = private unnamed_addr constant [18 x i8] c"__Counter__Vtable\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 [4 x i8] c"inc\00" +@fld.str.966 = private constant [4 x i8] c"get\00" +@field_names.967 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.965, i64 3 }, { ptr, i64 } { ptr @fld.str.966, i64 3 }] +@str.968 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.969 = private unnamed_addr constant [9 x i8] c"Summable\00", align 1 +@str.970 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.971 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.972 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.973 = private constant [4 x i8] c"ctx\00" +@fld.str.974 = private constant [9 x i8] c"__vtable\00" +@field_names.975 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.973, i64 3 }, { ptr, i64 } { ptr @fld.str.974, i64 8 }] +@str.976 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.977 = private unnamed_addr constant [19 x i8] c"__Summable__Vtable\00", align 1 +@str.978 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.979 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.980 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.981 = private constant [4 x i8] c"sum\00" +@field_names.982 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.981, i64 3 }] +@str.983 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.984 = private unnamed_addr constant [14 x i8] c"SimpleCounter\00", align 1 +@str.985 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.986 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.987 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.988 = private constant [4 x i8] c"val\00" +@field_names.989 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.988, i64 3 }] +@str.990 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.991 = private unnamed_addr constant [6 x i8] c"Adder\00", align 1 +@str.992 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.993 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.994 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.995 = private constant [4 x i8] c"ctx\00" +@fld.str.996 = private constant [4 x i8] c"add\00" +@fld.str.997 = private constant [6 x i8] c"value\00" +@field_names.998 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.995, i64 3 }, { ptr, i64 } { ptr @fld.str.996, i64 3 }, { ptr, i64 } { ptr @fld.str.997, i64 5 }] +@str.999 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1000 = private unnamed_addr constant [12 x i8] c"Accumulator\00", align 1 +@str.1001 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.1002 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.1003 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.1004 = private constant [6 x i8] c"total\00" +@field_names.1005 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1004, i64 5 }] +@str.1006 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.1007 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1008 = private constant [5 x i8] c"read\00" +@fld.str.1009 = private constant [6 x i8] c"write\00" +@fld.str.1010 = private constant [7 x i8] c"append\00" +@fld.str.1011 = private constant [11 x i8] c"read_write\00" +@field_names.1012 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1008, i64 4 }, { ptr, i64 } { ptr @fld.str.1009, i64 5 }, { ptr, i64 } { ptr @fld.str.1010, i64 6 }, { ptr, i64 } { ptr @fld.str.1011, i64 10 }] +@str.1013 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1014 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1015 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1016 = private constant [4 x i8] c"set\00" +@fld.str.1017 = private constant [8 x i8] c"current\00" +@fld.str.1018 = private constant [4 x i8] c"end\00" +@field_names.1019 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1016, i64 3 }, { ptr, i64 } { ptr @fld.str.1017, i64 7 }, { ptr, i64 } { ptr @fld.str.1018, i64 3 }] +@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 [2 x i8] c".\00", align 1 +@fld.str.1023 = private constant [6 x i8] c"null_\00" +@fld.str.1024 = private constant [6 x i8] c"bool_\00" +@fld.str.1025 = private constant [5 x i8] c"int_\00" +@fld.str.1026 = private constant [4 x i8] c"str\00" +@fld.str.1027 = private constant [6 x i8] c"array\00" +@fld.str.1028 = private constant [7 x i8] c"object\00" +@field_names.1029 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1023, i64 5 }, { ptr, i64 } { ptr @fld.str.1024, i64 5 }, { ptr, i64 } { ptr @fld.str.1025, i64 4 }, { ptr, i64 } { ptr @fld.str.1026, i64 3 }, { ptr, i64 } { ptr @fld.str.1027, i64 5 }, { ptr, i64 } { ptr @fld.str.1028, i64 6 }] +@str.1030 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1031 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1032 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1033 = private constant [6 x i8] c"macos\00" +@fld.str.1034 = private constant [6 x i8] c"linux\00" +@fld.str.1035 = private constant [8 x i8] c"windows\00" +@fld.str.1036 = private constant [5 x i8] c"wasm\00" +@fld.str.1037 = private constant [4 x i8] c"ios\00" +@fld.str.1038 = private constant [8 x i8] c"android\00" +@fld.str.1039 = private constant [8 x i8] c"unknown\00" +@field_names.1040 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1033, i64 5 }, { ptr, i64 } { ptr @fld.str.1034, i64 5 }, { ptr, i64 } { ptr @fld.str.1035, i64 7 }, { ptr, i64 } { ptr @fld.str.1036, i64 4 }, { ptr, i64 } { ptr @fld.str.1037, i64 3 }, { ptr, i64 } { ptr @fld.str.1038, i64 7 }, { ptr, i64 } { ptr @fld.str.1039, i64 7 }] +@str.1041 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1042 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1043 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.1044 = private constant [8 x i8] c"aarch64\00" +@fld.str.1045 = private constant [7 x i8] c"x86_64\00" +@fld.str.1046 = private constant [7 x i8] c"wasm32\00" +@fld.str.1047 = private constant [7 x i8] c"wasm64\00" +@fld.str.1048 = private constant [8 x i8] c"unknown\00" +@field_names.1049 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.1044, i64 7 }, { ptr, i64 } { ptr @fld.str.1045, i64 6 }, { ptr, i64 } { ptr @fld.str.1046, i64 6 }, { ptr, i64 } { ptr @fld.str.1047, i64 6 }, { ptr, i64 } { ptr @fld.str.1048, i64 7 }] +@str.1050 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.1051 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.1052 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1053 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1054 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1055 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1056 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1057 = private unnamed_addr constant [3 x i8] c", \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 +@str.1061 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1062 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1063 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1064 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1065 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1066 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1067 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1068 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1069 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1070 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1071 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1072 = private unnamed_addr constant [3 x i8] c", \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 +@str.1076 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1077 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1078 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1079 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1080 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1081 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1082 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1083 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1084 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1085 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.1086 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.1087 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.1088 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1089 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.1090 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1091 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1092 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.1093 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1094 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1095 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.1096 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1097 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1098 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.1099 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1100 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1101 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.1102 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1103 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1104 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.1105 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1106 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1107 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.1108 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1109 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1110 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.1111 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1112 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1113 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.1114 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1115 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1116 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.1117 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1118 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1119 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.1120 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1121 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1122 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.1123 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1124 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1125 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.1126 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1127 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1128 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.1129 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1130 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1131 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.1132 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1133 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1134 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.1135 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1136 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1137 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.1138 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1139 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1140 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.1141 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1142 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1143 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.1144 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1145 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1146 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.1147 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1148 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1149 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.1150 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1151 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1152 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.1153 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1154 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1155 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.1156 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1157 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1158 = private unnamed_addr constant [15 x i8] c"*SimpleCounter\00", align 1 +@str.1159 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1160 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1161 = private unnamed_addr constant [7 x i8] c"*Point\00", align 1 +@str.1162 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1163 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1164 = private unnamed_addr constant [13 x i8] c"*Accumulator\00", align 1 +@str.1165 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1166 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1167 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.1168 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1169 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1170 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.1171 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1172 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1173 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.1174 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1175 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1176 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.1177 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1178 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1179 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.1180 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1181 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1182 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.1183 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1184 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1185 = private unnamed_addr constant [9 x i8] c"*Counter\00", align 1 +@str.1186 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1187 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1188 = private unnamed_addr constant [16 x i8] c"**SimpleCounter\00", align 1 +@str.1189 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1190 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1191 = private unnamed_addr constant [19 x i8] c"*__Counter__Vtable\00", align 1 +@str.1192 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1193 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1194 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.1195 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1196 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1197 = private unnamed_addr constant [7 x i8] c"*Adder\00", align 1 +@str.1198 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1199 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1200 = private unnamed_addr constant [14 x i8] c"**Accumulator\00", align 1 +@str.1201 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.1202 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1203 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1204 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.1205 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -662,7 +980,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.78, i64 1 } + ret { ptr, i64 } { ptr @str.466, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -789,7 +1107,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.79, i64 4 }, %if.then.78 ], [ { ptr @str.80, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.467, i64 4 }, %if.then.78 ], [ { ptr @str.468, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -958,38 +1276,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.291 + br label %while.hdr.444 -while.hdr.291: ; preds = %if.merge.296, %entry +while.hdr.444: ; preds = %if.merge.449, %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.292, label %while.exit.293 + br i1 %icmp, label %while.body.445, label %while.exit.446 -while.body.292: ; preds = %while.hdr.291 +while.body.445: ; preds = %while.hdr.444 %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.294, label %if.else.295 + br i1 %icmpN, label %if.then.447, label %if.else.448 -while.exit.293: ; preds = %while.hdr.291 +while.exit.446: ; preds = %while.hdr.444 ret void -if.then.294: ; preds = %while.body.292 +if.then.447: ; preds = %while.body.445 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.296 + br label %if.merge.449 -if.else.295: ; preds = %while.body.292 +if.else.448: ; preds = %while.body.445 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.296 + br label %if.merge.449 -if.merge.296: ; preds = %if.else.295, %if.then.294 - %bp = phi i64 [ %addN, %if.then.294 ], [ %addN, %if.else.295 ] +if.merge.449: ; preds = %if.else.448, %if.then.447 + %bp = phi i64 [ %addN, %if.then.447 ], [ %addN, %if.else.448 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1002,7 +1320,7 @@ if.merge.296: ; preds = %if.else.295, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.291 + br label %while.hdr.444 } ; Function Attrs: nounwind @@ -1120,12 +1438,12 @@ entry: 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.289, label %if.merge.290 + br i1 %icmp, label %if.then.442, label %if.merge.443 -if.then.289: ; preds = %entry - ret { ptr, i64 } { ptr @str.81, i64 1 } +if.then.442: ; preds = %entry + ret { ptr, i64 } { ptr @str.469, i64 1 } -if.merge.290: ; preds = %entry +if.merge.443: ; 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 @@ -1156,14 +1474,14 @@ if.merge.290: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.297 + br label %while.hdr.450 -while.hdr.297: ; preds = %if.merge.301, %if.merge.290 +while.hdr.450: ; preds = %if.merge.454, %if.merge.443 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.298, label %while.exit.299 + br i1 %icmpN, label %while.body.451, label %while.exit.452 -while.body.298: ; preds = %while.hdr.297 +while.body.451: ; preds = %while.hdr.450 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1171,9 +1489,9 @@ while.body.298: ; preds = %while.hdr.297 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.300, label %if.merge.301 + br i1 %icmpN, label %if.then.453, label %if.merge.454 -while.exit.299: ; preds = %if.then.300, %while.hdr.297 +while.exit.452: ; preds = %if.then.453, %while.hdr.450 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1181,14 +1499,14 @@ while.exit.299: ; preds = %if.then.300, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.300: ; preds = %while.body.298 - br label %while.exit.299 +if.then.453: ; preds = %while.body.451 + br label %while.exit.452 -if.merge.301: ; preds = %while.body.298 +if.merge.454: ; preds = %while.body.451 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.297 + br label %while.hdr.450 } ; Function Attrs: nounwind @@ -1266,12 +1584,14 @@ entry: %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.82, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.470, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1304,24 +1624,52 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 - i64 38, label %match.arm.43 i64 39, label %match.arm.43 - i64 42, label %match.arm.43 - i64 44, label %match.arm.43 + i64 43, label %match.arm.43 i64 45, label %match.arm.43 - i64 46, label %match.arm.43 - i64 47, label %match.arm.43 i64 48, label %match.arm.43 - i64 49, label %match.arm.43 i64 52, label %match.arm.43 i64 53, label %match.arm.43 - i64 40, label %match.arm.44 - i64 41, label %match.arm.44 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 94, label %match.arm.43 + i64 95, label %match.arm.43 + i64 96, label %match.arm.43 + i64 97, label %match.arm.43 + i64 98, label %match.arm.43 + i64 99, label %match.arm.43 + i64 100, label %match.arm.43 + i64 101, label %match.arm.43 + i64 104, label %match.arm.43 + i64 105, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 37, label %match.arm.47 - i64 68, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 93, label %match.arm.47 + i64 117, label %match.arm.47 i64 36, label %match.arm.48 - i64 59, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 110, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1330,33 +1678,49 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 + i64 40, label %match.arm.49 + i64 44, label %match.arm.49 + i64 47, label %match.arm.49 + i64 49, label %match.arm.49 i64 50, label %match.arm.49 - i64 51, label %match.arm.49 - i64 54, label %match.arm.49 - i64 55, label %match.arm.49 i64 56, label %match.arm.49 i64 57, label %match.arm.49 i64 58, label %match.arm.49 - i64 60, label %match.arm.49 - i64 61, label %match.arm.49 + i64 59, label %match.arm.49 i64 62, label %match.arm.49 - i64 63, label %match.arm.49 - i64 64, label %match.arm.49 - i64 65, label %match.arm.49 - i64 66, label %match.arm.49 i64 67, label %match.arm.49 - i64 69, label %match.arm.49 - i64 70, label %match.arm.49 - i64 71, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 102, label %match.arm.49 + i64 103, label %match.arm.49 + i64 106, label %match.arm.49 + i64 107, label %match.arm.49 + i64 108, label %match.arm.49 + i64 109, label %match.arm.49 + i64 111, label %match.arm.49 + i64 112, label %match.arm.49 + i64 113, label %match.arm.49 + i64 114, label %match.arm.49 + i64 115, label %match.arm.49 + i64 116, label %match.arm.49 + i64 118, label %match.arm.49 + i64 119, label %match.arm.49 + i64 120, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.258, %dispatch.merge.244, %dispatch.merge.224, %dispatch.merge.216, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.566, %dispatch.merge.399, %dispatch.merge.367, %dispatch.merge.323, %dispatch.merge.306, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.83, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.471, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1365,7 +1729,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [108 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [189 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1393,7 +1757,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1407,96 +1771,150 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 - i64 38, label %dispatch.case.105 - i64 39, label %dispatch.case.106 - i64 42, label %dispatch.case.107 - i64 44, label %dispatch.case.108 - i64 45, label %dispatch.case.109 - i64 46, label %dispatch.case.110 - i64 47, label %dispatch.case.111 - i64 48, label %dispatch.case.112 - i64 49, label %dispatch.case.113 - i64 52, label %dispatch.case.114 - i64 53, label %dispatch.case.115 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 94, label %dispatch.case.121 + i64 95, label %dispatch.case.122 + i64 96, label %dispatch.case.123 + i64 97, label %dispatch.case.124 + i64 98, label %dispatch.case.125 + i64 99, label %dispatch.case.126 + i64 100, label %dispatch.case.127 + i64 101, label %dispatch.case.128 + i64 104, label %dispatch.case.129 + i64 105, label %dispatch.case.130 ] -match.arm.44: ; preds = %entry, %entry +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.217 [ - i64 40, label %dispatch.case.218 - i64 41, label %dispatch.case.219 + switch i64 %ua.raw20, label %dispatch.default.307 [ + i64 37, label %dispatch.case.308 + i64 38, label %dispatch.case.309 + i64 54, label %dispatch.case.310 + i64 70, label %dispatch.case.311 + i64 71, label %dispatch.case.312 ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.225 [ - i64 35, label %dispatch.case.226 - i64 37, label %dispatch.case.227 - i64 68, label %dispatch.case.228 + switch i64 %ua.raw29, label %dispatch.default.324 [ + i64 35, label %dispatch.case.325 + i64 81, label %dispatch.case.326 + i64 87, label %dispatch.case.327 + i64 88, label %dispatch.case.328 + i64 92, label %dispatch.case.329 + i64 93, label %dispatch.case.330 + i64 117, label %dispatch.case.331 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.245 [ - i64 36, label %dispatch.case.246 - i64 59, label %dispatch.case.247 + switch i64 %ua.raw33, label %dispatch.default.368 [ + i64 36, label %dispatch.case.369 + i64 60, label %dispatch.case.370 + i64 77, label %dispatch.case.371 + i64 85, label %dispatch.case.372 + i64 110, label %dispatch.case.373 ] -match.arm.49: ; 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 +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw32 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw32, label %dispatch.default.259 [ - i64 18, label %dispatch.case.260 - i64 21, label %dispatch.case.261 - i64 23, label %dispatch.case.262 - i64 25, label %dispatch.case.263 - i64 28, label %dispatch.case.264 - i64 29, label %dispatch.case.265 - i64 31, label %dispatch.case.266 - i64 33, label %dispatch.case.267 - i64 50, label %dispatch.case.268 - i64 51, label %dispatch.case.269 - i64 54, label %dispatch.case.270 - i64 55, label %dispatch.case.271 - i64 56, label %dispatch.case.272 - i64 57, label %dispatch.case.273 - i64 58, label %dispatch.case.274 - i64 60, label %dispatch.case.275 - i64 61, label %dispatch.case.276 - i64 62, label %dispatch.case.277 - i64 63, label %dispatch.case.278 - i64 64, label %dispatch.case.279 - i64 65, label %dispatch.case.280 - i64 66, label %dispatch.case.281 - i64 67, label %dispatch.case.282 - i64 69, label %dispatch.case.283 - i64 70, label %dispatch.case.284 - i64 71, label %dispatch.case.285 + switch i64 %ua.raw37, label %dispatch.default.400 [ + i64 18, label %dispatch.case.401 + i64 21, label %dispatch.case.402 + i64 23, label %dispatch.case.403 + i64 25, label %dispatch.case.404 + i64 28, label %dispatch.case.405 + i64 29, label %dispatch.case.406 + i64 31, label %dispatch.case.407 + i64 33, label %dispatch.case.408 + i64 40, label %dispatch.case.409 + i64 44, label %dispatch.case.410 + i64 47, label %dispatch.case.411 + i64 49, label %dispatch.case.412 + i64 50, label %dispatch.case.413 + i64 56, label %dispatch.case.414 + i64 57, label %dispatch.case.415 + i64 58, label %dispatch.case.416 + i64 59, label %dispatch.case.417 + i64 62, label %dispatch.case.418 + i64 67, label %dispatch.case.419 + i64 74, label %dispatch.case.420 + i64 83, label %dispatch.case.421 + i64 86, label %dispatch.case.422 + i64 90, label %dispatch.case.423 + i64 102, label %dispatch.case.424 + i64 103, label %dispatch.case.425 + i64 106, label %dispatch.case.426 + i64 107, label %dispatch.case.427 + i64 108, label %dispatch.case.428 + i64 109, label %dispatch.case.429 + i64 111, label %dispatch.case.430 + i64 112, label %dispatch.case.431 + i64 113, label %dispatch.case.432 + i64 114, label %dispatch.case.433 + i64 115, label %dispatch.case.434 + i64 116, label %dispatch.case.435 + i64 118, label %dispatch.case.436 + i64 119, label %dispatch.case.437 + i64 120, label %dispatch.case.438 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.567 [ + i64 41, label %dispatch.case.568 + i64 42, label %dispatch.case.569 + i64 46, label %dispatch.case.570 + i64 91, label %dispatch.case.571 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag36 = extractvalue { i64, i64 } %loadN, 0 - %refl.val37 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype38 = icmp eq i64 %refl.tag36, 13 - %refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36 - %tn.gep = getelementptr inbounds [108 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [189 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1506,15 +1924,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw44 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1522,16 +1940,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw46 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw46 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw47 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1541,444 +1959,765 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.130, %dispatch.case.129, %dispatch.case.128, %dispatch.case.127, %dispatch.case.126, %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.191, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.673, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load {}, ptr %ua.ptr56, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, ptr, ptr }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load69) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load { [16 x float] }, ptr %ua.ptr88, align 4 - %callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load89) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.106: ; preds = %match.arm.43 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load { float, float }, ptr %ua.ptr92, align 4 - %callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load93) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.107: ; preds = %match.arm.43 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load {}, ptr %ua.ptr96, align 1 - %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load97) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.108: ; preds = %match.arm.43 - %ua.raw99 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr100 = inttoptr i64 %ua.raw99 to ptr - %ua.load101 = load { i32, i32 }, ptr %ua.ptr100, align 4 - %callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load101) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.109: ; preds = %match.arm.43 - %ua.raw103 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr104 = inttoptr i64 %ua.raw103 to ptr - %ua.load105 = load { ptr, ptr }, ptr %ua.ptr104, align 8 - %callN = call { ptr, i64 } @struct_to_string__Counter(ptr %0, { ptr, ptr } %ua.load105) + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.110: ; preds = %match.arm.43 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr108 = inttoptr i64 %ua.raw107 to ptr - %ua.load109 = load { ptr, ptr }, ptr %ua.ptr108, align 8 - %callN = call { ptr, i64 } @struct_to_string____Counter__Vtable(ptr %0, { ptr, ptr } %ua.load109) + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.111: ; preds = %match.arm.43 - %ua.raw111 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr112 = inttoptr i64 %ua.raw111 to ptr - %ua.load113 = load { ptr, ptr }, ptr %ua.ptr112, align 8 - %callN = call { ptr, i64 } @struct_to_string__Summable(ptr %0, { ptr, ptr } %ua.load113) + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.112: ; preds = %match.arm.43 - %ua.raw115 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr116 = inttoptr i64 %ua.raw115 to ptr - %ua.load117 = load { ptr }, ptr %ua.ptr116, align 8 - %callN = call { ptr, i64 } @struct_to_string____Summable__Vtable(ptr %0, { ptr } %ua.load117) + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.113: ; preds = %match.arm.43 - %ua.raw119 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr120 = inttoptr i64 %ua.raw119 to ptr - %ua.load121 = load { i32 }, ptr %ua.ptr120, align 4 - %callN = call { ptr, i64 } @struct_to_string__SimpleCounter(ptr %0, { i32 } %ua.load121) + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.114: ; preds = %match.arm.43 - %ua.raw123 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr124 = inttoptr i64 %ua.raw123 to ptr - %ua.load125 = load { ptr, ptr, ptr }, ptr %ua.ptr124, align 8 - %callN = call { ptr, i64 } @struct_to_string__Adder(ptr %0, { ptr, ptr, ptr } %ua.load125) + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.115: ; preds = %match.arm.43 - %ua.raw127 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr128 = inttoptr i64 %ua.raw127 to ptr - %ua.load129 = load { i32 }, ptr %ua.ptr128, align 4 - %callN = call { ptr, i64 } @struct_to_string__Accumulator(ptr %0, { i32 } %ua.load129) + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.216: ; preds = %dispatch.case.219, %dispatch.case.218, %dispatch.default.217 +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { [16 x float] }, ptr %ua.ptr161, align 4 + %callN = call { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.122: ; preds = %match.arm.43 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load { float, float }, ptr %ua.ptr165, align 4 + %callN = call { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.123: ; preds = %match.arm.43 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load { i32, i32 }, ptr %ua.ptr169, align 4 + %callN = call { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %ua.load170) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.124: ; preds = %match.arm.43 + %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr173 = inttoptr i64 %ua.raw172 to ptr + %ua.load174 = load { ptr, ptr }, ptr %ua.ptr173, align 8 + %callN = call { ptr, i64 } @struct_to_string__Counter(ptr %0, { ptr, ptr } %ua.load174) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.125: ; preds = %match.arm.43 + %ua.raw176 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr177 = inttoptr i64 %ua.raw176 to ptr + %ua.load178 = load { ptr, ptr }, ptr %ua.ptr177, align 8 + %callN = call { ptr, i64 } @struct_to_string____Counter__Vtable(ptr %0, { ptr, ptr } %ua.load178) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.126: ; preds = %match.arm.43 + %ua.raw180 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr181 = inttoptr i64 %ua.raw180 to ptr + %ua.load182 = load { ptr, ptr }, ptr %ua.ptr181, align 8 + %callN = call { ptr, i64 } @struct_to_string__Summable(ptr %0, { ptr, ptr } %ua.load182) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.127: ; preds = %match.arm.43 + %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr185 = inttoptr i64 %ua.raw184 to ptr + %ua.load186 = load { ptr }, ptr %ua.ptr185, align 8 + %callN = call { ptr, i64 } @struct_to_string____Summable__Vtable(ptr %0, { ptr } %ua.load186) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.128: ; preds = %match.arm.43 + %ua.raw188 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr189 = inttoptr i64 %ua.raw188 to ptr + %ua.load190 = load { i32 }, ptr %ua.ptr189, align 4 + %callN = call { ptr, i64 } @struct_to_string__SimpleCounter(ptr %0, { i32 } %ua.load190) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.129: ; preds = %match.arm.43 + %ua.raw192 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr193 = inttoptr i64 %ua.raw192 to ptr + %ua.load194 = load { ptr, ptr, ptr }, ptr %ua.ptr193, align 8 + %callN = call { ptr, i64 } @struct_to_string__Adder(ptr %0, { ptr, ptr, ptr } %ua.load194) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.130: ; preds = %match.arm.43 + %ua.raw196 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr197 = inttoptr i64 %ua.raw196 to ptr + %ua.load198 = load { i32 }, ptr %ua.ptr197, align 4 + %callN = call { ptr, i64 } @struct_to_string__Accumulator(ptr %0, { i32 } %ua.load198) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.306: ; preds = %dispatch.case.312, %dispatch.case.311, %dispatch.case.310, %dispatch.case.309, %dispatch.case.308, %dispatch.default.307 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.217: ; preds = %match.arm.44 - store { ptr, i64 } { ptr @str.192, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.216 +dispatch.default.307: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.674, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.306 -dispatch.case.218: ; preds = %match.arm.44 - %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw132) +dispatch.case.308: ; preds = %match.arm.44 + %ua.raw201 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw201) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.306 -dispatch.case.219: ; preds = %match.arm.44 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw134) +dispatch.case.309: ; preds = %match.arm.44 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw203) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.216 + br label %dispatch.merge.306 -dispatch.merge.224: ; preds = %dispatch.case.228, %dispatch.case.227, %dispatch.case.226, %dispatch.default.225 +dispatch.case.310: ; preds = %match.arm.44 + %ua.raw205 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr206 = inttoptr i64 %ua.raw205 to ptr + %ua.load207 = load { i64, [24 x i8] }, ptr %ua.ptr206, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load207) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.306 + +dispatch.case.311: ; preds = %match.arm.44 + %ua.raw209 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.306 + +dispatch.case.312: ; preds = %match.arm.44 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw211) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.306 + +dispatch.merge.323: ; preds = %dispatch.case.331, %dispatch.case.330, %dispatch.case.329, %dispatch.case.328, %dispatch.case.327, %dispatch.case.326, %dispatch.case.325, %dispatch.default.324 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.225: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.193, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.224 +dispatch.default.324: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.675, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.323 -dispatch.case.226: ; preds = %match.arm.47 - %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr138 = inttoptr i64 %ua.raw137 to ptr - %ua.load139 = load [4 x i64], ptr %ua.ptr138, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load139) +dispatch.case.325: ; preds = %match.arm.47 + %ua.raw214 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr215 = inttoptr i64 %ua.raw214 to ptr + %ua.load216 = load [4 x i64], ptr %ua.ptr215, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load216) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.323 -dispatch.case.227: ; preds = %match.arm.47 - %ua.raw141 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr142 = inttoptr i64 %ua.raw141 to ptr - %ua.load143 = load [16 x float], ptr %ua.ptr142, align 4 - %callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load143) +dispatch.case.326: ; preds = %match.arm.47 + %ua.raw218 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr219 = inttoptr i64 %ua.raw218 to ptr + %ua.load220 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr219, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load220) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.323 -dispatch.case.228: ; preds = %match.arm.47 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr146 = inttoptr i64 %ua.raw145 to ptr - %ua.load147 = load [1 x { i64, i64 }], ptr %ua.ptr146, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load147) +dispatch.case.327: ; preds = %match.arm.47 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr223 = inttoptr i64 %ua.raw222 to ptr + %ua.load224 = load [8 x i64], ptr %ua.ptr223, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load224) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.323 -dispatch.merge.244: ; preds = %dispatch.case.247, %dispatch.case.246, %dispatch.default.245 +dispatch.case.328: ; preds = %match.arm.47 + %ua.raw226 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr227 = inttoptr i64 %ua.raw226 to ptr + %ua.load228 = load [64 x i8], ptr %ua.ptr227, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load228) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.323 + +dispatch.case.329: ; preds = %match.arm.47 + %ua.raw230 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr231 = inttoptr i64 %ua.raw230 to ptr + %ua.load232 = load [64 x i64], ptr %ua.ptr231, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load232) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.323 + +dispatch.case.330: ; preds = %match.arm.47 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr235 = inttoptr i64 %ua.raw234 to ptr + %ua.load236 = load [16 x float], ptr %ua.ptr235, align 4 + %callN = call { ptr, i64 } @array_to_string__AR_16_f32(ptr %0, [16 x float] %ua.load236) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.323 + +dispatch.case.331: ; preds = %match.arm.47 + %ua.raw238 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr239 = inttoptr i64 %ua.raw238 to ptr + %ua.load240 = load [1 x { i64, i64 }], ptr %ua.ptr239, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load240) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.323 + +dispatch.merge.367: ; preds = %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.default.368 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.245: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.194, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.244 +dispatch.default.368: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.676, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.367 -dispatch.case.246: ; preds = %match.arm.48 - %ua.raw150 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr151 = inttoptr i64 %ua.raw150 to ptr - %ua.load152 = load { ptr, i64 }, ptr %ua.ptr151, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load152) +dispatch.case.369: ; preds = %match.arm.48 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr244 = inttoptr i64 %ua.raw243 to ptr + %ua.load245 = load { ptr, i64 }, ptr %ua.ptr244, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load245) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.244 + br label %dispatch.merge.367 -dispatch.case.247: ; preds = %match.arm.48 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr155 = inttoptr i64 %ua.raw154 to ptr - %ua.load156 = load { ptr, i64 }, ptr %ua.ptr155, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load156) +dispatch.case.370: ; preds = %match.arm.48 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr248 = inttoptr i64 %ua.raw247 to ptr + %ua.load249 = load { ptr, i64 }, ptr %ua.ptr248, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load249) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.244 + br label %dispatch.merge.367 -dispatch.merge.258: ; preds = %dispatch.case.285, %dispatch.case.284, %dispatch.case.283, %dispatch.case.282, %dispatch.case.281, %dispatch.case.280, %dispatch.case.279, %dispatch.case.278, %dispatch.case.277, %dispatch.case.276, %dispatch.case.275, %dispatch.case.274, %dispatch.case.273, %dispatch.case.272, %dispatch.case.271, %dispatch.case.270, %dispatch.case.269, %dispatch.case.268, %dispatch.case.267, %dispatch.case.266, %dispatch.case.265, %dispatch.case.264, %dispatch.case.263, %dispatch.case.262, %dispatch.case.261, %dispatch.case.260, %dispatch.default.259 +dispatch.case.371: ; preds = %match.arm.48 + %ua.raw251 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr252 = inttoptr i64 %ua.raw251 to ptr + %ua.load253 = load { ptr, i64 }, ptr %ua.ptr252, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load253) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.367 + +dispatch.case.372: ; preds = %match.arm.48 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr256 = inttoptr i64 %ua.raw255 to ptr + %ua.load257 = load { ptr, i64 }, ptr %ua.ptr256, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load257) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.367 + +dispatch.case.373: ; preds = %match.arm.48 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr260 = inttoptr i64 %ua.raw259 to ptr + %ua.load261 = load { ptr, i64 }, ptr %ua.ptr260, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load261) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.367 + +dispatch.merge.399: ; preds = %dispatch.case.438, %dispatch.case.437, %dispatch.case.436, %dispatch.case.435, %dispatch.case.434, %dispatch.case.433, %dispatch.case.432, %dispatch.case.431, %dispatch.case.430, %dispatch.case.429, %dispatch.case.428, %dispatch.case.427, %dispatch.case.426, %dispatch.case.425, %dispatch.case.424, %dispatch.case.423, %dispatch.case.422, %dispatch.case.421, %dispatch.case.420, %dispatch.case.419, %dispatch.case.418, %dispatch.case.417, %dispatch.case.416, %dispatch.case.415, %dispatch.case.414, %dispatch.case.413, %dispatch.case.412, %dispatch.case.411, %dispatch.case.410, %dispatch.case.409, %dispatch.case.408, %dispatch.case.407, %dispatch.case.406, %dispatch.case.405, %dispatch.case.404, %dispatch.case.403, %dispatch.case.402, %dispatch.case.401, %dispatch.default.400 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.259: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.195, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.258 +dispatch.default.400: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.677, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.399 -dispatch.case.260: ; preds = %match.arm.49 - %ua.raw159 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw159 to ptr +dispatch.case.401: ; preds = %match.arm.49 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw264 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.261: ; preds = %match.arm.49 - %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 - %iNp162 = inttoptr i64 %ua.raw161 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp162) +dispatch.case.402: ; preds = %match.arm.49 + %ua.raw266 = extractvalue { i64, i64 } %loadN, 1 + %iNp267 = inttoptr i64 %ua.raw266 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp267) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.262: ; preds = %match.arm.49 - %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 - %iNp165 = inttoptr i64 %ua.raw164 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp165) +dispatch.case.403: ; preds = %match.arm.49 + %ua.raw269 = extractvalue { i64, i64 } %loadN, 1 + %iNp270 = inttoptr i64 %ua.raw269 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp270) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.263: ; preds = %match.arm.49 - %ua.raw167 = extractvalue { i64, i64 } %loadN, 1 - %iNp168 = inttoptr i64 %ua.raw167 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp168) +dispatch.case.404: ; preds = %match.arm.49 + %ua.raw272 = extractvalue { i64, i64 } %loadN, 1 + %iNp273 = inttoptr i64 %ua.raw272 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp273) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.264: ; preds = %match.arm.49 - %ua.raw170 = extractvalue { i64, i64 } %loadN, 1 - %iNp171 = inttoptr i64 %ua.raw170 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp171) +dispatch.case.405: ; preds = %match.arm.49 + %ua.raw275 = extractvalue { i64, i64 } %loadN, 1 + %iNp276 = inttoptr i64 %ua.raw275 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp276) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.265: ; preds = %match.arm.49 - %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 - %iNp174 = inttoptr i64 %ua.raw173 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp174) +dispatch.case.406: ; preds = %match.arm.49 + %ua.raw278 = extractvalue { i64, i64 } %loadN, 1 + %iNp279 = inttoptr i64 %ua.raw278 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp279) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.266: ; preds = %match.arm.49 - %ua.raw176 = extractvalue { i64, i64 } %loadN, 1 - %iNp177 = inttoptr i64 %ua.raw176 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp177) +dispatch.case.407: ; preds = %match.arm.49 + %ua.raw281 = extractvalue { i64, i64 } %loadN, 1 + %iNp282 = inttoptr i64 %ua.raw281 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp282) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.267: ; preds = %match.arm.49 - %ua.raw179 = extractvalue { i64, i64 } %loadN, 1 - %iNp180 = inttoptr i64 %ua.raw179 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp180) +dispatch.case.408: ; preds = %match.arm.49 + %ua.raw284 = extractvalue { i64, i64 } %loadN, 1 + %iNp285 = inttoptr i64 %ua.raw284 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp285) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.268: ; preds = %match.arm.49 - %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 - %iNp183 = inttoptr i64 %ua.raw182 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SimpleCounter(ptr %0, ptr %iNp183) +dispatch.case.409: ; preds = %match.arm.49 + %ua.raw287 = extractvalue { i64, i64 } %loadN, 1 + %iNp288 = inttoptr i64 %ua.raw287 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp288) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.269: ; preds = %match.arm.49 - %ua.raw185 = extractvalue { i64, i64 } %loadN, 1 - %iNp186 = inttoptr i64 %ua.raw185 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp186) +dispatch.case.410: ; preds = %match.arm.49 + %ua.raw290 = extractvalue { i64, i64 } %loadN, 1 + %iNp291 = inttoptr i64 %ua.raw290 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp291) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.270: ; preds = %match.arm.49 - %ua.raw188 = extractvalue { i64, i64 } %loadN, 1 - %iNp189 = inttoptr i64 %ua.raw188 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Accumulator(ptr %0, ptr %iNp189) +dispatch.case.411: ; preds = %match.arm.49 + %ua.raw293 = extractvalue { i64, i64 } %loadN, 1 + %iNp294 = inttoptr i64 %ua.raw293 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp294) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.271: ; preds = %match.arm.49 - %ua.raw191 = extractvalue { i64, i64 } %loadN, 1 - %iNp192 = inttoptr i64 %ua.raw191 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp192) +dispatch.case.412: ; preds = %match.arm.49 + %ua.raw296 = extractvalue { i64, i64 } %loadN, 1 + %iNp297 = inttoptr i64 %ua.raw296 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp297) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.272: ; preds = %match.arm.49 - %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 - %iNp195 = inttoptr i64 %ua.raw194 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp195) +dispatch.case.413: ; preds = %match.arm.49 + %ua.raw299 = extractvalue { i64, i64 } %loadN, 1 + %iNp300 = inttoptr i64 %ua.raw299 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp300) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.273: ; preds = %match.arm.49 - %ua.raw197 = extractvalue { i64, i64 } %loadN, 1 - %iNp198 = inttoptr i64 %ua.raw197 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp198) +dispatch.case.414: ; preds = %match.arm.49 + %ua.raw302 = extractvalue { i64, i64 } %loadN, 1 + %iNp303 = inttoptr i64 %ua.raw302 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp303) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.274: ; preds = %match.arm.49 - %ua.raw200 = extractvalue { i64, i64 } %loadN, 1 - %iNp201 = inttoptr i64 %ua.raw200 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp201) +dispatch.case.415: ; preds = %match.arm.49 + %ua.raw305 = extractvalue { i64, i64 } %loadN, 1 + %iNp306 = inttoptr i64 %ua.raw305 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp306) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.275: ; preds = %match.arm.49 - %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 - %iNp204 = inttoptr i64 %ua.raw203 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp204) +dispatch.case.416: ; preds = %match.arm.49 + %ua.raw308 = extractvalue { i64, i64 } %loadN, 1 + %iNp309 = inttoptr i64 %ua.raw308 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp309) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.276: ; preds = %match.arm.49 - %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 - %iNp207 = inttoptr i64 %ua.raw206 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp207) +dispatch.case.417: ; preds = %match.arm.49 + %ua.raw311 = extractvalue { i64, i64 } %loadN, 1 + %iNp312 = inttoptr i64 %ua.raw311 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp312) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.277: ; preds = %match.arm.49 - %ua.raw209 = extractvalue { i64, i64 } %loadN, 1 - %iNp210 = inttoptr i64 %ua.raw209 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp210) +dispatch.case.418: ; preds = %match.arm.49 + %ua.raw314 = extractvalue { i64, i64 } %loadN, 1 + %iNp315 = inttoptr i64 %ua.raw314 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp315) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.278: ; preds = %match.arm.49 - %ua.raw212 = extractvalue { i64, i64 } %loadN, 1 - %iNp213 = inttoptr i64 %ua.raw212 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp213) +dispatch.case.419: ; preds = %match.arm.49 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %iNp318 = inttoptr i64 %ua.raw317 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp318) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.279: ; preds = %match.arm.49 - %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 - %iNp216 = inttoptr i64 %ua.raw215 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Counter(ptr %0, ptr %iNp216) +dispatch.case.420: ; preds = %match.arm.49 + %ua.raw320 = extractvalue { i64, i64 } %loadN, 1 + %iNp321 = inttoptr i64 %ua.raw320 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp321) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.280: ; preds = %match.arm.49 - %ua.raw218 = extractvalue { i64, i64 } %loadN, 1 - %iNp219 = inttoptr i64 %ua.raw218 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_SimpleCounter(ptr %0, ptr %iNp219) +dispatch.case.421: ; preds = %match.arm.49 + %ua.raw323 = extractvalue { i64, i64 } %loadN, 1 + %iNp324 = inttoptr i64 %ua.raw323 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp324) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.281: ; preds = %match.arm.49 - %ua.raw221 = extractvalue { i64, i64 } %loadN, 1 - %iNp222 = inttoptr i64 %ua.raw221 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp222) +dispatch.case.422: ; preds = %match.arm.49 + %ua.raw326 = extractvalue { i64, i64 } %loadN, 1 + %iNp327 = inttoptr i64 %ua.raw326 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp327) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.282: ; preds = %match.arm.49 - %ua.raw224 = extractvalue { i64, i64 } %loadN, 1 - %iNp225 = inttoptr i64 %ua.raw224 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr___Counter__Vtable(ptr %0, ptr %iNp225) +dispatch.case.423: ; preds = %match.arm.49 + %ua.raw329 = extractvalue { i64, i64 } %loadN, 1 + %iNp330 = inttoptr i64 %ua.raw329 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp330) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.283: ; preds = %match.arm.49 - %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 - %iNp228 = inttoptr i64 %ua.raw227 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp228) +dispatch.case.424: ; preds = %match.arm.49 + %ua.raw332 = extractvalue { i64, i64 } %loadN, 1 + %iNp333 = inttoptr i64 %ua.raw332 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SimpleCounter(ptr %0, ptr %iNp333) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.284: ; preds = %match.arm.49 - %ua.raw230 = extractvalue { i64, i64 } %loadN, 1 - %iNp231 = inttoptr i64 %ua.raw230 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Adder(ptr %0, ptr %iNp231) +dispatch.case.425: ; preds = %match.arm.49 + %ua.raw335 = extractvalue { i64, i64 } %loadN, 1 + %iNp336 = inttoptr i64 %ua.raw335 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Point(ptr %0, ptr %iNp336) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 -dispatch.case.285: ; preds = %match.arm.49 - %ua.raw233 = extractvalue { i64, i64 } %loadN, 1 - %iNp234 = inttoptr i64 %ua.raw233 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Accumulator(ptr %0, ptr %iNp234) +dispatch.case.426: ; preds = %match.arm.49 + %ua.raw338 = extractvalue { i64, i64 } %loadN, 1 + %iNp339 = inttoptr i64 %ua.raw338 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Accumulator(ptr %0, ptr %iNp339) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.258 + br label %dispatch.merge.399 + +dispatch.case.427: ; preds = %match.arm.49 + %ua.raw341 = extractvalue { i64, i64 } %loadN, 1 + %iNp342 = inttoptr i64 %ua.raw341 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp342) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.428: ; preds = %match.arm.49 + %ua.raw344 = extractvalue { i64, i64 } %loadN, 1 + %iNp345 = inttoptr i64 %ua.raw344 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp345) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.429: ; preds = %match.arm.49 + %ua.raw347 = extractvalue { i64, i64 } %loadN, 1 + %iNp348 = inttoptr i64 %ua.raw347 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp348) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.430: ; preds = %match.arm.49 + %ua.raw350 = extractvalue { i64, i64 } %loadN, 1 + %iNp351 = inttoptr i64 %ua.raw350 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp351) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.431: ; preds = %match.arm.49 + %ua.raw353 = extractvalue { i64, i64 } %loadN, 1 + %iNp354 = inttoptr i64 %ua.raw353 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp354) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.432: ; preds = %match.arm.49 + %ua.raw356 = extractvalue { i64, i64 } %loadN, 1 + %iNp357 = inttoptr i64 %ua.raw356 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp357) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.433: ; preds = %match.arm.49 + %ua.raw359 = extractvalue { i64, i64 } %loadN, 1 + %iNp360 = inttoptr i64 %ua.raw359 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Counter(ptr %0, ptr %iNp360) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.434: ; preds = %match.arm.49 + %ua.raw362 = extractvalue { i64, i64 } %loadN, 1 + %iNp363 = inttoptr i64 %ua.raw362 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_SimpleCounter(ptr %0, ptr %iNp363) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.435: ; preds = %match.arm.49 + %ua.raw365 = extractvalue { i64, i64 } %loadN, 1 + %iNp366 = inttoptr i64 %ua.raw365 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr___Counter__Vtable(ptr %0, ptr %iNp366) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.436: ; preds = %match.arm.49 + %ua.raw368 = extractvalue { i64, i64 } %loadN, 1 + %iNp369 = inttoptr i64 %ua.raw368 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp369) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.437: ; preds = %match.arm.49 + %ua.raw371 = extractvalue { i64, i64 } %loadN, 1 + %iNp372 = inttoptr i64 %ua.raw371 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Adder(ptr %0, ptr %iNp372) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.case.438: ; preds = %match.arm.49 + %ua.raw374 = extractvalue { i64, i64 } %loadN, 1 + %iNp375 = inttoptr i64 %ua.raw374 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Accumulator(ptr %0, ptr %iNp375) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.399 + +dispatch.merge.566: ; preds = %dispatch.case.571, %dispatch.case.570, %dispatch.case.569, %dispatch.case.568, %dispatch.default.567 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.567: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.678, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.566 + +dispatch.case.568: ; preds = %match.arm.50 + %ua.raw378 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr379 = inttoptr i64 %ua.raw378 to ptr + %ua.load380 = load { { i32 }, i1 }, ptr %ua.ptr379, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load380) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.566 + +dispatch.case.569: ; preds = %match.arm.50 + %ua.raw382 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr383 = inttoptr i64 %ua.raw382 to ptr + %ua.load384 = load { { ptr, i64 }, i1 }, ptr %ua.ptr383, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load384) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.566 + +dispatch.case.570: ; preds = %match.arm.50 + %ua.raw386 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr387 = inttoptr i64 %ua.raw386 to ptr + %ua.load388 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr387, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load388) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.566 + +dispatch.case.571: ; preds = %match.arm.50 + %ua.raw390 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr391 = inttoptr i64 %ua.raw390 to ptr + %ua.load392 = load { [64 x i8], i1 }, ptr %ua.ptr391, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load392) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.566 } ; Function Attrs: nounwind @@ -1987,7 +2726,7 @@ 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.196, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.679, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -2083,7 +2822,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.197, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.680, 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 @@ -2091,7 +2830,7 @@ if.then.12: ; preds = %if.then.9 %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.198, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.681, 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 @@ -2101,13 +2840,13 @@ if.then.12: ; preds = %if.then.9 %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.199, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.682, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.200, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.683, 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 @@ -2115,7 +2854,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.201, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.684, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -2129,7 +2868,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.202, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.685, 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 @@ -2137,7 +2876,7 @@ if.then.23: ; preds = %if.else.10 %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.203, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.686, 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 @@ -2148,7 +2887,7 @@ if.then.23: ; preds = %if.else.10 %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.204, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.687, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2205,7 +2944,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.688, 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 @@ -2213,7 +2952,7 @@ if.then.32: ; preds = %if.then.29 %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.206, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.689, 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 @@ -2224,7 +2963,7 @@ if.then.32: ; preds = %if.then.29 %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.207, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.690, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2244,7 +2983,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.691, 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 @@ -2252,7 +2991,7 @@ if.then.35: ; preds = %while.exit.2 %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.209, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 @@ -2263,7 +3002,7 @@ if.then.35: ; preds = %while.exit.2 %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.210, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.693, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2341,70 +3080,412 @@ declare i64 @write(i32, ptr, i64) declare void @log_emit(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.identity(ptr sret({ [16 x float] }), ptr) #0 +declare i32 @open(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare void @Mat4.zero(ptr sret({ [16 x float] }), ptr) #0 +declare i32 @close(i32) #0 ; Function Attrs: nounwind -declare void @Mat4.mul(ptr sret({ [16 x float] }), ptr, ptr, ptr) #0 +declare i64 @read(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare void @Mat4.translate(ptr sret({ [16 x float] }), ptr, float, float, float) #0 +declare i64 @lseek(i32, i64, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.scale(ptr sret({ [16 x float] }), ptr, float, float, float) #0 +declare i32 @unlink(ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_x(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @rmdir(ptr) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_y(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @mkdir(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.rotate_z(ptr sret({ [16 x float] }), ptr, float) #0 +declare i32 @access(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.ortho(ptr sret({ [16 x float] }), ptr, float, float, float, float, float, float) #0 +declare i32 @chmod(ptr, i32) #0 ; Function Attrs: nounwind -declare void @Mat4.perspective(ptr sret({ [16 x float] }), ptr, float, float, float, float) #0 +declare i32 @rename(ptr, ptr) #0 ; Function Attrs: nounwind -declare float @lerp(ptr, float, float, float) #0 +declare i1 @File.is_valid(ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.zero(ptr) #0 +declare i1 @File.close(ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.add(ptr, { float, float }, { float, float }) #0 +declare i64 @File.read(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.sub(ptr, { float, float }, { float, float }) #0 +declare i64 @File.write(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.scale(ptr, { float, float }, float) #0 +declare i64 @File.seek(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare float @Vec2.dot(ptr, { float, float }, { float, float }) #0 +declare i32 @mode_to_flags(ptr, i64) #0 ; Function Attrs: nounwind -declare float @Vec2.length(ptr, { float, float }) #0 +declare i64 @open_file(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.normalize(ptr, { float, float }) #0 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.lerp(ptr, { float, float }, { float, float }, float) #0 +declare i1 @write_file(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare float @Vec2.distance(ptr, { float, float }, { float, float }) #0 +declare i1 @append_file(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare { float, float } @Vec2.negate(ptr, { float, float }) #0 +declare i1 @exists(ptr, ptr) #0 ; Function Attrs: nounwind -declare i1 @Vec2.equals(ptr, { float, float }, { float, float }) #0 +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -2518,175 +3599,1309 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 declare i64 @build_options() #0 ; Function Attrs: nounwind -declare void @assert(ptr, i1) #0 +declare ptr @spaces.73(ptr, i32) #0 ; Function Attrs: nounwind -declare void @out.21(ptr) #0 +declare i32 @sx_trace_len.74() #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc.22(ptr, ptr, i64) #0 +declare i32 @sx_trace_truncated.75() #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc.23(ptr, ptr, ptr) #0 +declare i64 @sx_trace_frame_at.76(i32) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.24(ptr) #0 +declare ptr @to_string.77(ptr) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc.25(ptr, ptr, i64) #0 +declare void @print_current.78(ptr) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc.26(ptr, ptr, ptr) #0 +declare void @print_interpreter_frames.79(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.27(ptr, ptr, i64) #0 +declare ptr @popen.80(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.28(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare i32 @pclose.81(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.29(ptr, ptr) #0 +declare i64 @fread.82(ptr, i64, i64, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.30(ptr, ptr) #0 +declare i32 @feof.83(ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc.31(ptr, ptr, i64) #0 +declare ptr @getenv.84(ptr) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc.32(ptr, ptr, ptr) #0 +declare i64 @strlen.85(ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.init.33(ptr, ptr, i64) #0 +declare i32 @system.86(ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.34(ptr, ptr) #0 +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc.35(ptr, ptr, i64) #0 +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc.36(ptr, ptr, ptr) #0 +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.37(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare void @_exit.90(i32) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.38(ptr, ptr) #0 +declare void @exit.91(ptr, i8, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.39(ptr, ptr) #0 +declare void @assert.92(ptr, i1, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc.40(ptr, ptr, i64) #0 +declare ptr @_NSGetArgv() #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc.41(ptr, ptr, ptr) #0 +declare ptr @_NSGetArgc() #0 ; Function Attrs: nounwind -declare ptr @cstring.42(ptr, i64) #0 +declare void @exit_ok(ptr) #0 ; Function Attrs: nounwind -declare ptr @int_to_string.43(ptr, i64) #0 +declare void @exit_usage(ptr) #0 ; Function Attrs: nounwind -declare ptr @uint_to_string.44(ptr, i64) #0 +declare i64 @os_argc(ptr) #0 ; Function Attrs: nounwind -declare ptr @bool_to_string.45(ptr, i1) #0 +declare ptr @os_args(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @float_to_string.46(ptr, double) #0 +declare i1 @Parsed.is_set(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @hex_group.47(ptr, ptr, i64, i64) #0 +declare ptr @Parsed.value_of(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare [4 x i64] @decompose_u16x4.48(ptr, i64) #0 +declare i1 @is_long_flag(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @int_to_hex_string.49(ptr, i64) #0 +declare void @parse.93(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 ptr @concat.50(ptr, ptr, ptr) #0 +declare i32 @open.94(ptr, i32, ...) #0 ; Function Attrs: nounwind -declare ptr @substr.51(ptr, ptr, i64, i64) #0 +declare i32 @close.95(i32) #0 ; Function Attrs: nounwind -declare ptr @path_join.52(ptr, ptr) #0 +declare i64 @read.96(i32, ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @any_to_string.53(ptr, [2 x i64]) #0 +declare i64 @lseek.97(i32, i64, i32) #0 ; Function Attrs: nounwind -declare ptr @build_format.54(ptr, ptr) #0 +declare i32 @unlink.98(ptr) #0 ; Function Attrs: nounwind -declare ptr @CAllocator.alloc.55(ptr, ptr, i64) #0 +declare i32 @rmdir.99(ptr) #0 ; Function Attrs: nounwind -declare void @CAllocator.dealloc.56(ptr, ptr, ptr) #0 +declare i32 @mkdir.100(ptr, i32) #0 ; Function Attrs: nounwind -declare i64 @GPA.init.57(ptr) #0 +declare i32 @access.101(ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @GPA.alloc.58(ptr, ptr, i64) #0 +declare i32 @chmod.102(ptr, i32) #0 ; Function Attrs: nounwind -declare void @GPA.dealloc.59(ptr, ptr, ptr) #0 +declare i32 @rename.103(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.add_chunk.60(ptr, ptr, i64) #0 +declare i1 @File.is_valid.104(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.init.61(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 +declare i1 @File.close.105(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.reset.62(ptr, ptr) #0 +declare i64 @File.read.106(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @Arena.deinit.63(ptr, ptr) #0 +declare i64 @File.write.107(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @Arena.alloc.64(ptr, ptr, i64) #0 +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 ; Function Attrs: nounwind -declare void @Arena.dealloc.65(ptr, ptr, ptr) #0 +declare i32 @mode_to_flags.109(ptr, i64) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.init.66(ptr, ptr, i64) #0 +declare i64 @open_file.110(ptr, ptr, i64) #0 ; Function Attrs: nounwind -declare void @BufAlloc.reset.67(ptr, ptr) #0 +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @BufAlloc.alloc.68(ptr, ptr, i64) #0 +declare i1 @write_file.112(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @BufAlloc.dealloc.69(ptr, ptr, ptr) #0 +declare i1 @append_file.113(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.init.70(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 +declare i1 @exists.114(ptr, ptr) #0 ; Function Attrs: nounwind -declare i64 @TrackingAllocator.leak_count.71(ptr, ptr) #0 +declare i1 @delete_file.115(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.report.72(ptr, ptr) #0 +declare i1 @delete_dir.116(ptr, ptr) #0 ; Function Attrs: nounwind -declare ptr @TrackingAllocator.alloc.73(ptr, ptr, i64) #0 +declare i1 @create_dir.117(ptr, ptr) #0 ; Function Attrs: nounwind -declare void @TrackingAllocator.dealloc.74(ptr, ptr, ptr) #0 +declare i1 @set_mode.118(ptr, ptr, i32) #0 ; Function Attrs: nounwind -declare ptr @escape.75(ptr, ptr) #0 +declare i1 @move.119(ptr, ptr, ptr) #0 ; Function Attrs: nounwind -declare void @log_emit.76(ptr, ptr, ptr) #0 +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @Mat4.identity(ptr sret({ [16 x float] }), ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.zero(ptr sret({ [16 x float] }), ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.mul(ptr sret({ [16 x float] }), ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Mat4.translate(ptr sret({ [16 x float] }), ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.scale(ptr sret({ [16 x float] }), ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_x(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_y(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.rotate_z(ptr sret({ [16 x float] }), ptr, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.ortho(ptr sret({ [16 x float] }), ptr, float, float, float, float, float, float) #0 + +; Function Attrs: nounwind +declare void @Mat4.perspective(ptr sret({ [16 x float] }), ptr, float, float, float, float) #0 + +; Function Attrs: nounwind +declare float @lerp(ptr, float, float, float) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.zero(ptr) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.add(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.sub(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.scale(ptr, { float, float }, float) #0 + +; Function Attrs: nounwind +declare float @Vec2.dot(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare float @Vec2.length(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.normalize(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.lerp(ptr, { float, float }, { float, float }, float) #0 + +; Function Attrs: nounwind +declare float @Vec2.distance(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare { float, float } @Vec2.negate(ptr, { float, float }) #0 + +; Function Attrs: nounwind +declare i1 @Vec2.equals(ptr, { float, float }, { float, float }) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + +; Function Attrs: nounwind +declare void @assert.162(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @out.163(ptr) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.164(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.165(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.166(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.167(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.168(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.169(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.170(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.171(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.172(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.173(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.174(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.175(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.176(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.177(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.178(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.179(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.180(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.181(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.182(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.183(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @cstring.184(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @int_to_string.185(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @uint_to_string.186(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @bool_to_string.187(ptr, i1) #0 + +; Function Attrs: nounwind +declare ptr @float_to_string.188(ptr, double) #0 + +; Function Attrs: nounwind +declare void @hex_group.189(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare [4 x i64] @decompose_u16x4.190(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @int_to_hex_string.191(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @concat.192(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @substr.193(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @path_join.194(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @any_to_string.195(ptr, [2 x i64]) #0 + +; Function Attrs: nounwind +declare ptr @build_format.196(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.197(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.198(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.199(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.200(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.201(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.202(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.203(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.204(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.205(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.206(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.207(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.208(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.209(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.210(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.211(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.212(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.213(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.214(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.215(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.216(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @escape.217(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @log_emit.218(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.219(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.220(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.221(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.222(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.223(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.224(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.225(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.226(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.227(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.228(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.229(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.230(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.231(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.232(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.233(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.234(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.235(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.236(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.237(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.238(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.239(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.240(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.241(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.242(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.243(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.244(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.245(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.246(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.247(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.248(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @spaces.249(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.250() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.251() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.252(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.253(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.254(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.255(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.256(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.257(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.258(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.259(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.260(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.261(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.262(ptr) #0 + +; Function Attrs: nounwind +declare void @run.263(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.264(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.265(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.266(i32) #0 + +; Function Attrs: nounwind +declare void @exit.267(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.268(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @socket.269(i32, i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @setsockopt.270(i32, i32, i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @bind.271(i32, ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @listen.272(i32, i32) #0 + +; Function Attrs: nounwind +declare i32 @accept.273(i32, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @read.274(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.275(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons.276(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.277(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.278(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.279(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.280(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.281(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.282(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.283(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.284(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.285(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.286(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.287(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.288(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.289(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.290(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.291(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.292(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.293(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.294(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.295(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.296(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.297(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.298(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.299(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.300(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.301(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.302(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.303(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.304(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.305(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.306(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.307(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.308(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.309(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.310(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.311(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.312(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.313(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.314(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.315(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.316(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.317(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.318(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.319(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.320(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.321(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.322(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.323(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.324(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.325(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.326(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Array.add.327(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Array.deinit.328(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Object.put.329(ptr, ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Object.deinit.330(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Sink.put_byte.331(ptr, ptr, i8) #0 + +; Function Attrs: nounwind +declare i32 @Sink.put.332(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Sink.flush.333(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i8 @hex_digit.334(ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @write_u_escape.335(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_string.336(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_int.337(ptr, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_value.338(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_array.339(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_object.340(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @write_to_buffer.341(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @write_to_file.342(ptr, ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @hex_value.343(ptr, i8) #0 + +; Function Attrs: nounwind +declare i64 @encode_utf8.344(ptr, i64, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.skip_ws.345(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @Parser.expect_lit.346(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.read_hex4.347(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.decode_into.348(ptr, ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_string.349(ptr sret({ { ptr, i64 }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare [2 x i64] @Parser.parse_number.350(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_array.351(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_object.352(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Parser.parse_value.353(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @parse.354(ptr sret({ { i64, [24 x i8] }, i32 }), ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.355(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.356(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.357(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.358(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.359(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.360(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.361(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.362(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.363(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.364(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.365(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.366(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.367(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.368(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.369(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.370(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.371(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.372(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.373(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.374(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.375(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.376(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.377(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.378(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.379(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.380(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.381(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.382(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.383(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.384(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.385(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.386(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.387(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.388(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.389(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.390(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.391() #0 + +; Function Attrs: nounwind +declare ptr @spaces.392(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.393() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.394() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.395(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.396(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.397(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.398(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.399(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.400(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.401(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.402(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.403(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.404(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.405(ptr) #0 + +; Function Attrs: nounwind +declare void @run.406(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.407(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.408(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.409(i32) #0 + +; Function Attrs: nounwind +declare void @exit.410(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.411(ptr, i1, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @_NSGetArgv.412() #0 + +; Function Attrs: nounwind +declare ptr @_NSGetArgc.413() #0 + +; Function Attrs: nounwind +declare void @exit_ok.414(ptr) #0 + +; Function Attrs: nounwind +declare void @exit_usage.415(ptr) #0 + +; Function Attrs: nounwind +declare i64 @os_argc.416(ptr) #0 + +; Function Attrs: nounwind +declare ptr @os_args.417(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @Parsed.is_set.418(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Parsed.value_of.419(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @is_long_flag.420(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @parse.421(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 i32 @open.422(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.423(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.424(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.425(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.426(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.427(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.428(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.429(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.430(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.431(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.432(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.433(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.434(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.435(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.436(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.437(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.438(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.439(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.440(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.441(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.442(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.443(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.444(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.445(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.446(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.447(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.448(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.449(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.450(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.451(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @rotr.452(ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @big_sigma0.453(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @big_sigma1.454(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @small_sigma0.455(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @small_sigma1.456(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Sha256.process_block.457(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Sha256.update.458(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare [64 x i8] @Sha256.final.459(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i8 @nibble_hex.460(ptr, i64) #0 + +; Function Attrs: nounwind +declare void @init.461(ptr sret({ [8 x i64], [64 x i8], i64, i64 }), ptr) #0 + +; Function Attrs: nounwind +declare [64 x i8] @sha256_hex.462(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @sha256_file.463(ptr sret({ [64 x i8], i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.464(ptr, i1) #0 ; Function Attrs: nounwind declare ptr @cwd_greet(ptr) #0 @@ -2701,7 +4916,7 @@ declare i32 @add(ptr, i32, i32) #0 declare i32 @mul(ptr, i32, i32) #0 ; Function Attrs: nounwind -declare i32 @add.77(ptr, i32, i32) #0 +declare i32 @add.465(ptr, i32, i32) #0 ; Function Attrs: nounwind define internal void @SimpleCounter.inc(ptr %0, ptr %1) #0 { @@ -2863,14 +5078,14 @@ entry: define internal void @print__ct_sb446f8dda4e4d2e__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.211, i64 26 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.694, i64 26 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.212, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.695, i64 0 }, ptr %allocaN, align 8 %load = 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 26) @@ -2886,7 +5101,7 @@ entry: ; 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.213, i64 26 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.696, i64 26 }) ret { ptr, i64 } %call } @@ -2934,7 +5149,7 @@ entry: define internal void @print__ct_sbdf493528d053170__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.214, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.697, i64 8 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2950,7 +5165,7 @@ entry: %gepN = getelementptr inbounds { 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.215, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.698, 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) @@ -2978,7 +5193,7 @@ entry: ; 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.216, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.699, i64 8 }) ret { ptr, i64 } %call } @@ -3000,7 +5215,7 @@ entry: define internal void @print__ct_s35bfc3f99c7ed027__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.217, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.700, i64 8 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -3016,7 +5231,7 @@ entry: %gepN = getelementptr inbounds { 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.218, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.701, 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) @@ -3044,7 +5259,7 @@ entry: ; 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.219, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.702, i64 8 }) ret { ptr, i64 } %call } @@ -3078,7 +5293,7 @@ entry: define internal void @print__ct_s9619ba29713d8564__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.220, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.703, i64 8 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -3094,7 +5309,7 @@ entry: %gepN = getelementptr inbounds { 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.221, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.704, 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) @@ -3122,7 +5337,7 @@ entry: ; 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.222, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.705, i64 8 }) ret { ptr, i64 } %call } @@ -3150,7 +5365,7 @@ entry: define internal void @print__ct_s299c24782c1d67ee__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.223, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.706, i64 8 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -3166,7 +5381,7 @@ entry: %gepN = getelementptr inbounds { 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.224, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.707, 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) @@ -3194,7 +5409,7 @@ entry: ; 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.225, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.708, i64 8 }) ret { ptr, i64 } %call } @@ -3214,7 +5429,7 @@ entry: define internal void @print__ct_sf40ed4735476a9ee__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.226, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.709, i64 8 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -3230,7 +5445,7 @@ entry: %gepN = getelementptr inbounds { 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.227, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.710, 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) @@ -3258,7 +5473,7 @@ entry: ; 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.228, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.711, i64 8 }) ret { ptr, i64 } %call } @@ -3269,35 +5484,35 @@ entry: %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.229, i64 15 }, { ptr, i64 } { ptr @str.230, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.712, i64 15 }, { ptr, i64 } { ptr @str.713, 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.116 + br label %while.hdr.131 -while.hdr.116: ; preds = %fv.merge, %entry +while.hdr.131: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.117, label %while.exit.118 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.117: ; preds = %while.hdr.116 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.119, label %if.merge.120 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.118: ; preds = %while.hdr.116 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.231, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.714, i64 1 }) ret { ptr, i64 } %callN -if.then.119: ; preds = %while.body.117 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.232, i64 2 }) + %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 - br label %if.merge.120 + br label %if.merge.135 -if.merge.120: ; preds = %if.then.119, %while.body.117 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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 @@ -3305,7 +5520,7 @@ if.merge.120: ; preds = %if.then.119, %while %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.236, i64 2 }) + %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 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %alloca, align 8 @@ -3325,31 +5540,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.116 + br label %while.hdr.131 -fv.default: ; preds = %if.merge.120 +fv.default: ; preds = %if.merge.135 br label %fv.merge -fv.case: ; preds = %if.merge.120 +fv.case: ; preds = %if.merge.135 %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.120 +fv.case17: ; preds = %if.merge.135 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.120 +fv.case20: ; preds = %if.merge.135 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.120 +fv.case24: ; preds = %if.merge.135 %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 @@ -3362,43 +5577,43 @@ 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.237, i64 10 }, { ptr, i64 } { ptr @str.238, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.720, i64 10 }, { ptr, i64 } { ptr @str.721, 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.121 + br label %while.hdr.136 -while.hdr.121: ; preds = %if.merge.125, %entry +while.hdr.136: ; preds = %if.merge.140, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.122, label %while.exit.123 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.122: ; preds = %while.hdr.121 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.124, label %if.merge.125 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.123: ; preds = %while.hdr.121 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.239, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.722, i64 1 }) ret { ptr, i64 } %callN -if.then.124: ; preds = %while.body.122 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.240, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.723, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.125 + br label %if.merge.140 -if.merge.125: ; preds = %if.then.124, %while.body.122 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.241, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.724, 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.242, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.725, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -3409,7 +5624,7 @@ if.merge.125: ; preds = %if.then.124, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.121 + br label %while.hdr.136 } ; Function Attrs: nounwind @@ -3417,43 +5632,43 @@ 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.243, i64 3 }, { ptr, i64 } { ptr @str.244, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.726, i64 3 }, { ptr, i64 } { ptr @str.727, 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.126 + br label %while.hdr.141 -while.hdr.126: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.127, label %while.exit.128 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.127: ; preds = %while.hdr.126 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.129, label %if.merge.130 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.128: ; preds = %while.hdr.126 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.245, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.728, i64 1 }) ret { ptr, i64 } %callN -if.then.129: ; preds = %while.body.127 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.246, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.729, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.130 + br label %if.merge.145 -if.merge.130: ; preds = %if.then.129, %while.body.127 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.248, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 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.249, i64 2 }) + %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 }, ptr %alloca, align 8 @@ -3470,12 +5685,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.126 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.130 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.130 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -3486,43 +5701,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.250, i64 10 }, { ptr, i64 } { ptr @str.251, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.733, i64 10 }, { 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.131 + br label %while.hdr.146 -while.hdr.131: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.132, label %while.exit.133 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.132: ; preds = %while.hdr.131 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.134, label %if.merge.135 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.133: ; preds = %while.hdr.131 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.252, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.735, i64 1 }) ret { ptr, i64 } %callN -if.then.134: ; preds = %while.body.132 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.253, i64 2 }) + %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.135 + br label %if.merge.150 -if.merge.135: ; preds = %if.then.134, %while.body.132 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.256, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.739, 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.257, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.740, 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 @@ -3540,18 +5755,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.131 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.135 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.135 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.135 +fv.case17: ; preds = %if.merge.150 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -3562,43 +5777,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.258, i64 9 }, { ptr, i64 } { ptr @str.259, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.741, i64 9 }, { ptr, i64 } { ptr @str.742, 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.136 + br label %while.hdr.151 -while.hdr.136: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.137, label %while.exit.138 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.137: ; preds = %while.hdr.136 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.139, label %if.merge.140 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.138: ; preds = %while.hdr.136 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.260, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.743, i64 1 }) ret { ptr, i64 } %callN -if.then.139: ; preds = %while.body.137 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.261, i64 2 }) + %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 - br label %if.merge.140 + br label %if.merge.155 -if.merge.140: ; preds = %if.then.139, %while.body.137 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.265, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.748, 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.266, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.749, 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 @@ -3617,24 +5832,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.136 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.140 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.140 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.140 +fv.case17: ; preds = %if.merge.155 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.140 +fv.case21: ; preds = %if.merge.155 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -3647,43 +5862,43 @@ 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.267, i64 5 }, { ptr, i64 } { ptr @str.268, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.750, i64 5 }, { ptr, i64 } { ptr @str.751, 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.141 + br label %while.hdr.156 -while.hdr.141: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.142, label %while.exit.143 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.142: ; preds = %while.hdr.141 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.144, label %if.merge.145 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.143: ; preds = %while.hdr.141 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.269, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.752, i64 1 }) ret { ptr, i64 } %callN -if.then.144: ; preds = %while.body.142 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.270, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.753, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.145 + br label %if.merge.160 -if.merge.145: ; preds = %if.then.144, %while.body.142 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.274, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.757, 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.275, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.758, 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 @@ -3702,23 +5917,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.141 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.145 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.145 +fv.case: ; preds = %if.merge.160 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.145 +fv.case17: ; preds = %if.merge.160 %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.145 +fv.case20: ; preds = %if.merge.160 %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 @@ -3731,43 +5946,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.276, i64 8 }, { ptr, i64 } { ptr @str.277, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.759, i64 8 }, { ptr, i64 } { ptr @str.760, 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.146 + br label %while.hdr.161 -while.hdr.146: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.147, label %while.exit.148 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.147: ; preds = %while.hdr.146 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.149, label %if.merge.150 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.148: ; preds = %while.hdr.146 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.278, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.761, i64 1 }) ret { ptr, i64 } %callN -if.then.149: ; preds = %while.body.147 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.279, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.762, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.150 + br label %if.merge.165 -if.merge.150: ; preds = %if.then.149, %while.body.147 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.283, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.766, 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.284, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.767, 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 @@ -3786,23 +6001,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.146 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.150 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.150 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.150 +fv.case17: ; preds = %if.merge.165 %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.150 +fv.case20: ; preds = %if.merge.165 %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 @@ -3814,43 +6029,43 @@ 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.285, i64 17 }, { ptr, i64 } { ptr @str.286, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.768, i64 17 }, { ptr, i64 } { ptr @str.769, 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.151 + br label %while.hdr.166 -while.hdr.151: ; preds = %fv.merge, %entry +while.hdr.166: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.152, label %while.exit.153 + br i1 %icmp, label %while.body.167, label %while.exit.168 -while.body.152: ; preds = %while.hdr.151 +while.body.167: ; preds = %while.hdr.166 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.154, label %if.merge.155 + br i1 %icmpN, label %if.then.169, label %if.merge.170 -while.exit.153: ; preds = %while.hdr.151 +while.exit.168: ; preds = %while.hdr.166 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.287, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.770, i64 1 }) ret { ptr, i64 } %callN -if.then.154: ; preds = %while.body.152 +if.then.169: ; preds = %while.body.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.288, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.771, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.155 + br label %if.merge.170 -if.merge.155: ; preds = %if.then.154, %while.body.152 +if.merge.170: ; preds = %if.then.169, %while.body.167 %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.293, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 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.294, i64 2 }) + %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, ptr, ptr }, i64, i64, i64 }, ptr %alloca, align 8 @@ -3870,29 +6085,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.151 + br label %while.hdr.166 -fv.default: ; preds = %if.merge.155 +fv.default: ; preds = %if.merge.170 br label %fv.merge -fv.case: ; preds = %if.merge.155 +fv.case: ; preds = %if.merge.170 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.155 +fv.case17: ; preds = %if.merge.170 %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.155 +fv.case20: ; preds = %if.merge.170 %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.155 +fv.case23: ; preds = %if.merge.170 %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 @@ -3904,43 +6119,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.295, i64 7 }, { ptr, i64 } { ptr @str.296, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.778, i64 7 }, { 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.156 + br label %while.hdr.171 -while.hdr.156: ; preds = %fv.merge, %entry +while.hdr.171: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.157, label %while.exit.158 + br i1 %icmp, label %while.body.172, label %while.exit.173 -while.body.157: ; preds = %while.hdr.156 +while.body.172: ; preds = %while.hdr.171 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.159, label %if.merge.160 + br i1 %icmpN, label %if.then.174, label %if.merge.175 -while.exit.158: ; preds = %while.hdr.156 +while.exit.173: ; preds = %while.hdr.171 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.297, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.780, i64 1 }) ret { ptr, i64 } %callN -if.then.159: ; preds = %while.body.157 +if.then.174: ; preds = %while.body.172 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.298, i64 2 }) + %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.160 + br label %if.merge.175 -if.merge.160: ; preds = %if.then.159, %while.body.157 +if.merge.175: ; preds = %if.then.174, %while.body.172 %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.301, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.784, 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.302, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.785, 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 %alloca, align 8 @@ -3958,19 +6173,19 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.156 + br label %while.hdr.171 -fv.default: ; preds = %if.merge.160 +fv.default: ; preds = %if.merge.175 br label %fv.merge -fv.case: ; preds = %if.merge.160 +fv.case: ; preds = %if.merge.175 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.160 +fv.case17: ; preds = %if.merge.175 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 @@ -3978,51 +6193,50 @@ fv.case17: ; preds = %if.merge.160 } ; Function Attrs: nounwind -define internal { ptr, i64 } @struct_to_string__Mat4(ptr %0, { [16 x float] } %1) #0 { +define internal { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %1) #0 { entry: - %alloca = alloca { [16 x float] }, align 8 - %ba.tmp = alloca [16 x float], align 4 - store { [16 x float] } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.303, i64 4 }, { ptr, i64 } { ptr @str.304, i64 1 }) + %alloca = alloca { i32 }, align 8 + store { i32 } %1, ptr %alloca, align 4 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.786, i64 4 }, { ptr, i64 } { ptr @str.787, 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.161 + br label %while.hdr.176 -while.hdr.161: ; preds = %fv.merge, %entry +while.hdr.176: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.162, label %while.exit.163 + br i1 %icmp, label %while.body.177, label %while.exit.178 -while.body.162: ; preds = %while.hdr.161 +while.body.177: ; preds = %while.hdr.176 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.164, label %if.merge.165 + br i1 %icmpN, label %if.then.179, label %if.merge.180 -while.exit.163: ; preds = %while.hdr.161 +while.exit.178: ; preds = %while.hdr.176 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.305, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.788, i64 1 }) ret { ptr, i64 } %callN -if.then.164: ; preds = %while.body.162 +if.then.179: ; preds = %while.body.177 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.306, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.789, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.165 + br label %if.merge.180 -if.merge.165: ; preds = %if.then.164, %while.body.162 +if.merge.180: ; preds = %if.then.179, %while.body.177 %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.308, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.791, 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.309, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.792, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %loadN = load { [16 x float] }, ptr %alloca, align 4 + %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 @@ -4036,236 +6250,27 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.161 - -fv.default: ; preds = %if.merge.165 - br label %fv.merge - -fv.case: ; preds = %if.merge.165 - %fv.field = extractvalue { [16 x float] } %loadN, 0 - store [16 x float] %fv.field, ptr %ba.tmp, align 4 - %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1 - br label %fv.merge -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %1) #0 { -entry: - %alloca = alloca { float, float }, align 8 - store { float, float } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.310, i64 4 }, { ptr, i64 } { ptr @str.311, 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.166 - -while.hdr.166: ; preds = %fv.merge, %entry - %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.167, label %while.exit.168 - -while.body.167: ; preds = %while.hdr.166 - %loadN = load i64, ptr %allocaN, align 8 - %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.169, label %if.merge.170 - -while.exit.168: ; preds = %while.hdr.166 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, i64 1 }) - ret { ptr, i64 } %callN - -if.then.169: ; preds = %while.body.167 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.313, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.170 - -if.merge.170: ; preds = %if.then.169, %while.body.167 - %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.316, 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.317, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %loadN = load { float, float }, ptr %alloca, align 4 - %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.166 - -fv.default: ; preds = %if.merge.170 - br label %fv.merge - -fv.case: ; preds = %if.merge.170 - %fv.field = extractvalue { float, float } %loadN, 0 - %fNi32 = bitcast float %fv.field to i32 - %zN = zext i32 %fNi32 to i64 - %fv.val = insertvalue { i64, i64 } { i64 10, i64 undef }, i64 %zN, 1 - br label %fv.merge - -fv.case17: ; preds = %if.merge.170 - %fv.field18 = extractvalue { float, float } %loadN, 1 - %fNi3219 = bitcast float %fv.field18 to i32 - %zN = zext i32 %fNi3219 to i64 - %fv.val21 = insertvalue { i64, i64 } { i64 10, i64 undef }, i64 %zN, 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.318, i64 12 }, { ptr, i64 } { ptr @str.319, 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.171 - -while.hdr.171: ; preds = %if.merge.175, %entry - %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.172, label %while.exit.173 - -while.body.172: ; preds = %while.hdr.171 - %loadN = load i64, ptr %allocaN, align 8 - %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.174, label %if.merge.175 - -while.exit.173: ; preds = %while.hdr.171 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, i64 1 }) - ret { ptr, i64 } %callN - -if.then.174: ; preds = %while.body.172 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.175 - -if.merge.175: ; preds = %if.then.174, %while.body.172 - %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.322, 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.323, 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.171 -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %1) #0 { -entry: - %alloca = alloca { i32, i32 }, align 8 - store { i32, i32 } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.324, i64 5 }, { ptr, i64 } { ptr @str.325, 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.176 - -while.hdr.176: ; preds = %fv.merge, %entry - %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.177, label %while.exit.178 - -while.body.177: ; preds = %while.hdr.176 - %loadN = load i64, ptr %allocaN, align 8 - %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.179, label %if.merge.180 - -while.exit.178: ; preds = %while.hdr.176 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, i64 1 }) - ret { ptr, i64 } %callN - -if.then.179: ; preds = %while.body.177 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.180 - -if.merge.180: ; preds = %if.then.179, %while.body.177 - %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.330, 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.331, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %loadN = load { i32, i32 }, ptr %alloca, align 4 - %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.val20, %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.176 fv.default: ; preds = %if.merge.180 br label %fv.merge fv.case: ; preds = %if.merge.180 - %fv.field = extractvalue { i32, i32 } %loadN, 0 + %fv.field = extractvalue { i32 } %loadN, 0 %sN = sext i32 %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge - -fv.case17: ; preds = %if.merge.180 - %fv.field18 = extractvalue { i32, i32 } %loadN, 1 - %sN = sext i32 %fv.field18 to i64 - %fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 - br label %fv.merge } ; Function Attrs: nounwind -define internal { ptr, i64 } @struct_to_string__Counter(ptr %0, { ptr, ptr } %1) #0 { +define internal { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %1) #0 { entry: - %alloca = alloca { ptr, ptr }, align 8 - store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.332, i64 7 }, { ptr, i64 } { ptr @str.333, i64 1 }) + %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.793, i64 10 }, { ptr, i64 } { ptr @str.794, i64 1 }) %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -4274,7 +6279,7 @@ entry: while.hdr.181: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 2 + %icmp = icmp slt i64 %load, 5 br i1 %icmp, label %while.body.182, label %while.exit.183 while.body.182: ; preds = %while.hdr.181 @@ -4284,35 +6289,38 @@ while.body.182: ; preds = %while.hdr.181 while.exit.183: ; preds = %while.hdr.181 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.334, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.795, i64 1 }) ret { ptr, i64 } %callN if.then.184: ; preds = %while.body.182 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.335, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.796, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.185 if.merge.185: ; preds = %if.then.184, %while.body.182 %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.338, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.802, 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.339, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.803, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %loadN = load { ptr, ptr }, ptr %alloca, 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.case17, %fv.case - %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val20, %fv.case17 ], [ undef, %fv.default ] +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 @@ -4325,24 +6333,46 @@ fv.default: ; preds = %if.merge.185 br label %fv.merge fv.case: ; preds = %if.merge.185 - %fv.field = extractvalue { ptr, ptr } %loadN, 0 - %pNi = ptrtoint ptr %fv.field to i64 - %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 + %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.185 - %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 - %pNi19 = ptrtoint ptr %fv.field18 to i64 - %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.185 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.185 + %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.185 + %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____Counter__Vtable(ptr %0, { ptr, ptr } %1) #0 { +define internal { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %1) #0 { entry: - %alloca = alloca { ptr, ptr }, align 8 - store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.340, i64 17 }, { ptr, i64 } { ptr @str.341, i64 1 }) + %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.804, i64 13 }, { ptr, i64 } { ptr @str.805, i64 1 }) %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -4361,27 +6391,27 @@ while.body.187: ; preds = %while.hdr.186 while.exit.188: ; preds = %while.hdr.186 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.342, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.806, i64 1 }) ret { ptr, i64 } %callN if.then.189: ; preds = %while.body.187 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.807, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.190 if.merge.190: ; preds = %if.then.189, %while.body.187 %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.346, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.810, 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.347, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.811, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %loadN = load { ptr, ptr }, ptr %alloca, 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 @@ -4389,7 +6419,7 @@ if.merge.190: ; preds = %if.then.189, %while ] fv.merge: ; preds = %fv.default, %fv.case17, %fv.case - %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val20, %fv.case17 ], [ undef, %fv.default ] + %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 @@ -4402,24 +6432,25 @@ fv.default: ; preds = %if.merge.190 br label %fv.merge fv.case: ; preds = %if.merge.190 - %fv.field = extractvalue { ptr, ptr } %loadN, 0 - %pNi = ptrtoint ptr %fv.field to i64 - %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge fv.case17: ; preds = %if.merge.190 - %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 - %pNi19 = ptrtoint ptr %fv.field18 to i64 - %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 + %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__Summable(ptr %0, { ptr, ptr } %1) #0 { +define internal { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %1) #0 { entry: - %alloca = alloca { ptr, ptr }, align 8 - store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.348, i64 8 }, { ptr, i64 } { ptr @str.349, i64 1 }) + %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.812, i64 8 }, { ptr, i64 } { ptr @str.813, i64 1 }) %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -4428,7 +6459,7 @@ entry: while.hdr.191: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 2 + %icmp = icmp slt i64 %load, 5 br i1 %icmp, label %while.body.192, label %while.exit.193 while.body.192: ; preds = %while.hdr.191 @@ -4438,24 +6469,1368 @@ while.body.192: ; preds = %while.hdr.191 while.exit.193: ; preds = %while.hdr.191 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.350, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.814, i64 1 }) ret { ptr, i64 } %callN if.then.194: ; preds = %while.body.192 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.351, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.815, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.195 if.merge.195: ; preds = %if.then.194, %while.body.192 %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.354, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.821, 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.355, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.822, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %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.195 + %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.195 + %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.195 + %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.195 + %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.823, i64 5 }, { ptr, i64 } { ptr @str.824, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.825, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.826, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.830, 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.831, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.200 + %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.200 + %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.832, i64 6 }, { ptr, i64 } { ptr @str.833, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.834, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.835, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.839, 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.840, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.205 + %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.205 + %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.841, i64 6 }, { ptr, i64 } { ptr @str.842, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.843, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.844, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.847, 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.848, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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.210 + %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 54, 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.849, i64 4 }, { ptr, i64 } { ptr @str.850, 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.211 + +while.hdr.211: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.851, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.852, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.856, 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.857, 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.211 + +fv.default: ; preds = %if.merge.215 + br label %fv.merge + +fv.case: ; preds = %if.merge.215 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.215 + %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.215 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.858, i64 6 }, { ptr, i64 } { ptr @str.859, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.860, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.861, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.865, 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.866, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %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.220 + %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.220 + %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 26, i64 undef }, i64 %ba.p2i23, 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.867, i64 12 }, { ptr, i64 } { ptr @str.868, 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.221 + +while.hdr.221: ; preds = %if.merge.225, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.869, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.870, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.871, 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.872, 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.221 +} + +; 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.873, i64 8 }, { ptr, i64 } { ptr @str.874, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.875, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.876, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.880, 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.881, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.230 + %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.882, i64 7 }, { ptr, i64 } { ptr @str.883, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.884, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.885, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.889, 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.890, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.235 + %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 77, 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.891, i64 9 }, { ptr, i64 } { ptr @str.892, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.893, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.894, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.897, 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.898, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.899, i64 4 }, { ptr, i64 } { ptr @str.900, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.901, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.902, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.905, 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.906, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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.245 + %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.907, i64 6 }, { ptr, i64 } { ptr @str.908, 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.246 + +while.hdr.246: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.247, label %while.exit.248 + +while.body.247: ; preds = %while.hdr.246 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.249, label %if.merge.250 + +while.exit.248: ; preds = %while.hdr.246 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.909, i64 1 }) + ret { ptr, i64 } %callN + +if.then.249: ; preds = %while.body.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.910, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.250 + +if.merge.250: ; preds = %if.then.249, %while.body.247 + %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.918, 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.919, 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.246 + +fv.default: ; preds = %if.merge.250 + br label %fv.merge + +fv.case: ; preds = %if.merge.250 + %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.250 + %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.250 + %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.250 + %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.250 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.250 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.250 + %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 81, 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.920, i64 6 }, { ptr, i64 } { ptr @str.921, 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.251 + +while.hdr.251: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.252, label %while.exit.253 + +while.body.252: ; preds = %while.hdr.251 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.254, label %if.merge.255 + +while.exit.253: ; preds = %while.hdr.251 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.922, i64 1 }) + ret { ptr, i64 } %callN + +if.then.254: ; preds = %while.body.252 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.923, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.255 + +if.merge.255: ; preds = %if.then.254, %while.body.252 + %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.928, 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.929, 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.251 + +fv.default: ; preds = %if.merge.255 + br label %fv.merge + +fv.case: ; preds = %if.merge.255 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.255 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.255 + %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.255 + %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__Mat4(ptr %0, { [16 x float] } %1) #0 { +entry: + %alloca = alloca { [16 x float] }, align 8 + %ba.tmp = alloca [16 x float], align 4 + store { [16 x float] } %1, ptr %alloca, align 4 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.930, i64 4 }, { ptr, i64 } { ptr @str.931, 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.256 + +while.hdr.256: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.257, label %while.exit.258 + +while.body.257: ; preds = %while.hdr.256 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.259, label %if.merge.260 + +while.exit.258: ; preds = %while.hdr.256 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.932, i64 1 }) + ret { ptr, i64 } %callN + +if.then.259: ; preds = %while.body.257 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.933, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.260 + +if.merge.260: ; preds = %if.then.259, %while.body.257 + %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.935, 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.936, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { [16 x float] }, 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.256 + +fv.default: ; preds = %if.merge.260 + br label %fv.merge + +fv.case: ; preds = %if.merge.260 + %fv.field = extractvalue { [16 x float] } %loadN, 0 + store [16 x float] %fv.field, ptr %ba.tmp, align 4 + %ba.p2i = ptrtoint ptr %ba.tmp to i64 + %fv.val = insertvalue { i64, i64 } { i64 93, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Vec2(ptr %0, { float, float } %1) #0 { +entry: + %alloca = alloca { float, float }, align 8 + store { float, float } %1, ptr %alloca, align 4 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.937, i64 4 }, { ptr, i64 } { ptr @str.938, 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.261 + +while.hdr.261: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.262, label %while.exit.263 + +while.body.262: ; preds = %while.hdr.261 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.264, label %if.merge.265 + +while.exit.263: ; preds = %while.hdr.261 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.939, i64 1 }) + ret { ptr, i64 } %callN + +if.then.264: ; preds = %while.body.262 + %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 + br label %if.merge.265 + +if.merge.265: ; preds = %if.then.264, %while.body.262 + %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.943, 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.944, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { float, float }, ptr %alloca, align 4 + %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.261 + +fv.default: ; preds = %if.merge.265 + br label %fv.merge + +fv.case: ; preds = %if.merge.265 + %fv.field = extractvalue { float, float } %loadN, 0 + %fNi32 = bitcast float %fv.field to i32 + %zN = zext i32 %fNi32 to i64 + %fv.val = insertvalue { i64, i64 } { i64 10, i64 undef }, i64 %zN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.265 + %fv.field18 = extractvalue { float, float } %loadN, 1 + %fNi3219 = bitcast float %fv.field18 to i32 + %zN = zext i32 %fNi3219 to i64 + %fv.val21 = insertvalue { i64, i64 } { i64 10, i64 undef }, i64 %zN, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Point(ptr %0, { i32, i32 } %1) #0 { +entry: + %alloca = alloca { i32, i32 }, align 8 + store { i32, i32 } %1, ptr %alloca, align 4 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.945, i64 5 }, { ptr, i64 } { ptr @str.946, 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.266 + +while.hdr.266: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.267, label %while.exit.268 + +while.body.267: ; preds = %while.hdr.266 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.269, label %if.merge.270 + +while.exit.268: ; preds = %while.hdr.266 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.947, i64 1 }) + ret { ptr, i64 } %callN + +if.then.269: ; preds = %while.body.267 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.948, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.270 + +if.merge.270: ; preds = %if.then.269, %while.body.267 + %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.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 { i32, i32 }, ptr %alloca, align 4 + %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.val20, %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.266 + +fv.default: ; preds = %if.merge.270 + br label %fv.merge + +fv.case: ; preds = %if.merge.270 + %fv.field = extractvalue { i32, i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.270 + %fv.field18 = extractvalue { i32, i32 } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val20 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Counter(ptr %0, { ptr, ptr } %1) #0 { +entry: + %alloca = alloca { ptr, ptr }, align 8 + store { ptr, ptr } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.953, i64 7 }, { 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.271 + +while.hdr.271: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.272, label %while.exit.273 + +while.body.272: ; preds = %while.hdr.271 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.274, label %if.merge.275 + +while.exit.273: ; preds = %while.hdr.271 + %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.274: ; preds = %while.body.272 + %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.275 + +if.merge.275: ; preds = %if.then.274, %while.body.272 + %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 { ptr, ptr }, ptr %alloca, align 8 @@ -4473,18 +7848,172 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.191 + br label %while.hdr.271 -fv.default: ; preds = %if.merge.195 +fv.default: ; preds = %if.merge.275 br label %fv.merge -fv.case: ; preds = %if.merge.195 +fv.case: ; preds = %if.merge.275 %fv.field = extractvalue { ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.195 +fv.case17: ; preds = %if.merge.275 + %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 + %pNi19 = ptrtoint ptr %fv.field18 to i64 + %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string____Counter__Vtable(ptr %0, { ptr, ptr } %1) #0 { +entry: + %alloca = alloca { ptr, ptr }, align 8 + store { ptr, ptr } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.961, i64 17 }, { 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.276 + +while.hdr.276: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.277, label %while.exit.278 + +while.body.277: ; preds = %while.hdr.276 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.279, label %if.merge.280 + +while.exit.278: ; preds = %while.hdr.276 + %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.279: ; preds = %while.body.277 + %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.280 + +if.merge.280: ; preds = %if.then.279, %while.body.277 + %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.967, 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.968, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { 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 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val20, %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.276 + +fv.default: ; preds = %if.merge.280 + br label %fv.merge + +fv.case: ; preds = %if.merge.280 + %fv.field = extractvalue { ptr, ptr } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.280 + %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 + %pNi19 = ptrtoint ptr %fv.field18 to i64 + %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 + br label %fv.merge +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__Summable(ptr %0, { ptr, ptr } %1) #0 { +entry: + %alloca = alloca { ptr, ptr }, align 8 + store { ptr, ptr } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.969, i64 8 }, { ptr, i64 } { ptr @str.970, 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.281 + +while.hdr.281: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.282, label %while.exit.283 + +while.body.282: ; preds = %while.hdr.281 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.284, label %if.merge.285 + +while.exit.283: ; preds = %while.hdr.281 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.971, i64 1 }) + ret { ptr, i64 } %callN + +if.then.284: ; preds = %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.972, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.285 + +if.merge.285: ; preds = %if.then.284, %while.body.282 + %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.975, 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.976, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load { 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 + ] + +fv.merge: ; preds = %fv.default, %fv.case17, %fv.case + %fv.phi = phi { i64, i64 } [ %fv.val, %fv.case ], [ %fv.val20, %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.281 + +fv.default: ; preds = %if.merge.285 + br label %fv.merge + +fv.case: ; preds = %if.merge.285 + %fv.field = extractvalue { ptr, ptr } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.285 %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 @@ -4496,43 +8025,43 @@ define internal { ptr, i64 } @struct_to_string____Summable__Vtable(ptr %0, { ptr entry: %alloca = alloca { ptr }, align 8 store { ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.356, i64 18 }, { ptr, i64 } { ptr @str.357, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.977, i64 18 }, { ptr, i64 } { ptr @str.978, 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.196 + br label %while.hdr.286 -while.hdr.196: ; preds = %fv.merge, %entry +while.hdr.286: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.197, label %while.exit.198 + br i1 %icmp, label %while.body.287, label %while.exit.288 -while.body.197: ; preds = %while.hdr.196 +while.body.287: ; preds = %while.hdr.286 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.199, label %if.merge.200 + br i1 %icmpN, label %if.then.289, label %if.merge.290 -while.exit.198: ; preds = %while.hdr.196 +while.exit.288: ; preds = %while.hdr.286 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.979, i64 1 }) ret { ptr, i64 } %callN -if.then.199: ; preds = %while.body.197 +if.then.289: ; preds = %while.body.287 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.980, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.200 + br label %if.merge.290 -if.merge.200: ; preds = %if.then.199, %while.body.197 +if.merge.290: ; preds = %if.then.289, %while.body.287 %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.361, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.982, 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.362, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.983, 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 @@ -4549,12 +8078,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.196 + br label %while.hdr.286 -fv.default: ; preds = %if.merge.200 +fv.default: ; preds = %if.merge.290 br label %fv.merge -fv.case: ; preds = %if.merge.200 +fv.case: ; preds = %if.merge.290 %fv.field = extractvalue { ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 @@ -4566,43 +8095,43 @@ define internal { ptr, i64 } @struct_to_string__SimpleCounter(ptr %0, { i32 } %1 entry: %alloca = alloca { i32 }, align 8 store { i32 } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.363, i64 13 }, { ptr, i64 } { ptr @str.364, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.984, i64 13 }, { ptr, i64 } { ptr @str.985, 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.201 + br label %while.hdr.291 -while.hdr.201: ; preds = %fv.merge, %entry +while.hdr.291: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.202, label %while.exit.203 + br i1 %icmp, label %while.body.292, label %while.exit.293 -while.body.202: ; preds = %while.hdr.201 +while.body.292: ; preds = %while.hdr.291 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.204, label %if.merge.205 + br i1 %icmpN, label %if.then.294, label %if.merge.295 -while.exit.203: ; preds = %while.hdr.201 +while.exit.293: ; preds = %while.hdr.291 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.365, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.986, i64 1 }) ret { ptr, i64 } %callN -if.then.204: ; preds = %while.body.202 +if.then.294: ; preds = %while.body.292 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.987, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.205 + br label %if.merge.295 -if.merge.205: ; preds = %if.then.204, %while.body.202 +if.merge.295: ; preds = %if.then.294, %while.body.292 %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.368, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.989, 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.369, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.990, 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 @@ -4619,12 +8148,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.201 + br label %while.hdr.291 -fv.default: ; preds = %if.merge.205 +fv.default: ; preds = %if.merge.295 br label %fv.merge -fv.case: ; preds = %if.merge.205 +fv.case: ; preds = %if.merge.295 %fv.field = extractvalue { i32 } %loadN, 0 %sN = sext i32 %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 @@ -4636,43 +8165,43 @@ define internal { ptr, i64 } @struct_to_string__Adder(ptr %0, { ptr, ptr, ptr } 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.370, i64 5 }, { ptr, i64 } { ptr @str.371, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.991, i64 5 }, { ptr, i64 } { ptr @str.992, 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.206 + br label %while.hdr.296 -while.hdr.206: ; preds = %fv.merge, %entry +while.hdr.296: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.207, label %while.exit.208 + br i1 %icmp, label %while.body.297, label %while.exit.298 -while.body.207: ; preds = %while.hdr.206 +while.body.297: ; preds = %while.hdr.296 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.209, label %if.merge.210 + br i1 %icmpN, label %if.then.299, label %if.merge.300 -while.exit.208: ; preds = %while.hdr.206 +while.exit.298: ; preds = %while.hdr.296 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.372, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.993, i64 1 }) ret { ptr, i64 } %callN -if.then.209: ; preds = %while.body.207 +if.then.299: ; preds = %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.994, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.210 + br label %if.merge.300 -if.merge.210: ; preds = %if.then.209, %while.body.207 +if.merge.300: ; preds = %if.then.299, %while.body.297 %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.377, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.998, 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.378, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.999, 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 @@ -4691,24 +8220,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.206 + br label %while.hdr.296 -fv.default: ; preds = %if.merge.210 +fv.default: ; preds = %if.merge.300 br label %fv.merge -fv.case: ; preds = %if.merge.210 +fv.case: ; preds = %if.merge.300 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.210 +fv.case17: ; preds = %if.merge.300 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.210 +fv.case21: ; preds = %if.merge.300 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -4720,43 +8249,43 @@ define internal { ptr, i64 } @struct_to_string__Accumulator(ptr %0, { i32 } %1) entry: %alloca = alloca { i32 }, align 8 store { i32 } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.379, i64 11 }, { ptr, i64 } { ptr @str.380, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1000, i64 11 }, { ptr, i64 } { ptr @str.1001, 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.211 + br label %while.hdr.301 -while.hdr.211: ; preds = %fv.merge, %entry +while.hdr.301: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.212, label %while.exit.213 + br i1 %icmp, label %while.body.302, label %while.exit.303 -while.body.212: ; preds = %while.hdr.211 +while.body.302: ; preds = %while.hdr.301 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.214, label %if.merge.215 + br i1 %icmpN, label %if.then.304, label %if.merge.305 -while.exit.213: ; preds = %while.hdr.211 +while.exit.303: ; preds = %while.hdr.301 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.381, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1002, i64 1 }) ret { ptr, i64 } %callN -if.then.214: ; preds = %while.body.212 +if.then.304: ; preds = %while.body.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1003, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.215 + br label %if.merge.305 -if.merge.215: ; preds = %if.then.214, %while.body.212 +if.merge.305: ; preds = %if.then.304, %while.body.302 %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.384, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.1005, 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.385, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1006, 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 @@ -4773,12 +8302,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.211 + br label %while.hdr.301 -fv.default: ; preds = %if.merge.215 +fv.default: ; preds = %if.merge.305 br label %fv.merge -fv.case: ; preds = %if.merge.215 +fv.case: ; preds = %if.merge.305 %fv.field = extractvalue { i32 } %loadN, 0 %sN = sext i32 %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 @@ -4786,7 +8315,7 @@ fv.case: ; preds = %if.merge.215 } ; Function Attrs: nounwind -define internal { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %1) #0 { +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 @@ -4794,9 +8323,9 @@ entry: %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.394, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.1012, 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.386, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1007, 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 @@ -4810,18 +8339,209 @@ entry: %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.220, label %if.merge.221 + br i1 %icmp, label %if.then.313, label %if.merge.314 -if.then.220: ; preds = %entry +if.then.313: ; 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.396, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.395, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1014, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1013, 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.221 + br label %if.merge.314 -if.merge.221: ; preds = %if.then.220, %entry +if.merge.314: ; preds = %if.then.313, %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.1019, 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.1015, 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.315, label %if.merge.316 + +if.then.315: ; 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.1021, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1020, 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.316 + +if.merge.316: ; preds = %if.then.315, %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.1029, 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.1022, 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.317: ; 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.1031, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1030, 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.318 + +if.merge.318: ; preds = %if.then.317, %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.317, label %if.merge.318 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.1040, 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.1032, 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.319, label %if.merge.320 + +if.then.319: ; 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.1042, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1041, 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.320 + +if.merge.320: ; preds = %if.then.319, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -4835,9 +8555,9 @@ entry: %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.403, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.1049, 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.397, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1043, 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 @@ -4851,18 +8571,18 @@ entry: %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.222, label %if.merge.223 + br i1 %icmp, label %if.then.321, label %if.merge.322 -if.then.222: ; preds = %entry +if.then.321: ; 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.405, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.404, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1051, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1050, 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.223 + br label %if.merge.322 -if.merge.223: ; preds = %if.then.222, %entry +if.merge.322: ; preds = %if.then.321, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -4874,33 +8594,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.406, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1052, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.229 + br label %while.hdr.332 -while.hdr.229: ; preds = %if.merge.233, %entry +while.hdr.332: ; preds = %if.merge.336, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.230, label %while.exit.231 + br i1 %icmp, label %while.body.333, label %while.exit.334 -while.body.230: ; preds = %while.hdr.229 +while.body.333: ; preds = %while.hdr.332 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.232, label %if.merge.233 + br i1 %icmpN, label %if.then.335, label %if.merge.336 -while.exit.231: ; preds = %while.hdr.229 +while.exit.334: ; preds = %while.hdr.332 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.407, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1053, i64 1 }) ret { ptr, i64 } %call -if.then.232: ; preds = %while.body.230 +if.then.335: ; preds = %while.body.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1054, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.233 + br label %if.merge.336 -if.merge.233: ; preds = %if.then.232, %while.body.230 +if.merge.336: ; preds = %if.then.335, %while.body.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4914,7 +8634,211 @@ if.merge.233: ; preds = %if.then.232, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.229 + br label %while.hdr.332 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1055, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.337 + +while.hdr.337: ; preds = %if.merge.341, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.338, label %while.exit.339 + +while.body.338: ; preds = %while.hdr.337 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.340, label %if.merge.341 + +while.exit.339: ; preds = %while.hdr.337 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1056, i64 1 }) + ret { ptr, i64 } %call + +if.then.340: ; preds = %while.body.338 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1057, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.341 + +if.merge.341: ; preds = %if.then.340, %while.body.338 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.337 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1058, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.342 + +while.hdr.342: ; preds = %if.merge.346, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.343, label %while.exit.344 + +while.body.343: ; preds = %while.hdr.342 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.345, label %if.merge.346 + +while.exit.344: ; preds = %while.hdr.342 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1059, i64 1 }) + ret { ptr, i64 } %call + +if.then.345: ; preds = %while.body.343 + %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.346 + +if.merge.346: ; preds = %if.then.345, %while.body.343 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.342 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1061, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.347 + +while.hdr.347: ; preds = %if.merge.351, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.348, label %while.exit.349 + +while.body.348: ; preds = %while.hdr.347 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.350, label %if.merge.351 + +while.exit.349: ; preds = %while.hdr.347 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1062, i64 1 }) + ret { ptr, i64 } %call + +if.then.350: ; preds = %while.body.348 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1063, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.351 + +if.merge.351: ; preds = %if.then.350, %while.body.348 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.347 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.1064, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.352 + +while.hdr.352: ; preds = %if.merge.356, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.353, label %while.exit.354 + +while.body.353: ; preds = %while.hdr.352 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.355, label %if.merge.356 + +while.exit.354: ; preds = %while.hdr.352 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1065, i64 1 }) + ret { ptr, i64 } %call + +if.then.355: ; preds = %while.body.353 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1066, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.356 + +if.merge.356: ; preds = %if.then.355, %while.body.353 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.352 } ; Function Attrs: nounwind @@ -4924,33 +8848,33 @@ entry: %ig.tmp = alloca [16 x float], align 4 store [16 x float] %1, ptr %alloca, align 4 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.409, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1067, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.234 + br label %while.hdr.357 -while.hdr.234: ; preds = %if.merge.238, %entry +while.hdr.357: ; preds = %if.merge.361, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 16 - br i1 %icmp, label %while.body.235, label %while.exit.236 + br i1 %icmp, label %while.body.358, label %while.exit.359 -while.body.235: ; preds = %while.hdr.234 +while.body.358: ; preds = %while.hdr.357 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.237, label %if.merge.238 + br i1 %icmpN, label %if.then.360, label %if.merge.361 -while.exit.236: ; preds = %while.hdr.234 +while.exit.359: ; preds = %while.hdr.357 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.410, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1068, i64 1 }) ret { ptr, i64 } %call -if.then.237: ; preds = %while.body.235 +if.then.360: ; preds = %while.body.358 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1069, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.238 + br label %if.merge.361 -if.merge.238: ; preds = %if.then.237, %while.body.235 +if.merge.361: ; preds = %if.then.360, %while.body.358 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [16 x float], ptr %alloca, align 4 %loadN = load i64, ptr %allocaN, align 8 @@ -4966,7 +8890,7 @@ if.merge.238: ; preds = %if.then.237, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.234 + br label %while.hdr.357 } ; Function Attrs: nounwind @@ -4977,33 +8901,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.412, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1070, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.239 + br label %while.hdr.362 -while.hdr.239: ; preds = %if.merge.243, %entry +while.hdr.362: ; preds = %if.merge.366, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.240, label %while.exit.241 + br i1 %icmp, label %while.body.363, label %while.exit.364 -while.body.240: ; preds = %while.hdr.239 +while.body.363: ; preds = %while.hdr.362 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.242, label %if.merge.243 + br i1 %icmpN, label %if.then.365, label %if.merge.366 -while.exit.241: ; preds = %while.hdr.239 +while.exit.364: ; preds = %while.hdr.362 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.413, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1071, i64 1 }) ret { ptr, i64 } %call -if.then.242: ; preds = %while.body.240 +if.then.365: ; preds = %while.body.363 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.414, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1072, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.243 + br label %if.merge.366 -if.merge.243: ; preds = %if.then.242, %while.body.240 +if.merge.366: ; preds = %if.then.365, %while.body.363 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -5019,7 +8943,7 @@ if.merge.243: ; preds = %if.then.242, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.239 + br label %while.hdr.362 } ; Function Attrs: nounwind @@ -5029,35 +8953,35 @@ entry: %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.415, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1073, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.248 + br label %while.hdr.374 -while.hdr.248: ; preds = %if.merge.252, %entry +while.hdr.374: ; preds = %if.merge.378, %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.249, label %while.exit.250 + br i1 %icmp, label %while.body.375, label %while.exit.376 -while.body.249: ; preds = %while.hdr.248 +while.body.375: ; preds = %while.hdr.374 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.251, label %if.merge.252 + br i1 %icmpN, label %if.then.377, label %if.merge.378 -while.exit.250: ; preds = %while.hdr.248 +while.exit.376: ; preds = %while.hdr.374 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.416, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1074, i64 1 }) ret { ptr, i64 } %call -if.then.251: ; preds = %while.body.249 +if.then.377: ; preds = %while.body.375 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.417, i64 2 }) + %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.252 + br label %if.merge.378 -if.merge.252: ; preds = %if.then.251, %while.body.249 +if.merge.378: ; preds = %if.then.377, %while.body.375 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -5073,7 +8997,167 @@ if.merge.252: ; preds = %if.then.251, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.248 + br label %while.hdr.374 +} + +; 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.1076, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.379 + +while.hdr.379: ; preds = %if.merge.383, %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.380, label %while.exit.381 + +while.body.380: ; preds = %while.hdr.379 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.382, label %if.merge.383 + +while.exit.381: ; preds = %while.hdr.379 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1077, i64 1 }) + ret { ptr, i64 } %call + +if.then.382: ; preds = %while.body.380 + %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 + br label %if.merge.383 + +if.merge.383: ; preds = %if.then.382, %while.body.380 + %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.379 +} + +; 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.1079, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.384 + +while.hdr.384: ; preds = %if.merge.388, %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.385, label %while.exit.386 + +while.body.385: ; preds = %while.hdr.384 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.387, label %if.merge.388 + +while.exit.386: ; preds = %while.hdr.384 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1080, i64 1 }) + ret { ptr, i64 } %call + +if.then.387: ; preds = %while.body.385 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1081, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.388 + +if.merge.388: ; preds = %if.then.387, %while.body.385 + %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 76, 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.384 +} + +; 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.1082, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.389 + +while.hdr.389: ; preds = %if.merge.393, %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.390, label %while.exit.391 + +while.body.390: ; preds = %while.hdr.389 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.392, label %if.merge.393 + +while.exit.391: ; preds = %while.hdr.389 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1083, i64 1 }) + ret { ptr, i64 } %call + +if.then.392: ; preds = %while.body.390 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1084, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.393 + +if.merge.393: ; preds = %if.then.392, %while.body.390 + %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 78, 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.389 } ; Function Attrs: nounwind @@ -5083,35 +9167,35 @@ entry: %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.418, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.1085, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.253 + br label %while.hdr.394 -while.hdr.253: ; preds = %if.merge.257, %entry +while.hdr.394: ; preds = %if.merge.398, %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.254, label %while.exit.255 + br i1 %icmp, label %while.body.395, label %while.exit.396 -while.body.254: ; preds = %while.hdr.253 +while.body.395: ; preds = %while.hdr.394 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.256, label %if.merge.257 + br i1 %icmpN, label %if.then.397, label %if.merge.398 -while.exit.255: ; preds = %while.hdr.253 +while.exit.396: ; preds = %while.hdr.394 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1086, i64 1 }) ret { ptr, i64 } %call -if.then.256: ; preds = %while.body.254 +if.then.397: ; preds = %while.body.395 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.1087, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.257 + br label %if.merge.398 -if.merge.257: ; preds = %if.then.256, %while.body.254 +if.merge.398: ; preds = %if.then.397, %while.body.395 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -5127,7 +9211,7 @@ if.merge.257: ; preds = %if.then.256, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.253 + br label %while.hdr.394 } ; Function Attrs: nounwind @@ -5141,20 +9225,20 @@ entry: 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.286, label %if.else.287 + br i1 %icmp, label %if.then.439, label %if.else.440 -if.then.286: ; preds = %entry - br label %if.merge.288 +if.then.439: ; preds = %entry + br label %if.merge.441 -if.else.287: ; preds = %entry +if.else.440: ; 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.423, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.422, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.288 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1090, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1089, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.441 -if.merge.288: ; preds = %if.else.287, %if.then.286 - %bp = phi { ptr, i64 } [ { ptr @str.421, i64 4 }, %if.then.286 ], [ %callN, %if.else.287 ] +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.1088, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] ret { ptr, i64 } %bp } @@ -5169,20 +9253,20 @@ entry: 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.302, label %if.else.303 + br i1 %icmp, label %if.then.455, label %if.else.456 -if.then.302: ; preds = %entry - br label %if.merge.304 +if.then.455: ; preds = %entry + br label %if.merge.457 -if.else.303: ; preds = %entry +if.else.456: ; 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.426, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.425, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.304 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1093, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1092, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.457 -if.merge.304: ; preds = %if.else.303, %if.then.302 - %bp = phi { ptr, i64 } [ { ptr @str.424, i64 4 }, %if.then.302 ], [ %callN, %if.else.303 ] +if.merge.457: ; preds = %if.else.456, %if.then.455 + %bp = phi { ptr, i64 } [ { ptr @str.1091, i64 4 }, %if.then.455 ], [ %callN, %if.else.456 ] ret { ptr, i64 } %bp } @@ -5197,20 +9281,20 @@ entry: 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.305, label %if.else.306 + br i1 %icmp, label %if.then.458, label %if.else.459 -if.then.305: ; preds = %entry - br label %if.merge.307 +if.then.458: ; preds = %entry + br label %if.merge.460 -if.else.306: ; preds = %entry +if.else.459: ; 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.429, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.428, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.307 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1096, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1095, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.460 -if.merge.307: ; preds = %if.else.306, %if.then.305 - %bp = phi { ptr, i64 } [ { ptr @str.427, i64 4 }, %if.then.305 ], [ %callN, %if.else.306 ] +if.merge.460: ; preds = %if.else.459, %if.then.458 + %bp = phi { ptr, i64 } [ { ptr @str.1094, i64 4 }, %if.then.458 ], [ %callN, %if.else.459 ] ret { ptr, i64 } %bp } @@ -5225,20 +9309,20 @@ entry: 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.308, label %if.else.309 + br i1 %icmp, label %if.then.461, label %if.else.462 -if.then.308: ; preds = %entry - br label %if.merge.310 +if.then.461: ; preds = %entry + br label %if.merge.463 -if.else.309: ; preds = %entry +if.else.462: ; 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.432, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.431, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.310 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1099, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1098, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.463 -if.merge.310: ; preds = %if.else.309, %if.then.308 - %bp = phi { ptr, i64 } [ { ptr @str.430, i64 4 }, %if.then.308 ], [ %callN, %if.else.309 ] +if.merge.463: ; preds = %if.else.462, %if.then.461 + %bp = phi { ptr, i64 } [ { ptr @str.1097, i64 4 }, %if.then.461 ], [ %callN, %if.else.462 ] ret { ptr, i64 } %bp } @@ -5253,20 +9337,20 @@ entry: 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.311, label %if.else.312 + br i1 %icmp, label %if.then.464, label %if.else.465 -if.then.311: ; preds = %entry - br label %if.merge.313 +if.then.464: ; preds = %entry + br label %if.merge.466 -if.else.312: ; preds = %entry +if.else.465: ; 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.435, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.434, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.313 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1102, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1101, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.466 -if.merge.313: ; preds = %if.else.312, %if.then.311 - %bp = phi { ptr, i64 } [ { ptr @str.433, i64 4 }, %if.then.311 ], [ %callN, %if.else.312 ] +if.merge.466: ; preds = %if.else.465, %if.then.464 + %bp = phi { ptr, i64 } [ { ptr @str.1100, i64 4 }, %if.then.464 ], [ %callN, %if.else.465 ] ret { ptr, i64 } %bp } @@ -5280,20 +9364,20 @@ entry: 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.314, label %if.else.315 + br i1 %icmp, label %if.then.467, label %if.else.468 -if.then.314: ; preds = %entry - br label %if.merge.316 +if.then.467: ; preds = %entry + br label %if.merge.469 -if.else.315: ; preds = %entry +if.else.468: ; 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.438, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.437, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.316 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1105, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1104, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.469 -if.merge.316: ; preds = %if.else.315, %if.then.314 - %bp = phi { ptr, i64 } [ { ptr @str.436, i64 4 }, %if.then.314 ], [ %callN, %if.else.315 ] +if.merge.469: ; preds = %if.else.468, %if.then.467 + %bp = phi { ptr, i64 } [ { ptr @str.1103, i64 4 }, %if.then.467 ], [ %callN, %if.else.468 ] ret { ptr, i64 } %bp } @@ -5308,20 +9392,20 @@ entry: 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.317, label %if.else.318 + br i1 %icmp, label %if.then.470, label %if.else.471 -if.then.317: ; preds = %entry - br label %if.merge.319 +if.then.470: ; preds = %entry + br label %if.merge.472 -if.else.318: ; preds = %entry +if.else.471: ; 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.441, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.440, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.319 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1108, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1107, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.472 -if.merge.319: ; preds = %if.else.318, %if.then.317 - %bp = phi { ptr, i64 } [ { ptr @str.439, i64 4 }, %if.then.317 ], [ %callN, %if.else.318 ] +if.merge.472: ; preds = %if.else.471, %if.then.470 + %bp = phi { ptr, i64 } [ { ptr @str.1106, i64 4 }, %if.then.470 ], [ %callN, %if.else.471 ] ret { ptr, i64 } %bp } @@ -5336,25 +9420,25 @@ entry: 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.320, label %if.else.321 + br i1 %icmp, label %if.then.473, label %if.else.474 -if.then.320: ; preds = %entry - br label %if.merge.322 +if.then.473: ; preds = %entry + br label %if.merge.475 -if.else.321: ; preds = %entry +if.else.474: ; 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.444, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.443, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.322 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1111, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1110, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.475 -if.merge.322: ; preds = %if.else.321, %if.then.320 - %bp = phi { ptr, i64 } [ { ptr @str.442, i64 4 }, %if.then.320 ], [ %callN, %if.else.321 ] +if.merge.475: ; preds = %if.else.474, %if.then.473 + %bp = phi { ptr, i64 } [ { ptr @str.1109, i64 4 }, %if.then.473 ], [ %callN, %if.else.474 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_SimpleCounter(ptr %0, ptr %1) #0 { +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 @@ -5364,244 +9448,20 @@ entry: 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.323, label %if.else.324 + br i1 %icmp, label %if.then.476, label %if.else.477 -if.then.323: ; preds = %entry - br label %if.merge.325 +if.then.476: ; preds = %entry + br label %if.merge.478 -if.else.324: ; preds = %entry +if.else.477: ; 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.447, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.446, i64 14 }, { ptr, i64 } %callN) - br label %if.merge.325 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1114, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1113, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.478 -if.merge.325: ; preds = %if.else.324, %if.then.323 - %bp = phi { ptr, i64 } [ { ptr @str.445, i64 4 }, %if.then.323 ], [ %callN, %if.else.324 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Point(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.326, label %if.else.327 - -if.then.326: ; preds = %entry - br label %if.merge.328 - -if.else.327: ; 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.450, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.449, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.328 - -if.merge.328: ; preds = %if.else.327, %if.then.326 - %bp = phi { ptr, i64 } [ { ptr @str.448, i64 4 }, %if.then.326 ], [ %callN, %if.else.327 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Accumulator(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.329, label %if.else.330 - -if.then.329: ; preds = %entry - br label %if.merge.331 - -if.else.330: ; 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.453, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.452, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.331 - -if.merge.331: ; preds = %if.else.330, %if.then.329 - %bp = phi { ptr, i64 } [ { ptr @str.451, i64 4 }, %if.then.329 ], [ %callN, %if.else.330 ] - 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.332, label %if.else.333 - -if.then.332: ; preds = %entry - br label %if.merge.334 - -if.else.333: ; 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.456, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.455, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.334 - -if.merge.334: ; preds = %if.else.333, %if.then.332 - %bp = phi { ptr, i64 } [ { ptr @str.454, i64 4 }, %if.then.332 ], [ %callN, %if.else.333 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.335, label %if.else.336 - -if.then.335: ; preds = %entry - br label %if.merge.337 - -if.else.336: ; 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.459, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.458, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.337 - -if.merge.337: ; preds = %if.else.336, %if.then.335 - %bp = phi { ptr, i64 } [ { ptr @str.457, i64 4 }, %if.then.335 ], [ %callN, %if.else.336 ] - 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.338, label %if.else.339 - -if.then.338: ; preds = %entry - br label %if.merge.340 - -if.else.339: ; 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.462, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.461, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.340 - -if.merge.340: ; preds = %if.else.339, %if.then.338 - %bp = phi { ptr, i64 } [ { ptr @str.460, i64 4 }, %if.then.338 ], [ %callN, %if.else.339 ] - 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.341, label %if.else.342 - -if.then.341: ; preds = %entry - br label %if.merge.343 - -if.else.342: ; 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.465, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.464, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.343 - -if.merge.343: ; preds = %if.else.342, %if.then.341 - %bp = phi { ptr, i64 } [ { ptr @str.463, i64 4 }, %if.then.341 ], [ %callN, %if.else.342 ] - 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.344, label %if.else.345 - -if.then.344: ; preds = %entry - br label %if.merge.346 - -if.else.345: ; 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.468, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.467, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.346 - -if.merge.346: ; preds = %if.else.345, %if.then.344 - %bp = phi { ptr, i64 } [ { ptr @str.466, i64 4 }, %if.then.344 ], [ %callN, %if.else.345 ] - 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.347, label %if.else.348 - -if.then.347: ; preds = %entry - br label %if.merge.349 - -if.else.348: ; 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.471, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.470, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.349 - -if.merge.349: ; preds = %if.else.348, %if.then.347 - %bp = phi { ptr, i64 } [ { ptr @str.469, i64 4 }, %if.then.347 ], [ %callN, %if.else.348 ] +if.merge.478: ; preds = %if.else.477, %if.then.476 + %bp = phi { ptr, i64 } [ { ptr @str.1112, i64 4 }, %if.then.476 ], [ %callN, %if.else.477 ] ret { ptr, i64 } %bp } @@ -5616,104 +9476,20 @@ entry: 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.350, label %if.else.351 + br i1 %icmp, label %if.then.479, label %if.else.480 -if.then.350: ; preds = %entry - br label %if.merge.352 +if.then.479: ; preds = %entry + br label %if.merge.481 -if.else.351: ; preds = %entry +if.else.480: ; 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.474, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.473, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.352 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1117, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1116, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.481 -if.merge.352: ; preds = %if.else.351, %if.then.350 - %bp = phi { ptr, i64 } [ { ptr @str.472, i64 4 }, %if.then.350 ], [ %callN, %if.else.351 ] - 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.353, label %if.else.354 - -if.then.353: ; preds = %entry - br label %if.merge.355 - -if.else.354: ; 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.477, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.476, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.355 - -if.merge.355: ; preds = %if.else.354, %if.then.353 - %bp = phi { ptr, i64 } [ { ptr @str.475, i64 4 }, %if.then.353 ], [ %callN, %if.else.354 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Counter(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.356, label %if.else.357 - -if.then.356: ; preds = %entry - br label %if.merge.358 - -if.else.357: ; 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.480, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.479, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.358 - -if.merge.358: ; preds = %if.else.357, %if.then.356 - %bp = phi { ptr, i64 } [ { ptr @str.478, i64 4 }, %if.then.356 ], [ %callN, %if.else.357 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_SimpleCounter(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.359, label %if.else.360 - -if.then.359: ; preds = %entry - br label %if.merge.361 - -if.else.360: ; 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.483, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.482, i64 15 }, { ptr, i64 } %callN) - br label %if.merge.361 - -if.merge.361: ; preds = %if.else.360, %if.then.359 - %bp = phi { ptr, i64 } [ { ptr @str.481, i64 4 }, %if.then.359 ], [ %callN, %if.else.360 ] +if.merge.481: ; preds = %if.else.480, %if.then.479 + %bp = phi { ptr, i64 } [ { ptr @str.1115, i64 4 }, %if.then.479 ], [ %callN, %if.else.480 ] ret { ptr, i64 } %bp } @@ -5728,20 +9504,662 @@ entry: 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.362, label %if.else.363 + br i1 %icmp, label %if.then.482, label %if.else.483 -if.then.362: ; preds = %entry - br label %if.merge.364 +if.then.482: ; preds = %entry + br label %if.merge.484 -if.else.363: ; preds = %entry +if.else.483: ; 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.486, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.485, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.364 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1120, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1119, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.484 -if.merge.364: ; preds = %if.else.363, %if.then.362 - %bp = phi { ptr, i64 } [ { ptr @str.484, i64 4 }, %if.then.362 ], [ %callN, %if.else.363 ] +if.merge.484: ; preds = %if.else.483, %if.then.482 + %bp = phi { ptr, i64 } [ { ptr @str.1118, i64 4 }, %if.then.482 ], [ %callN, %if.else.483 ] + 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.485, label %if.else.486 + +if.then.485: ; preds = %entry + br label %if.merge.487 + +if.else.486: ; 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.1123, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1122, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.487 + +if.merge.487: ; preds = %if.else.486, %if.then.485 + %bp = phi { ptr, i64 } [ { ptr @str.1121, i64 4 }, %if.then.485 ], [ %callN, %if.else.486 ] + 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.488, label %if.else.489 + +if.then.488: ; preds = %entry + br label %if.merge.490 + +if.else.489: ; 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.1126, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1125, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.490 + +if.merge.490: ; preds = %if.else.489, %if.then.488 + %bp = phi { ptr, i64 } [ { ptr @str.1124, i64 4 }, %if.then.488 ], [ %callN, %if.else.489 ] + 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.491, label %if.else.492 + +if.then.491: ; preds = %entry + br label %if.merge.493 + +if.else.492: ; 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.1129, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1128, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.493 + +if.merge.493: ; preds = %if.else.492, %if.then.491 + %bp = phi { ptr, i64 } [ { ptr @str.1127, i64 4 }, %if.then.491 ], [ %callN, %if.else.492 ] + 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.494, label %if.else.495 + +if.then.494: ; preds = %entry + br label %if.merge.496 + +if.else.495: ; 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.1132, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1131, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.496 + +if.merge.496: ; preds = %if.else.495, %if.then.494 + %bp = phi { ptr, i64 } [ { ptr @str.1130, i64 4 }, %if.then.494 ], [ %callN, %if.else.495 ] + 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.497, label %if.else.498 + +if.then.497: ; preds = %entry + br label %if.merge.499 + +if.else.498: ; 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.1135, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1134, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.499 + +if.merge.499: ; preds = %if.else.498, %if.then.497 + %bp = phi { ptr, i64 } [ { ptr @str.1133, i64 4 }, %if.then.497 ], [ %callN, %if.else.498 ] + 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.500, label %if.else.501 + +if.then.500: ; preds = %entry + br label %if.merge.502 + +if.else.501: ; 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.1138, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1137, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.502 + +if.merge.502: ; preds = %if.else.501, %if.then.500 + %bp = phi { ptr, i64 } [ { ptr @str.1136, i64 4 }, %if.then.500 ], [ %callN, %if.else.501 ] + 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.503, label %if.else.504 + +if.then.503: ; preds = %entry + br label %if.merge.505 + +if.else.504: ; 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.1141, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1140, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.505 + +if.merge.505: ; preds = %if.else.504, %if.then.503 + %bp = phi { ptr, i64 } [ { ptr @str.1139, i64 4 }, %if.then.503 ], [ %callN, %if.else.504 ] + 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.506, label %if.else.507 + +if.then.506: ; preds = %entry + br label %if.merge.508 + +if.else.507: ; 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.1144, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1143, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.508 + +if.merge.508: ; preds = %if.else.507, %if.then.506 + %bp = phi { ptr, i64 } [ { ptr @str.1142, i64 4 }, %if.then.506 ], [ %callN, %if.else.507 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.509, label %if.else.510 + +if.then.509: ; preds = %entry + br label %if.merge.511 + +if.else.510: ; 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.1147, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1146, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.511 + +if.merge.511: ; preds = %if.else.510, %if.then.509 + %bp = phi { ptr, i64 } [ { ptr @str.1145, i64 4 }, %if.then.509 ], [ %callN, %if.else.510 ] + 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.512, label %if.else.513 + +if.then.512: ; preds = %entry + br label %if.merge.514 + +if.else.513: ; 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.1150, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1149, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.514 + +if.merge.514: ; preds = %if.else.513, %if.then.512 + %bp = phi { ptr, i64 } [ { ptr @str.1148, i64 4 }, %if.then.512 ], [ %callN, %if.else.513 ] + 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.515, label %if.else.516 + +if.then.515: ; preds = %entry + br label %if.merge.517 + +if.else.516: ; 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.1153, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1152, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.517 + +if.merge.517: ; preds = %if.else.516, %if.then.515 + %bp = phi { ptr, i64 } [ { ptr @str.1151, i64 4 }, %if.then.515 ], [ %callN, %if.else.516 ] + 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.518, label %if.else.519 + +if.then.518: ; preds = %entry + br label %if.merge.520 + +if.else.519: ; 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.1156, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1155, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.520 + +if.merge.520: ; preds = %if.else.519, %if.then.518 + %bp = phi { ptr, i64 } [ { ptr @str.1154, i64 4 }, %if.then.518 ], [ %callN, %if.else.519 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_SimpleCounter(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.521, label %if.else.522 + +if.then.521: ; preds = %entry + br label %if.merge.523 + +if.else.522: ; 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.1159, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1158, i64 14 }, { ptr, i64 } %callN) + br label %if.merge.523 + +if.merge.523: ; preds = %if.else.522, %if.then.521 + %bp = phi { ptr, i64 } [ { ptr @str.1157, i64 4 }, %if.then.521 ], [ %callN, %if.else.522 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Point(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.524, label %if.else.525 + +if.then.524: ; preds = %entry + br label %if.merge.526 + +if.else.525: ; 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.1162, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1161, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.526 + +if.merge.526: ; preds = %if.else.525, %if.then.524 + %bp = phi { ptr, i64 } [ { ptr @str.1160, i64 4 }, %if.then.524 ], [ %callN, %if.else.525 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Accumulator(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.527, label %if.else.528 + +if.then.527: ; preds = %entry + br label %if.merge.529 + +if.else.528: ; 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.1165, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1164, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.529 + +if.merge.529: ; preds = %if.else.528, %if.then.527 + %bp = phi { ptr, i64 } [ { ptr @str.1163, i64 4 }, %if.then.527 ], [ %callN, %if.else.528 ] + 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.530, label %if.else.531 + +if.then.530: ; preds = %entry + br label %if.merge.532 + +if.else.531: ; 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.1168, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1167, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.532 + +if.merge.532: ; preds = %if.else.531, %if.then.530 + %bp = phi { ptr, i64 } [ { ptr @str.1166, i64 4 }, %if.then.530 ], [ %callN, %if.else.531 ] + 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.533, label %if.else.534 + +if.then.533: ; preds = %entry + br label %if.merge.535 + +if.else.534: ; 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.1171, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1170, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.535 + +if.merge.535: ; preds = %if.else.534, %if.then.533 + %bp = phi { ptr, i64 } [ { ptr @str.1169, i64 4 }, %if.then.533 ], [ %callN, %if.else.534 ] + 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.536, label %if.else.537 + +if.then.536: ; preds = %entry + br label %if.merge.538 + +if.else.537: ; 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.1174, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1173, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.538 + +if.merge.538: ; preds = %if.else.537, %if.then.536 + %bp = phi { ptr, i64 } [ { ptr @str.1172, i64 4 }, %if.then.536 ], [ %callN, %if.else.537 ] + 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.539, label %if.else.540 + +if.then.539: ; preds = %entry + br label %if.merge.541 + +if.else.540: ; 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.1177, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1176, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.541 + +if.merge.541: ; preds = %if.else.540, %if.then.539 + %bp = phi { ptr, i64 } [ { ptr @str.1175, i64 4 }, %if.then.539 ], [ %callN, %if.else.540 ] + 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.542, label %if.else.543 + +if.then.542: ; preds = %entry + br label %if.merge.544 + +if.else.543: ; 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.1180, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1179, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.544 + +if.merge.544: ; preds = %if.else.543, %if.then.542 + %bp = phi { ptr, i64 } [ { ptr @str.1178, i64 4 }, %if.then.542 ], [ %callN, %if.else.543 ] + 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.545, label %if.else.546 + +if.then.545: ; preds = %entry + br label %if.merge.547 + +if.else.546: ; 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.1183, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1182, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.547 + +if.merge.547: ; preds = %if.else.546, %if.then.545 + %bp = phi { ptr, i64 } [ { ptr @str.1181, i64 4 }, %if.then.545 ], [ %callN, %if.else.546 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Counter(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.548, label %if.else.549 + +if.then.548: ; preds = %entry + br label %if.merge.550 + +if.else.549: ; 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.1186, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1185, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.550 + +if.merge.550: ; preds = %if.else.549, %if.then.548 + %bp = phi { ptr, i64 } [ { ptr @str.1184, i64 4 }, %if.then.548 ], [ %callN, %if.else.549 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_SimpleCounter(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.551, label %if.else.552 + +if.then.551: ; preds = %entry + br label %if.merge.553 + +if.else.552: ; 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.1189, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1188, i64 15 }, { ptr, i64 } %callN) + br label %if.merge.553 + +if.merge.553: ; preds = %if.else.552, %if.then.551 + %bp = phi { ptr, i64 } [ { ptr @str.1187, i64 4 }, %if.then.551 ], [ %callN, %if.else.552 ] ret { ptr, i64 } %bp } @@ -5756,20 +10174,20 @@ entry: 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.365, label %if.else.366 + br i1 %icmp, label %if.then.554, label %if.else.555 -if.then.365: ; preds = %entry - br label %if.merge.367 +if.then.554: ; preds = %entry + br label %if.merge.556 -if.else.366: ; preds = %entry +if.else.555: ; 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.489, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.488, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.367 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1192, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1191, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.556 -if.merge.367: ; preds = %if.else.366, %if.then.365 - %bp = phi { ptr, i64 } [ { ptr @str.487, i64 4 }, %if.then.365 ], [ %callN, %if.else.366 ] +if.merge.556: ; preds = %if.else.555, %if.then.554 + %bp = phi { ptr, i64 } [ { ptr @str.1190, i64 4 }, %if.then.554 ], [ %callN, %if.else.555 ] ret { ptr, i64 } %bp } @@ -5784,20 +10202,20 @@ entry: 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.368, label %if.else.369 + br i1 %icmp, label %if.then.557, label %if.else.558 -if.then.368: ; preds = %entry - br label %if.merge.370 +if.then.557: ; preds = %entry + br label %if.merge.559 -if.else.369: ; preds = %entry +if.else.558: ; 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.492, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.491, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.370 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1195, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1194, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.559 -if.merge.370: ; preds = %if.else.369, %if.then.368 - %bp = phi { ptr, i64 } [ { ptr @str.490, i64 4 }, %if.then.368 ], [ %callN, %if.else.369 ] +if.merge.559: ; preds = %if.else.558, %if.then.557 + %bp = phi { ptr, i64 } [ { ptr @str.1193, i64 4 }, %if.then.557 ], [ %callN, %if.else.558 ] ret { ptr, i64 } %bp } @@ -5812,20 +10230,20 @@ entry: 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.371, label %if.else.372 + br i1 %icmp, label %if.then.560, label %if.else.561 -if.then.371: ; preds = %entry - br label %if.merge.373 +if.then.560: ; preds = %entry + br label %if.merge.562 -if.else.372: ; preds = %entry +if.else.561: ; 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.495, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.494, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.373 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1198, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1197, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.562 -if.merge.373: ; preds = %if.else.372, %if.then.371 - %bp = phi { ptr, i64 } [ { ptr @str.493, i64 4 }, %if.then.371 ], [ %callN, %if.else.372 ] +if.merge.562: ; preds = %if.else.561, %if.then.560 + %bp = phi { ptr, i64 } [ { ptr @str.1196, i64 4 }, %if.then.560 ], [ %callN, %if.else.561 ] ret { ptr, i64 } %bp } @@ -5840,19 +10258,115 @@ entry: 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.374, label %if.else.375 + br i1 %icmp, label %if.then.563, label %if.else.564 -if.then.374: ; preds = %entry - br label %if.merge.376 +if.then.563: ; preds = %entry + br label %if.merge.565 -if.else.375: ; preds = %entry +if.else.564: ; 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.498, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.497, i64 13 }, { ptr, i64 } %callN) - br label %if.merge.376 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1201, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.1200, i64 13 }, { ptr, i64 } %callN) + br label %if.merge.565 -if.merge.376: ; preds = %if.else.375, %if.then.374 - %bp = phi { ptr, i64 } [ { ptr @str.496, i64 4 }, %if.then.374 ], [ %callN, %if.else.375 ] +if.merge.565: ; preds = %if.else.564, %if.then.563 + %bp = phi { ptr, i64 } [ { ptr @str.1199, i64 4 }, %if.then.563 ], [ %callN, %if.else.564 ] 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.572, label %if.merge.573 + +if.then.572: ; preds = %entry + ret { ptr, i64 } { ptr @str.1202, i64 4 } + +if.merge.573: ; 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 39, 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.574, label %if.merge.575 + +if.then.574: ; preds = %entry + ret { ptr, i64 } { ptr @str.1203, i64 4 } + +if.merge.575: ; 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_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.576, label %if.merge.577 + +if.then.576: ; preds = %entry + ret { ptr, i64 } { ptr @str.1204, i64 4 } + +if.merge.577: ; 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 45, 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.578, label %if.merge.579 + +if.then.578: ; preds = %entry + ret { ptr, i64 } { ptr @str.1205, i64 4 } + +if.merge.579: ; 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 88, 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/0507-packs-pack-mono-dedup.ir b/examples/expected/0507-packs-pack-mono-dedup.ir index a863f03..26175dd 100644 --- a/examples/expected/0507-packs-pack-mono-dedup.ir +++ b/examples/expected/0507-packs-pack-mono-dedup.ir @@ -1,272 +1,632 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [78 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [168 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.64 = private constant [5 x i8] c"*s64\00" -@tn.str.65 = private constant [7 x i8] c"**void\00" -@tn.str.66 = private constant [6 x i8] c"[]Any\00" -@tn.str.67 = private constant [5 x i8] c"*Any\00" -@tn.str.68 = private constant [7 x i8] c"*[]Any\00" -@tn.str.69 = private constant [7 x i8] c"[1]Any\00" -@tn.str.70 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.71 = private constant [7 x i8] c"[3]Any\00" -@tn.str.72 = private constant [8 x i8] c"*[3]Any\00" -@tn.str.73 = private constant [8 x i8] c"*string\00" -@tn.str.74 = private constant [6 x i8] c"*bool\00" -@tn.str.75 = private constant [7 x i8] c"[2]Any\00" -@tn.str.76 = private constant [8 x i8] c"*[2]Any\00" -@tn.str.77 = private constant [7 x i8] c"[5]Any\00" -@tn.str.78 = private constant [8 x i8] c"*[5]Any\00" -@tn.str.79 = private constant [4 x i8] c"*u8\00" -@tn.str.80 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.81 = private constant [5 x i8] c"*f64\00" -@tn.str.82 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.83 = private constant [11 x i8] c"*Allocator\00" -@tn.str.84 = private constant [9 x i8] c"*Context\00" -@tn.str.85 = private constant [10 x i8] c"*[]string\00" -@tn.str.86 = private constant [6 x i8] c"**GPA\00" -@tn.str.87 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.88 = private constant [8 x i8] c"**Arena\00" -@tn.str.89 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.90 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.91 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.92 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.93 = private constant [6 x i8] c"**s64\00" -@tn.str.94 = private constant [8 x i8] c"***void\00" -@tn.str.95 = private constant [6 x i8] c"**Any\00" -@tn.str.96 = private constant [8 x i8] c"**[]Any\00" -@tn.str.97 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.98 = private constant [9 x i8] c"**[3]Any\00" -@tn.str.99 = private constant [9 x i8] c"**string\00" -@tn.str.100 = private constant [7 x i8] c"**bool\00" -@tn.str.101 = private constant [9 x i8] c"**[2]Any\00" -@tn.str.102 = private constant [9 x i8] c"**[5]Any\00" -@tn.str.103 = private constant [5 x i8] c"**u8\00" -@__sx_type_names = private constant [78 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 12 }, { ptr, i64 } { ptr @tn.str.64, i64 4 }, { ptr, i64 } { ptr @tn.str.65, i64 6 }, { ptr, i64 } { ptr @tn.str.66, i64 5 }, { ptr, i64 } { ptr @tn.str.67, i64 4 }, { ptr, i64 } { ptr @tn.str.68, i64 6 }, { ptr, i64 } { ptr @tn.str.69, i64 6 }, { ptr, i64 } { ptr @tn.str.70, i64 7 }, { ptr, i64 } { ptr @tn.str.71, i64 6 }, { ptr, i64 } { ptr @tn.str.72, i64 7 }, { ptr, i64 } { ptr @tn.str.73, i64 7 }, { ptr, i64 } { ptr @tn.str.74, i64 5 }, { ptr, i64 } { ptr @tn.str.75, i64 6 }, { ptr, i64 } { ptr @tn.str.76, i64 7 }, { ptr, i64 } { ptr @tn.str.77, i64 6 }, { ptr, i64 } { ptr @tn.str.78, i64 7 }, { ptr, i64 } { ptr @tn.str.79, i64 3 }, { ptr, i64 } { ptr @tn.str.80, i64 7 }, { ptr, i64 } { ptr @tn.str.81, i64 4 }, { ptr, i64 } { ptr @tn.str.82, i64 16 }, { ptr, i64 } { ptr @tn.str.83, i64 10 }, { ptr, i64 } { ptr @tn.str.84, i64 8 }, { ptr, i64 } { ptr @tn.str.85, i64 9 }, { ptr, i64 } { ptr @tn.str.86, i64 5 }, { ptr, i64 } { ptr @tn.str.87, i64 12 }, { ptr, i64 } { ptr @tn.str.88, i64 7 }, { ptr, i64 } { ptr @tn.str.89, i64 6 }, { ptr, i64 } { ptr @tn.str.90, i64 10 }, { ptr, i64 } { ptr @tn.str.91, i64 19 }, { ptr, i64 } { ptr @tn.str.92, i64 13 }, { ptr, i64 } { ptr @tn.str.93, i64 5 }, { ptr, i64 } { ptr @tn.str.94, i64 7 }, { ptr, i64 } { ptr @tn.str.95, i64 5 }, { ptr, i64 } { ptr @tn.str.96, i64 7 }, { ptr, i64 } { ptr @tn.str.97, i64 8 }, { ptr, i64 } { ptr @tn.str.98, i64 8 }, { ptr, i64 } { ptr @tn.str.99, i64 8 }, { ptr, i64 } { ptr @tn.str.100, i64 6 }, { ptr, i64 } { ptr @tn.str.101, i64 8 }, { ptr, i64 } { ptr @tn.str.102, i64 8 }, { ptr, i64 } { ptr @tn.str.103, i64 4 }] -@str.104 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.105 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.106 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.107 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.123 = private unnamed_addr constant [2 x i8] c"x\00", align 1 -@str.124 = private unnamed_addr constant [16 x i8] c"{} {} {} {} {}\0A\00", align 1 -@str.125 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.126 = private unnamed_addr constant [16 x i8] c"{} {} {} {} {}\0A\00", align 1 -@str.127 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.128 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.129 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.130 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.237 = private constant [7 x i8] c"**void\00" +@tn.str.238 = private constant [6 x i8] c"[]Any\00" +@tn.str.239 = private constant [5 x i8] c"*Any\00" +@tn.str.240 = private constant [7 x i8] c"*[]Any\00" +@tn.str.241 = private constant [7 x i8] c"[1]Any\00" +@tn.str.242 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.243 = private constant [7 x i8] c"[3]Any\00" +@tn.str.244 = private constant [8 x i8] c"*[3]Any\00" +@tn.str.245 = private constant [8 x i8] c"*string\00" +@tn.str.246 = private constant [6 x i8] c"*bool\00" +@tn.str.247 = private constant [7 x i8] c"[2]Any\00" +@tn.str.248 = private constant [8 x i8] c"*[2]Any\00" +@tn.str.249 = private constant [7 x i8] c"[5]Any\00" +@tn.str.250 = private constant [8 x i8] c"*[5]Any\00" +@tn.str.251 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.252 = private constant [5 x i8] c"*f64\00" +@tn.str.253 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.254 = private constant [11 x i8] c"*Allocator\00" +@tn.str.255 = private constant [9 x i8] c"*Context\00" +@tn.str.256 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.257 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.258 = private constant [8 x i8] c"*Member\00" +@tn.str.259 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.260 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.261 = private constant [9 x i8] c"*Command\00" +@tn.str.262 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.263 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.264 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.265 = private constant [7 x i8] c"*Value\00" +@tn.str.266 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.267 = private constant [14 x i8] c"*Architecture\00" +@tn.str.268 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.269 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.270 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.271 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.272 = private constant [10 x i8] c"*[]string\00" +@tn.str.273 = private constant [6 x i8] c"*[]u8\00" +@tn.str.274 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.275 = private constant [11 x i8] c"*[]Command\00" +@tn.str.276 = private constant [6 x i8] c"**GPA\00" +@tn.str.277 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.278 = private constant [8 x i8] c"**Arena\00" +@tn.str.279 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.280 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.281 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.282 = private constant [7 x i8] c"**File\00" +@tn.str.283 = private constant [5 x i8] c"**u8\00" +@tn.str.284 = private constant [6 x i8] c"**s32\00" +@tn.str.285 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.286 = private constant [6 x i8] c"**u32\00" +@tn.str.287 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.288 = private constant [8 x i8] c"**Array\00" +@tn.str.289 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.290 = private constant [9 x i8] c"**Object\00" +@tn.str.291 = private constant [7 x i8] c"**Sink\00" +@tn.str.292 = private constant [9 x i8] c"**Parser\00" +@tn.str.293 = private constant [6 x i8] c"**s64\00" +@tn.str.294 = private constant [9 x i8] c"**Parsed\00" +@tn.str.295 = private constant [7 x i8] c"**Diag\00" +@tn.str.296 = private constant [9 x i8] c"**Sha256\00" +@tn.str.297 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.298 = private constant [8 x i8] c"***void\00" +@tn.str.299 = private constant [6 x i8] c"**Any\00" +@tn.str.300 = private constant [8 x i8] c"**[]Any\00" +@tn.str.301 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.302 = private constant [9 x i8] c"**[3]Any\00" +@tn.str.303 = private constant [9 x i8] c"**string\00" +@tn.str.304 = private constant [7 x i8] c"**bool\00" +@tn.str.305 = private constant [9 x i8] c"**[2]Any\00" +@tn.str.306 = private constant [9 x i8] c"**[5]Any\00" +@tn.str.307 = private constant [7 x i8] c"*?File\00" +@tn.str.308 = private constant [9 x i8] c"*?string\00" +@tn.str.309 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.310 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [168 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 12 }, { ptr, i64 } { ptr @tn.str.237, i64 6 }, { ptr, i64 } { ptr @tn.str.238, i64 5 }, { ptr, i64 } { ptr @tn.str.239, i64 4 }, { ptr, i64 } { ptr @tn.str.240, i64 6 }, { ptr, i64 } { ptr @tn.str.241, i64 6 }, { ptr, i64 } { ptr @tn.str.242, i64 7 }, { ptr, i64 } { ptr @tn.str.243, i64 6 }, { ptr, i64 } { ptr @tn.str.244, i64 7 }, { ptr, i64 } { ptr @tn.str.245, i64 7 }, { ptr, i64 } { ptr @tn.str.246, i64 5 }, { ptr, i64 } { ptr @tn.str.247, i64 6 }, { ptr, i64 } { ptr @tn.str.248, i64 7 }, { ptr, i64 } { ptr @tn.str.249, i64 6 }, { ptr, i64 } { ptr @tn.str.250, i64 7 }, { ptr, i64 } { ptr @tn.str.251, i64 7 }, { ptr, i64 } { ptr @tn.str.252, i64 4 }, { ptr, i64 } { ptr @tn.str.253, i64 16 }, { ptr, i64 } { ptr @tn.str.254, i64 10 }, { ptr, i64 } { ptr @tn.str.255, i64 8 }, { ptr, i64 } { ptr @tn.str.256, i64 11 }, { ptr, i64 } { ptr @tn.str.257, i64 14 }, { ptr, i64 } { ptr @tn.str.258, i64 7 }, { ptr, i64 } { ptr @tn.str.259, i64 13 }, { ptr, i64 } { ptr @tn.str.260, i64 9 }, { ptr, i64 } { ptr @tn.str.261, i64 8 }, { ptr, i64 } { ptr @tn.str.262, i64 10 }, { ptr, i64 } { ptr @tn.str.263, i64 9 }, { ptr, i64 } { ptr @tn.str.264, i64 9 }, { ptr, i64 } { ptr @tn.str.265, i64 6 }, { ptr, i64 } { ptr @tn.str.266, i64 16 }, { ptr, i64 } { ptr @tn.str.267, i64 13 }, { ptr, i64 } { ptr @tn.str.268, i64 14 }, { ptr, i64 } { ptr @tn.str.269, i64 7 }, { ptr, i64 } { ptr @tn.str.270, i64 7 }, { ptr, i64 } { ptr @tn.str.271, i64 8 }, { ptr, i64 } { ptr @tn.str.272, i64 9 }, { ptr, i64 } { ptr @tn.str.273, i64 5 }, { ptr, i64 } { ptr @tn.str.274, i64 11 }, { ptr, i64 } { ptr @tn.str.275, i64 10 }, { ptr, i64 } { ptr @tn.str.276, i64 5 }, { ptr, i64 } { ptr @tn.str.277, i64 12 }, { ptr, i64 } { ptr @tn.str.278, i64 7 }, { ptr, i64 } { ptr @tn.str.279, i64 6 }, { ptr, i64 } { ptr @tn.str.280, i64 10 }, { ptr, i64 } { ptr @tn.str.281, i64 19 }, { ptr, i64 } { ptr @tn.str.282, i64 6 }, { ptr, i64 } { ptr @tn.str.283, i64 4 }, { ptr, i64 } { ptr @tn.str.284, i64 5 }, { ptr, i64 } { ptr @tn.str.285, i64 10 }, { ptr, i64 } { ptr @tn.str.286, i64 5 }, { ptr, i64 } { ptr @tn.str.287, i64 9 }, { ptr, i64 } { ptr @tn.str.288, i64 7 }, { ptr, i64 } { ptr @tn.str.289, i64 10 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 6 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 5 }, { ptr, i64 } { ptr @tn.str.294, i64 8 }, { ptr, i64 } { ptr @tn.str.295, i64 6 }, { ptr, i64 } { ptr @tn.str.296, i64 8 }, { ptr, i64 } { ptr @tn.str.297, i64 13 }, { ptr, i64 } { ptr @tn.str.298, i64 7 }, { ptr, i64 } { ptr @tn.str.299, i64 5 }, { ptr, i64 } { ptr @tn.str.300, i64 7 }, { ptr, i64 } { ptr @tn.str.301, i64 8 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }, { ptr, i64 } { ptr @tn.str.303, i64 8 }, { ptr, i64 } { ptr @tn.str.304, i64 6 }, { ptr, i64 } { ptr @tn.str.305, i64 8 }, { ptr, i64 } { ptr @tn.str.306, i64 8 }, { ptr, i64 } { ptr @tn.str.307, i64 6 }, { ptr, i64 } { ptr @tn.str.308, i64 8 }, { ptr, i64 } { ptr @tn.str.309, i64 15 }, { ptr, i64 } { ptr @tn.str.310, i64 8 }] +@str.311 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.312 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.313 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.314 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.315 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.316 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.317 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.318 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.319 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.320 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.321 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.322 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.323 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.324 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.325 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.326 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.327 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.328 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.329 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.330 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.331 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.332 = private unnamed_addr constant [2 x i8] c"x\00", align 1 +@str.333 = private unnamed_addr constant [16 x i8] c"{} {} {} {} {}\0A\00", align 1 +@str.334 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.335 = private unnamed_addr constant [16 x i8] c"{} {} {} {} {}\0A\00", align 1 +@str.336 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.337 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.338 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.339 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.131 = private constant [5 x i8] c"line\00" -@fld.str.132 = private constant [4 x i8] c"col\00" -@fld.str.133 = 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.131, i64 4 }, { ptr, i64 } { ptr @fld.str.132, i64 3 }, { ptr, i64 } { ptr @fld.str.133, i64 4 }] -@str.134 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.135 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.136 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.137 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.139 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.140 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.141 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.142 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.144 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.145 = private constant [12 x i8] c"alloc_count\00" -@field_names.146 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.145, i64 11 }] -@str.147 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.148 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.149 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.151 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.152 = private constant [5 x i8] c"next\00" -@fld.str.153 = private constant [4 x i8] c"cap\00" -@field_names.154 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.152, i64 4 }, { ptr, i64 } { ptr @fld.str.153, i64 3 }] -@str.155 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.156 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.157 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.158 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.159 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.160 = private constant [4 x i8] c"ctx\00" -@fld.str.161 = private constant [6 x i8] c"alloc\00" -@fld.str.162 = private constant [8 x i8] c"dealloc\00" -@field_names.163 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.160, i64 3 }, { ptr, i64 } { ptr @fld.str.161, i64 5 }, { ptr, i64 } { ptr @fld.str.162, i64 7 }] -@str.164 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.165 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.166 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.167 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.168 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.169 = private constant [6 x i8] c"first\00" -@fld.str.170 = private constant [10 x i8] c"end_index\00" -@fld.str.171 = private constant [7 x i8] c"parent\00" -@field_names.172 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.169, i64 5 }, { ptr, i64 } { ptr @fld.str.170, i64 9 }, { ptr, i64 } { ptr @fld.str.171, i64 6 }] -@str.173 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.174 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.175 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.176 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.177 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.178 = private constant [4 x i8] c"buf\00" -@fld.str.179 = private constant [4 x i8] c"len\00" -@fld.str.180 = private constant [4 x i8] c"pos\00" -@field_names.181 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.178, i64 3 }, { ptr, i64 } { ptr @fld.str.179, i64 3 }, { ptr, i64 } { ptr @fld.str.180, i64 3 }] -@str.182 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.183 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.184 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.185 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.186 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.187 = private constant [7 x i8] c"parent\00" -@fld.str.188 = private constant [12 x i8] c"alloc_count\00" -@fld.str.189 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.190 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.191 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.187, i64 6 }, { ptr, i64 } { ptr @fld.str.188, i64 11 }, { ptr, i64 } { ptr @fld.str.189, i64 13 }, { ptr, i64 } { ptr @fld.str.190, i64 17 }] -@str.192 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.193 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.194 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.195 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.196 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.197 = private constant [10 x i8] c"allocator\00" -@fld.str.198 = private constant [5 x i8] c"data\00" -@field_names.199 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.197, i64 9 }, { ptr, i64 } { ptr @fld.str.198, i64 4 }] -@str.200 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.201 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.203 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.204 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.205 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.206 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.207 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.209 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.210 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.212 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.213 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.214 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.215 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.216 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.217 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.218 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.219 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.220 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.221 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.222 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.223 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.224 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.225 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.226 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.227 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.228 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.229 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.230 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.231 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.232 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.233 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.234 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.235 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.236 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.237 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.238 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.239 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.240 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.241 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.242 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.243 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.244 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.245 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.246 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.247 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.248 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.249 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.250 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.251 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.252 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.253 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.254 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.255 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.256 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.257 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.258 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.259 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.260 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.261 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.262 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.263 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.264 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.265 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 -@str.266 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.267 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.268 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.269 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.270 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.271 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.272 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.273 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.274 = private unnamed_addr constant [8 x i8] c"*[2]Any\00", align 1 -@str.275 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.276 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.277 = private unnamed_addr constant [8 x i8] c"*[5]Any\00", align 1 -@str.278 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.279 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.280 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.281 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.340 = private constant [5 x i8] c"line\00" +@fld.str.341 = private constant [4 x i8] c"col\00" +@fld.str.342 = 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.340, i64 4 }, { ptr, i64 } { ptr @fld.str.341, i64 3 }, { ptr, i64 } { ptr @fld.str.342, i64 4 }] +@str.343 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.344 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.345 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.346 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.347 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.348 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.349 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.350 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.353 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.354 = private constant [12 x i8] c"alloc_count\00" +@field_names.355 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.354, i64 11 }] +@str.356 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.357 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.358 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.360 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.361 = private constant [5 x i8] c"next\00" +@fld.str.362 = private constant [4 x i8] c"cap\00" +@field_names.363 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.361, i64 4 }, { ptr, i64 } { ptr @fld.str.362, i64 3 }] +@str.364 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.365 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.366 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.367 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.368 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.369 = private constant [4 x i8] c"ctx\00" +@fld.str.370 = private constant [6 x i8] c"alloc\00" +@fld.str.371 = private constant [8 x i8] c"dealloc\00" +@field_names.372 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.369, i64 3 }, { ptr, i64 } { ptr @fld.str.370, i64 5 }, { ptr, i64 } { ptr @fld.str.371, i64 7 }] +@str.373 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.374 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.375 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.376 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.377 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.378 = private constant [6 x i8] c"first\00" +@fld.str.379 = private constant [10 x i8] c"end_index\00" +@fld.str.380 = private constant [7 x i8] c"parent\00" +@field_names.381 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.378, i64 5 }, { ptr, i64 } { ptr @fld.str.379, i64 9 }, { ptr, i64 } { ptr @fld.str.380, i64 6 }] +@str.382 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.383 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.384 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.385 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.386 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.387 = private constant [4 x i8] c"buf\00" +@fld.str.388 = private constant [4 x i8] c"len\00" +@fld.str.389 = private constant [4 x i8] c"pos\00" +@field_names.390 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.387, i64 3 }, { ptr, i64 } { ptr @fld.str.388, i64 3 }, { ptr, i64 } { ptr @fld.str.389, i64 3 }] +@str.391 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.392 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.393 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.394 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.395 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.396 = private constant [7 x i8] c"parent\00" +@fld.str.397 = private constant [12 x i8] c"alloc_count\00" +@fld.str.398 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.399 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.400 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.396, i64 6 }, { ptr, i64 } { ptr @fld.str.397, i64 11 }, { ptr, i64 } { ptr @fld.str.398, i64 13 }, { ptr, i64 } { ptr @fld.str.399, i64 17 }] +@str.401 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.402 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.403 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.404 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.405 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.406 = private constant [10 x i8] c"allocator\00" +@fld.str.407 = private constant [5 x i8] c"data\00" +@field_names.408 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.406, i64 9 }, { ptr, i64 } { ptr @fld.str.407, i64 4 }] +@str.409 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.410 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.412 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.413 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.414 = private constant [3 x i8] c"fd\00" +@field_names.415 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.414, i64 2 }] +@str.416 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.417 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.420 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.421 = private constant [5 x i8] c"file\00" +@fld.str.422 = private constant [5 x i8] c"line\00" +@fld.str.423 = private constant [4 x i8] c"col\00" +@fld.str.424 = private constant [5 x i8] c"func\00" +@fld.str.425 = private constant [10 x i8] c"line_text\00" +@field_names.426 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.421, i64 4 }, { ptr, i64 } { ptr @fld.str.422, i64 4 }, { ptr, i64 } { ptr @fld.str.423, i64 3 }, { ptr, i64 } { ptr @fld.str.424, i64 4 }, { ptr, i64 } { ptr @fld.str.425, i64 9 }] +@str.427 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.428 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.429 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.430 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.431 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.432 = private constant [10 x i8] c"exit_code\00" +@fld.str.433 = private constant [7 x i8] c"stdout\00" +@field_names.434 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.432, i64 9 }, { ptr, i64 } { ptr @fld.str.433, i64 6 }] +@str.435 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.436 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.437 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.438 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.439 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.440 = private constant [8 x i8] c"sin_len\00" +@fld.str.441 = private constant [11 x i8] c"sin_family\00" +@fld.str.442 = private constant [9 x i8] c"sin_port\00" +@fld.str.443 = private constant [9 x i8] c"sin_addr\00" +@fld.str.444 = private constant [9 x i8] c"sin_zero\00" +@field_names.445 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.440, i64 7 }, { ptr, i64 } { ptr @fld.str.441, i64 10 }, { ptr, i64 } { ptr @fld.str.442, i64 8 }, { ptr, i64 } { ptr @fld.str.443, i64 8 }, { ptr, i64 } { ptr @fld.str.444, i64 8 }] +@str.446 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.447 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.448 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.449 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.450 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.451 = private constant [6 x i8] c"items\00" +@fld.str.452 = private constant [4 x i8] c"len\00" +@fld.str.453 = private constant [4 x i8] c"cap\00" +@field_names.454 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.451, i64 5 }, { ptr, i64 } { ptr @fld.str.452, i64 3 }, { ptr, i64 } { ptr @fld.str.453, i64 3 }] +@str.455 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.456 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.457 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.458 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.459 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.460 = private constant [6 x i8] c"items\00" +@fld.str.461 = private constant [4 x i8] c"len\00" +@fld.str.462 = private constant [4 x i8] c"cap\00" +@field_names.463 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.460, i64 5 }, { ptr, i64 } { ptr @fld.str.461, i64 3 }, { ptr, i64 } { ptr @fld.str.462, i64 3 }] +@str.464 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.465 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.466 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.467 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.468 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.469 = private constant [4 x i8] c"key\00" +@fld.str.470 = private constant [4 x i8] c"val\00" +@field_names.471 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.469, i64 3 }, { ptr, i64 } { ptr @fld.str.470, i64 3 }] +@str.472 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.473 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.474 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.475 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.476 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.477 = private constant [4 x i8] c"dst\00" +@fld.str.478 = private constant [4 x i8] c"pos\00" +@fld.str.479 = private constant [5 x i8] c"file\00" +@field_names.480 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.477, i64 3 }, { ptr, i64 } { ptr @fld.str.478, i64 3 }, { ptr, i64 } { ptr @fld.str.479, i64 4 }] +@str.481 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.482 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.483 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.484 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.485 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.486 = private constant [4 x i8] c"src\00" +@fld.str.487 = private constant [4 x i8] c"pos\00" +@fld.str.488 = private constant [6 x i8] c"alloc\00" +@field_names.489 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.486, i64 3 }, { ptr, i64 } { ptr @fld.str.487, i64 3 }, { ptr, i64 } { ptr @fld.str.488, i64 5 }] +@str.490 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.491 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.493 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.494 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.495 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.496 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.497 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.498 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.499 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.500 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.501 = private constant [5 x i8] c"name\00" +@fld.str.502 = private constant [12 x i8] c"takes_value\00" +@fld.str.503 = private constant [9 x i8] c"required\00" +@field_names.504 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.501, i64 4 }, { ptr, i64 } { ptr @fld.str.502, i64 11 }, { ptr, i64 } { ptr @fld.str.503, i64 8 }] +@str.505 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.506 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.507 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.508 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.509 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.510 = private constant [6 x i8] c"group\00" +@fld.str.511 = private constant [8 x i8] c"command\00" +@fld.str.512 = private constant [6 x i8] c"flags\00" +@field_names.513 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.510, i64 5 }, { ptr, i64 } { ptr @fld.str.511, i64 7 }, { ptr, i64 } { ptr @fld.str.512, i64 5 }] +@str.514 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.515 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.516 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.517 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.518 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.519 = private constant [4 x i8] c"set\00" +@fld.str.520 = private constant [6 x i8] c"value\00" +@field_names.521 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.519, i64 3 }, { ptr, i64 } { ptr @fld.str.520, i64 5 }] +@str.522 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.523 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.524 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.525 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.526 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.527 = private constant [6 x i8] c"index\00" +@fld.str.528 = private constant [6 x i8] c"token\00" +@field_names.529 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.527, i64 5 }, { ptr, i64 } { ptr @fld.str.528, i64 5 }] +@str.530 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.531 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.532 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.533 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.534 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.535 = private constant [6 x i8] c"group\00" +@fld.str.536 = private constant [8 x i8] c"command\00" +@fld.str.537 = private constant [10 x i8] c"cmd_index\00" +@fld.str.538 = private constant [5 x i8] c"json\00" +@fld.str.539 = private constant [5 x i8] c"rest\00" +@fld.str.540 = private constant [5 x i8] c"spec\00" +@fld.str.541 = private constant [7 x i8] c"values\00" +@field_names.542 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.535, i64 5 }, { ptr, i64 } { ptr @fld.str.536, i64 7 }, { ptr, i64 } { ptr @fld.str.537, i64 9 }, { ptr, i64 } { ptr @fld.str.538, i64 4 }, { ptr, i64 } { ptr @fld.str.539, i64 4 }, { ptr, i64 } { ptr @fld.str.540, i64 4 }, { ptr, i64 } { ptr @fld.str.541, i64 6 }] +@str.543 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.544 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.545 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.546 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.547 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.548 = private constant [2 x i8] c"h\00" +@fld.str.549 = private constant [4 x i8] c"buf\00" +@fld.str.550 = private constant [8 x i8] c"buf_len\00" +@fld.str.551 = private constant [10 x i8] c"total_len\00" +@field_names.552 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.548, i64 1 }, { ptr, i64 } { ptr @fld.str.549, i64 3 }, { ptr, i64 } { ptr @fld.str.550, i64 7 }, { ptr, i64 } { ptr @fld.str.551, i64 9 }] +@str.553 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.554 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.555 = private constant [5 x i8] c"read\00" +@fld.str.556 = private constant [6 x i8] c"write\00" +@fld.str.557 = private constant [7 x i8] c"append\00" +@fld.str.558 = private constant [11 x i8] c"read_write\00" +@field_names.559 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.555, i64 4 }, { ptr, i64 } { ptr @fld.str.556, i64 5 }, { ptr, i64 } { ptr @fld.str.557, i64 6 }, { ptr, i64 } { ptr @fld.str.558, i64 10 }] +@str.560 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.562 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.563 = private constant [4 x i8] c"set\00" +@fld.str.564 = private constant [8 x i8] c"current\00" +@fld.str.565 = private constant [4 x i8] c"end\00" +@field_names.566 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.563, i64 3 }, { ptr, i64 } { ptr @fld.str.564, i64 7 }, { ptr, i64 } { ptr @fld.str.565, i64 3 }] +@str.567 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.570 = private constant [6 x i8] c"null_\00" +@fld.str.571 = private constant [6 x i8] c"bool_\00" +@fld.str.572 = private constant [5 x i8] c"int_\00" +@fld.str.573 = private constant [4 x i8] c"str\00" +@fld.str.574 = private constant [6 x i8] c"array\00" +@fld.str.575 = private constant [7 x i8] c"object\00" +@field_names.576 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.570, i64 5 }, { ptr, i64 } { ptr @fld.str.571, i64 5 }, { ptr, i64 } { ptr @fld.str.572, i64 4 }, { ptr, i64 } { ptr @fld.str.573, i64 3 }, { ptr, i64 } { ptr @fld.str.574, i64 5 }, { ptr, i64 } { ptr @fld.str.575, i64 6 }] +@str.577 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.578 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.579 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.580 = private constant [6 x i8] c"macos\00" +@fld.str.581 = private constant [6 x i8] c"linux\00" +@fld.str.582 = private constant [8 x i8] c"windows\00" +@fld.str.583 = private constant [5 x i8] c"wasm\00" +@fld.str.584 = private constant [4 x i8] c"ios\00" +@fld.str.585 = private constant [8 x i8] c"android\00" +@fld.str.586 = private constant [8 x i8] c"unknown\00" +@field_names.587 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.580, i64 5 }, { ptr, i64 } { ptr @fld.str.581, i64 5 }, { ptr, i64 } { ptr @fld.str.582, i64 7 }, { ptr, i64 } { ptr @fld.str.583, i64 4 }, { ptr, i64 } { ptr @fld.str.584, i64 3 }, { ptr, i64 } { ptr @fld.str.585, i64 7 }, { ptr, i64 } { ptr @fld.str.586, i64 7 }] +@str.588 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.589 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.590 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.591 = private constant [8 x i8] c"aarch64\00" +@fld.str.592 = private constant [7 x i8] c"x86_64\00" +@fld.str.593 = private constant [7 x i8] c"wasm32\00" +@fld.str.594 = private constant [7 x i8] c"wasm64\00" +@fld.str.595 = private constant [8 x i8] c"unknown\00" +@field_names.596 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.591, i64 7 }, { ptr, i64 } { ptr @fld.str.592, i64 6 }, { ptr, i64 } { ptr @fld.str.593, i64 6 }, { ptr, i64 } { ptr @fld.str.594, i64 6 }, { ptr, i64 } { ptr @fld.str.595, i64 7 }] +@str.597 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.600 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.601 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.602 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.603 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.604 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.607 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.609 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.610 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.612 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.613 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.616 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.618 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.619 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.622 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.624 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.625 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.627 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.628 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.629 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.630 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.631 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.632 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.633 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.634 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.635 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.636 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.637 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.638 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.639 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.640 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.641 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.642 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.643 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.644 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.645 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.646 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.647 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.648 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.649 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.650 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.651 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.652 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.653 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.654 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.655 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.656 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.657 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.658 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.659 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.660 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.661 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.662 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.663 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.664 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.665 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.666 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.667 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.668 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.669 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.670 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.671 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.672 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.673 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.674 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.675 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.676 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.677 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.678 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.679 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.680 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.681 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.682 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.683 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.684 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.685 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.686 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.687 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.688 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.689 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.690 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.691 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.692 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.693 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.694 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.695 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.696 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.697 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.698 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.699 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.700 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.701 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.702 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.703 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.704 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.705 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.706 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.707 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.708 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.709 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.710 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.711 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.712 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.713 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.714 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.715 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.716 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.718 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.719 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.720 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.721 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.722 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.723 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.724 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.725 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.726 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 +@str.727 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.728 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.729 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.730 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.731 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.732 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.733 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.734 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.735 = private unnamed_addr constant [8 x i8] c"*[2]Any\00", align 1 +@str.736 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.737 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.738 = private unnamed_addr constant [8 x i8] c"*[5]Any\00", align 1 +@str.739 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.740 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.741 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.742 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.743 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -498,7 +858,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -625,7 +985,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -794,38 +1154,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.223 + br label %while.hdr.391 -while.hdr.223: ; preds = %if.merge.228, %entry +while.hdr.391: ; preds = %if.merge.396, %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.224, label %while.exit.225 + br i1 %icmp, label %while.body.392, label %while.exit.393 -while.body.224: ; preds = %while.hdr.223 +while.body.392: ; preds = %while.hdr.391 %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.226, label %if.else.227 + br i1 %icmpN, label %if.then.394, label %if.else.395 -while.exit.225: ; preds = %while.hdr.223 +while.exit.393: ; preds = %while.hdr.391 ret void -if.then.226: ; preds = %while.body.224 +if.then.394: ; preds = %while.body.392 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.228 + br label %if.merge.396 -if.else.227: ; preds = %while.body.224 +if.else.395: ; preds = %while.body.392 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.228 + br label %if.merge.396 -if.merge.228: ; preds = %if.else.227, %if.then.226 - %bp = phi i64 [ %addN, %if.then.226 ], [ %addN, %if.else.227 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi i64 [ %addN, %if.then.394 ], [ %addN, %if.else.395 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -838,7 +1198,7 @@ if.merge.228: ; preds = %if.else.227, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.223 + br label %while.hdr.391 } ; Function Attrs: nounwind @@ -956,12 +1316,12 @@ entry: 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.221, label %if.merge.222 + br i1 %icmp, label %if.then.389, label %if.merge.390 -if.then.221: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.389: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.222: ; preds = %entry +if.merge.390: ; 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 @@ -992,14 +1352,14 @@ if.merge.222: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.229 + br label %while.hdr.397 -while.hdr.229: ; preds = %if.merge.233, %if.merge.222 +while.hdr.397: ; preds = %if.merge.401, %if.merge.390 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.230, label %while.exit.231 + br i1 %icmpN, label %while.body.398, label %while.exit.399 -while.body.230: ; preds = %while.hdr.229 +while.body.398: ; preds = %while.hdr.397 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1007,9 +1367,9 @@ while.body.230: ; preds = %while.hdr.229 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.232, label %if.merge.233 + br i1 %icmpN, label %if.then.400, label %if.merge.401 -while.exit.231: ; preds = %if.then.232, %while.hdr.229 +while.exit.399: ; preds = %if.then.400, %while.hdr.397 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1017,14 +1377,14 @@ while.exit.231: ; preds = %if.then.232, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.232: ; preds = %while.body.230 - br label %while.exit.231 +if.then.400: ; preds = %while.body.398 + br label %while.exit.399 -if.merge.233: ; preds = %while.body.230 +if.merge.401: ; preds = %while.body.398 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.229 + br label %while.hdr.397 } ; Function Attrs: nounwind @@ -1102,11 +1462,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1139,13 +1502,44 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 + i64 39, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 43, label %match.arm.47 - i64 45, label %match.arm.47 - i64 49, label %match.arm.47 - i64 51, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 98, label %match.arm.47 + i64 100, label %match.arm.47 + i64 104, label %match.arm.47 + i64 106, label %match.arm.47 i64 36, label %match.arm.48 - i64 40, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 95, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1154,27 +1548,44 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 37, label %match.arm.49 - i64 38, label %match.arm.49 - i64 39, label %match.arm.49 - i64 41, label %match.arm.49 - i64 42, label %match.arm.49 + i64 40, label %match.arm.49 i64 44, label %match.arm.49 - i64 46, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 + i64 49, label %match.arm.49 i64 50, label %match.arm.49 - i64 52, label %match.arm.49 - i64 53, label %match.arm.49 + i64 56, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 93, label %match.arm.49 + i64 94, label %match.arm.49 + i64 96, label %match.arm.49 + i64 97, label %match.arm.49 + i64 99, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 103, label %match.arm.49 + i64 105, label %match.arm.49 + i64 107, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.196, %dispatch.merge.182, %dispatch.merge.150, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.498, %dispatch.merge.351, %dispatch.merge.319, %dispatch.merge.263, %dispatch.merge.246, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1183,7 +1594,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [78 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [168 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1211,7 +1622,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1225,75 +1636,137 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.247 [ + i64 37, label %dispatch.case.248 + i64 38, label %dispatch.case.249 + i64 54, label %dispatch.case.250 + i64 70, label %dispatch.case.251 + i64 71, label %dispatch.case.252 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.151 [ - i64 35, label %dispatch.case.152 - i64 43, label %dispatch.case.153 - i64 45, label %dispatch.case.154 - i64 49, label %dispatch.case.155 - i64 51, label %dispatch.case.156 + switch i64 %ua.raw29, label %dispatch.default.264 [ + i64 35, label %dispatch.case.265 + i64 81, label %dispatch.case.266 + i64 87, label %dispatch.case.267 + i64 88, label %dispatch.case.268 + i64 92, label %dispatch.case.269 + i64 98, label %dispatch.case.270 + i64 100, label %dispatch.case.271 + i64 104, label %dispatch.case.272 + i64 106, label %dispatch.case.273 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.183 [ - i64 36, label %dispatch.case.184 - i64 40, label %dispatch.case.185 + switch i64 %ua.raw33, label %dispatch.default.320 [ + i64 36, label %dispatch.case.321 + i64 60, label %dispatch.case.322 + i64 77, label %dispatch.case.323 + i64 85, label %dispatch.case.324 + i64 95, label %dispatch.case.325 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.197 [ - i64 18, label %dispatch.case.198 - i64 21, label %dispatch.case.199 - i64 23, label %dispatch.case.200 - i64 25, label %dispatch.case.201 - i64 28, label %dispatch.case.202 - i64 29, label %dispatch.case.203 - i64 31, label %dispatch.case.204 - i64 33, label %dispatch.case.205 - i64 37, label %dispatch.case.206 - i64 38, label %dispatch.case.207 - i64 39, label %dispatch.case.208 - i64 41, label %dispatch.case.209 - i64 42, label %dispatch.case.210 - i64 44, label %dispatch.case.211 - i64 46, label %dispatch.case.212 - i64 47, label %dispatch.case.213 - i64 48, label %dispatch.case.214 - i64 50, label %dispatch.case.215 - i64 52, label %dispatch.case.216 - i64 53, label %dispatch.case.217 + switch i64 %ua.raw37, label %dispatch.default.352 [ + i64 18, label %dispatch.case.353 + i64 21, label %dispatch.case.354 + i64 23, label %dispatch.case.355 + i64 25, label %dispatch.case.356 + i64 28, label %dispatch.case.357 + i64 29, label %dispatch.case.358 + i64 31, label %dispatch.case.359 + i64 33, label %dispatch.case.360 + i64 40, label %dispatch.case.361 + i64 44, label %dispatch.case.362 + i64 47, label %dispatch.case.363 + i64 49, label %dispatch.case.364 + i64 50, label %dispatch.case.365 + i64 56, label %dispatch.case.366 + i64 57, label %dispatch.case.367 + i64 58, label %dispatch.case.368 + i64 59, label %dispatch.case.369 + i64 62, label %dispatch.case.370 + i64 67, label %dispatch.case.371 + i64 74, label %dispatch.case.372 + i64 83, label %dispatch.case.373 + i64 86, label %dispatch.case.374 + i64 90, label %dispatch.case.375 + i64 93, label %dispatch.case.376 + i64 94, label %dispatch.case.377 + i64 96, label %dispatch.case.378 + i64 97, label %dispatch.case.379 + i64 99, label %dispatch.case.380 + i64 101, label %dispatch.case.381 + i64 102, label %dispatch.case.382 + i64 103, label %dispatch.case.383 + i64 105, label %dispatch.case.384 + i64 107, label %dispatch.case.385 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.499 [ + i64 41, label %dispatch.case.500 + i64 42, label %dispatch.case.501 + i64 46, label %dispatch.case.502 + i64 91, label %dispatch.case.503 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [78 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [168 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1303,15 +1776,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1319,16 +1792,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1338,309 +1811,666 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.104, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.311, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.150: ; preds = %dispatch.case.156, %dispatch.case.155, %dispatch.case.154, %dispatch.case.153, %dispatch.case.152, %dispatch.default.151 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.37 - -dispatch.default.151: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.105, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.150 - -dispatch.case.152: ; preds = %match.arm.47 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 - -dispatch.case.153: ; preds = %match.arm.47 - %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr - %ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 - -dispatch.case.154: ; preds = %match.arm.47 - %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr - %ua.load94 = load [3 x { i64, i64 }], ptr %ua.ptr93, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load94) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 - -dispatch.case.155: ; preds = %match.arm.47 +dispatch.case.105: ; preds = %match.arm.43 %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr - %ua.load98 = load [2 x { i64, i64 }], ptr %ua.ptr97, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load98) + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.94 -dispatch.case.156: ; preds = %match.arm.47 +dispatch.case.106: ; preds = %match.arm.43 %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr - %ua.load102 = load [5 x { i64, i64 }], ptr %ua.ptr101, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_5_Any(ptr %0, [5 x { i64, i64 }] %ua.load102) + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.94 -dispatch.merge.182: ; preds = %dispatch.case.185, %dispatch.case.184, %dispatch.default.183 +dispatch.case.107: ; preds = %match.arm.43 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.246: ; preds = %dispatch.case.252, %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.default.247 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.183: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.106, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.182 +dispatch.default.247: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.312, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.246 -dispatch.case.184: ; preds = %match.arm.48 - %ua.raw105 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr106 = inttoptr i64 %ua.raw105 to ptr - %ua.load107 = load { ptr, i64 }, ptr %ua.ptr106, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load107) +dispatch.case.248: ; preds = %match.arm.44 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.182 + br label %dispatch.merge.246 -dispatch.case.185: ; preds = %match.arm.48 - %ua.raw109 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr110 = inttoptr i64 %ua.raw109 to ptr - %ua.load111 = load { ptr, i64 }, ptr %ua.ptr110, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load111) +dispatch.case.249: ; preds = %match.arm.44 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.182 + br label %dispatch.merge.246 -dispatch.merge.196: ; preds = %dispatch.case.217, %dispatch.case.216, %dispatch.case.215, %dispatch.case.214, %dispatch.case.213, %dispatch.case.212, %dispatch.case.211, %dispatch.case.210, %dispatch.case.209, %dispatch.case.208, %dispatch.case.207, %dispatch.case.206, %dispatch.case.205, %dispatch.case.204, %dispatch.case.203, %dispatch.case.202, %dispatch.case.201, %dispatch.case.200, %dispatch.case.199, %dispatch.case.198, %dispatch.default.197 +dispatch.case.250: ; preds = %match.arm.44 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.251: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.252: ; preds = %match.arm.44 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.merge.263: ; preds = %dispatch.case.273, %dispatch.case.272, %dispatch.case.271, %dispatch.case.270, %dispatch.case.269, %dispatch.case.268, %dispatch.case.267, %dispatch.case.266, %dispatch.case.265, %dispatch.default.264 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.197: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.107, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.196 +dispatch.default.264: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.313, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.263 -dispatch.case.198: ; preds = %match.arm.49 - %ua.raw114 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw114 to ptr +dispatch.case.265: ; preds = %match.arm.47 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.266: ; preds = %match.arm.47 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.267: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.268: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.269: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.270: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.271: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [3 x { i64, i64 }], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.272: ; preds = %match.arm.47 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [2 x { i64, i64 }], ptr %ua.ptr203, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load204) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.273: ; preds = %match.arm.47 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [5 x { i64, i64 }], ptr %ua.ptr207, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_5_Any(ptr %0, [5 x { i64, i64 }] %ua.load208) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.merge.319: ; preds = %dispatch.case.325, %dispatch.case.324, %dispatch.case.323, %dispatch.case.322, %dispatch.case.321, %dispatch.default.320 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.320: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.314, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.case.321: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.case.322: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.case.323: ; preds = %match.arm.48 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.case.324: ; preds = %match.arm.48 + %ua.raw223 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr224 = inttoptr i64 %ua.raw223 to ptr + %ua.load225 = load { ptr, i64 }, ptr %ua.ptr224, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load225) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.case.325: ; preds = %match.arm.48 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.merge.351: ; preds = %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.default.352 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.352: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.315, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw232 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw232 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.199: ; preds = %match.arm.49 - %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 - %iNp117 = inttoptr i64 %ua.raw116 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp117) +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.200: ; preds = %match.arm.49 - %ua.raw119 = extractvalue { i64, i64 } %loadN, 1 - %iNp120 = inttoptr i64 %ua.raw119 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp120) +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.201: ; preds = %match.arm.49 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %iNp123 = inttoptr i64 %ua.raw122 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp123) +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.202: ; preds = %match.arm.49 - %ua.raw125 = extractvalue { i64, i64 } %loadN, 1 - %iNp126 = inttoptr i64 %ua.raw125 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp126) +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.203: ; preds = %match.arm.49 - %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 - %iNp129 = inttoptr i64 %ua.raw128 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp129) +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.204: ; preds = %match.arm.49 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp132 = inttoptr i64 %ua.raw131 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp132) +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.205: ; preds = %match.arm.49 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %iNp135 = inttoptr i64 %ua.raw134 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp135) +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.206: ; preds = %match.arm.49 - %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 - %iNp138 = inttoptr i64 %ua.raw137 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp138) +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.207: ; preds = %match.arm.49 - %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 - %iNp141 = inttoptr i64 %ua.raw140 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp141) +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.208: ; preds = %match.arm.49 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %iNp144 = inttoptr i64 %ua.raw143 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp144) +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.209: ; preds = %match.arm.49 - %ua.raw146 = extractvalue { i64, i64 } %loadN, 1 - %iNp147 = inttoptr i64 %ua.raw146 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp147) +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.210: ; preds = %match.arm.49 - %ua.raw149 = extractvalue { i64, i64 } %loadN, 1 - %iNp150 = inttoptr i64 %ua.raw149 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp150) +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.211: ; preds = %match.arm.49 - %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 - %iNp153 = inttoptr i64 %ua.raw152 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp153) +dispatch.case.366: ; preds = %match.arm.49 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.212: ; preds = %match.arm.49 - %ua.raw155 = extractvalue { i64, i64 } %loadN, 1 - %iNp156 = inttoptr i64 %ua.raw155 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp156) +dispatch.case.367: ; preds = %match.arm.49 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.213: ; preds = %match.arm.49 - %ua.raw158 = extractvalue { i64, i64 } %loadN, 1 - %iNp159 = inttoptr i64 %ua.raw158 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp159) +dispatch.case.368: ; preds = %match.arm.49 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp277) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.214: ; preds = %match.arm.49 - %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 - %iNp162 = inttoptr i64 %ua.raw161 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp162) +dispatch.case.369: ; preds = %match.arm.49 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp280) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.215: ; preds = %match.arm.49 - %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 - %iNp165 = inttoptr i64 %ua.raw164 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp165) +dispatch.case.370: ; preds = %match.arm.49 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp283) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.216: ; preds = %match.arm.49 - %ua.raw167 = extractvalue { i64, i64 } %loadN, 1 - %iNp168 = inttoptr i64 %ua.raw167 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_Any(ptr %0, ptr %iNp168) +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp286) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 -dispatch.case.217: ; preds = %match.arm.49 - %ua.raw170 = extractvalue { i64, i64 } %loadN, 1 - %iNp171 = inttoptr i64 %ua.raw170 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp171) +dispatch.case.372: ; preds = %match.arm.49 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp289) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.351 + +dispatch.case.373: ; preds = %match.arm.49 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.374: ; preds = %match.arm.49 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.375: ; preds = %match.arm.49 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.376: ; preds = %match.arm.49 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.377: ; preds = %match.arm.49 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.378: ; preds = %match.arm.49 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.379: ; preds = %match.arm.49 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.380: ; preds = %match.arm.49 + %ua.raw312 = extractvalue { i64, i64 } %loadN, 1 + %iNp313 = inttoptr i64 %ua.raw312 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp313) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.381: ; preds = %match.arm.49 + %ua.raw315 = extractvalue { i64, i64 } %loadN, 1 + %iNp316 = inttoptr i64 %ua.raw315 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp316) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.382: ; preds = %match.arm.49 + %ua.raw318 = extractvalue { i64, i64 } %loadN, 1 + %iNp319 = inttoptr i64 %ua.raw318 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.383: ; preds = %match.arm.49 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %iNp322 = inttoptr i64 %ua.raw321 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp322) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.384: ; preds = %match.arm.49 + %ua.raw324 = extractvalue { i64, i64 } %loadN, 1 + %iNp325 = inttoptr i64 %ua.raw324 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp325) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.385: ; preds = %match.arm.49 + %ua.raw327 = extractvalue { i64, i64 } %loadN, 1 + %iNp328 = inttoptr i64 %ua.raw327 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_5_Any(ptr %0, ptr %iNp328) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.merge.498: ; preds = %dispatch.case.503, %dispatch.case.502, %dispatch.case.501, %dispatch.case.500, %dispatch.default.499 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.499: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.316, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.498 + +dispatch.case.500: ; preds = %match.arm.50 + %ua.raw331 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr332 = inttoptr i64 %ua.raw331 to ptr + %ua.load333 = load { { i32 }, i1 }, ptr %ua.ptr332, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load333) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.498 + +dispatch.case.501: ; preds = %match.arm.50 + %ua.raw335 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr336 = inttoptr i64 %ua.raw335 to ptr + %ua.load337 = load { { ptr, i64 }, i1 }, ptr %ua.ptr336, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load337) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.498 + +dispatch.case.502: ; preds = %match.arm.50 + %ua.raw339 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr340 = inttoptr i64 %ua.raw339 to ptr + %ua.load341 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr340, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load341) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.498 + +dispatch.case.503: ; preds = %match.arm.50 + %ua.raw343 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr344 = inttoptr i64 %ua.raw343 to ptr + %ua.load345 = load { [64 x i8], i1 }, ptr %ua.ptr344, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load345) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.498 } ; Function Attrs: nounwind @@ -1649,7 +2479,7 @@ 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.108, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.317, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1745,7 +2575,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, 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 @@ -1753,7 +2583,7 @@ if.then.12: ; preds = %if.then.9 %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.110, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, 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 @@ -1763,13 +2593,13 @@ if.then.12: ; preds = %if.then.9 %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.111, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1777,7 +2607,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.113, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1791,7 +2621,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, 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 @@ -1799,7 +2629,7 @@ if.then.23: ; preds = %if.else.10 %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.115, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, 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 @@ -1810,7 +2640,7 @@ if.then.23: ; preds = %if.else.10 %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.116, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1867,7 +2697,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, 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 @@ -1875,7 +2705,7 @@ if.then.32: ; preds = %if.then.29 %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.118, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, 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 @@ -1886,7 +2716,7 @@ if.then.32: ; preds = %if.then.29 %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.119, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.328, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1906,7 +2736,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.329, 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 @@ -1914,7 +2744,7 @@ if.then.35: ; preds = %while.exit.2 %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.121, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.330, 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 @@ -1925,7 +2755,7 @@ if.then.35: ; preds = %while.exit.2 %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.122, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.331, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2002,6 +2832,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define i32 @main() #0 { entry: @@ -2017,7 +3585,7 @@ entry: %callN = call i64 @count__pack_s64_s64_s64(ptr @__sx_default_context, i64 1, i64 2, i64 3) %allocaN = alloca i64, align 8 store i64 %callN, ptr %allocaN, align 8 - %callN = call i64 @count__pack_string_bool(ptr @__sx_default_context, { ptr, i64 } { ptr @str.123, i64 1 }, i1 true) + %callN = call i64 @count__pack_string_bool(ptr @__sx_default_context, { ptr, i64 } { ptr @str.332, i64 1 }, i1 true) %allocaN = alloca i64, align 8 store i64 %callN, ptr %allocaN, align 8 %load = load i64, ptr %alloca, align 8 @@ -2137,7 +3705,7 @@ entry: define internal void @print__ct_s9aced10c9b3e5318__pack_s64_s64_s64_s64_s64(ptr %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.124, i64 15 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.333, i64 15 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -2176,7 +3744,7 @@ entry: %gepN = getelementptr inbounds { 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.125, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.334, i64 0 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ba.val25 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %loadN, 1 @@ -2242,7 +3810,7 @@ entry: ; 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.126, i64 15 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.335, i64 15 }) ret { ptr, i64 } %call } @@ -2253,35 +3821,35 @@ entry: %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.127, i64 15 }, { ptr, i64 } { ptr @str.128, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.336, i64 15 }, { ptr, i64 } { ptr @str.337, 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.105 + br label %while.hdr.121 -while.hdr.105: ; preds = %fv.merge, %entry +while.hdr.121: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.106, label %while.exit.107 + br i1 %icmp, label %while.body.122, label %while.exit.123 -while.body.106: ; preds = %while.hdr.105 +while.body.122: ; preds = %while.hdr.121 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.108, label %if.merge.109 + br i1 %icmpN, label %if.then.124, label %if.merge.125 -while.exit.107: ; preds = %while.hdr.105 +while.exit.123: ; preds = %while.hdr.121 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, i64 1 }) ret { ptr, i64 } %callN -if.then.108: ; preds = %while.body.106 +if.then.124: ; preds = %while.body.122 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.109 + br label %if.merge.125 -if.merge.109: ; preds = %if.then.108, %while.body.106 +if.merge.125: ; preds = %if.then.124, %while.body.122 %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 @@ -2289,7 +3857,7 @@ if.merge.109: ; preds = %if.then.108, %while %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.134, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, 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 @@ -2309,31 +3877,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.105 + br label %while.hdr.121 -fv.default: ; preds = %if.merge.109 +fv.default: ; preds = %if.merge.125 br label %fv.merge -fv.case: ; preds = %if.merge.109 +fv.case: ; preds = %if.merge.125 %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.109 +fv.case17: ; preds = %if.merge.125 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.109 +fv.case20: ; preds = %if.merge.125 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.109 +fv.case24: ; preds = %if.merge.125 %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 @@ -2346,43 +3914,43 @@ 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.135, i64 10 }, { ptr, i64 } { ptr @str.136, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.344, i64 10 }, { ptr, i64 } { ptr @str.345, 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.110 + br label %while.hdr.126 -while.hdr.110: ; preds = %if.merge.114, %entry +while.hdr.126: ; preds = %if.merge.130, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.111, label %while.exit.112 + br i1 %icmp, label %while.body.127, label %while.exit.128 -while.body.111: ; preds = %while.hdr.110 +while.body.127: ; preds = %while.hdr.126 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.113, label %if.merge.114 + br i1 %icmpN, label %if.then.129, label %if.merge.130 -while.exit.112: ; preds = %while.hdr.110 +while.exit.128: ; preds = %while.hdr.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 1 }) ret { ptr, i64 } %callN -if.then.113: ; preds = %while.body.111 +if.then.129: ; preds = %while.body.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.347, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.114 + br label %if.merge.130 -if.merge.114: ; preds = %if.then.113, %while.body.111 +if.merge.130: ; preds = %if.then.129, %while.body.127 %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.139, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.348, 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.140, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.349, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2393,7 +3961,7 @@ if.merge.114: ; preds = %if.then.113, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.110 + br label %while.hdr.126 } ; Function Attrs: nounwind @@ -2401,43 +3969,43 @@ 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.141, i64 3 }, { ptr, i64 } { ptr @str.142, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.350, i64 3 }, { ptr, i64 } { ptr @str.351, 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.115 + br label %while.hdr.131 -while.hdr.115: ; preds = %fv.merge, %entry +while.hdr.131: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.116: ; preds = %while.hdr.115 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.117: ; preds = %while.hdr.115 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.143, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.135 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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.146, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.355, 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.147, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.356, 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 @@ -2454,12 +4022,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.131 -fv.default: ; preds = %if.merge.119 +fv.default: ; preds = %if.merge.135 br label %fv.merge -fv.case: ; preds = %if.merge.119 +fv.case: ; preds = %if.merge.135 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2470,43 +4038,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.148, i64 10 }, { ptr, i64 } { ptr @str.149, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.357, i64 10 }, { ptr, i64 } { ptr @str.358, 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.120 + br label %while.hdr.136 -while.hdr.120: ; preds = %fv.merge, %entry +while.hdr.136: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.121: ; preds = %while.hdr.120 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.122: ; preds = %while.hdr.120 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.150, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.124 + br label %if.merge.140 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.154, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.363, 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.155, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.364, 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 @@ -2524,18 +4092,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.136 -fv.default: ; preds = %if.merge.124 +fv.default: ; preds = %if.merge.140 br label %fv.merge -fv.case: ; preds = %if.merge.124 +fv.case: ; preds = %if.merge.140 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.124 +fv.case17: ; preds = %if.merge.140 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2546,43 +4114,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.156, i64 9 }, { ptr, i64 } { ptr @str.157, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.365, i64 9 }, { ptr, i64 } { ptr @str.366, 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.125 + br label %while.hdr.141 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.126: ; preds = %while.hdr.125 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.127: ; preds = %while.hdr.125 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.368, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.145 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.163, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.372, 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.164, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, 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 @@ -2601,24 +4169,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.129 +fv.case17: ; preds = %if.merge.145 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.129 +fv.case21: ; preds = %if.merge.145 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2631,43 +4199,43 @@ 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.165, i64 5 }, { ptr, i64 } { ptr @str.166, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.374, i64 5 }, { ptr, i64 } { ptr @str.375, 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.130 + br label %while.hdr.146 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.131: ; preds = %while.hdr.130 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.132: ; preds = %while.hdr.130 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.376, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.377, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.150 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.172, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.381, 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.173, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, 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 @@ -2686,23 +4254,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.150 %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.134 +fv.case20: ; preds = %if.merge.150 %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 @@ -2715,43 +4283,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.174, i64 8 }, { ptr, i64 } { ptr @str.175, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.383, i64 8 }, { ptr, i64 } { ptr @str.384, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.385, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.386, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.181, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.390, 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.182, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, 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 @@ -2770,23 +4338,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.155 %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.139 +fv.case20: ; preds = %if.merge.155 %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 @@ -2798,43 +4366,43 @@ 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.183, i64 17 }, { ptr, i64 } { ptr @str.184, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.392, i64 17 }, { ptr, i64 } { ptr @str.393, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.185, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.394, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.395, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.191, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.400, 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.192, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.401, 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 @@ -2854,29 +4422,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.160 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.160 %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.144 +fv.case20: ; preds = %if.merge.160 %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.144 +fv.case23: ; preds = %if.merge.160 %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 @@ -2888,43 +4456,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.193, i64 7 }, { ptr, i64 } { ptr @str.194, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.402, i64 7 }, { ptr, i64 } { ptr @str.403, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.195, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.404, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.196, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.405, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.199, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.408, 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.200, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.409, 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 %alloca, align 8 @@ -2942,25 +4510,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.165 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.410, i64 4 }, { ptr, i64 } { ptr @str.411, 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.166 + +while.hdr.166: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.167, label %while.exit.168 + +while.body.167: ; preds = %while.hdr.166 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.169, label %if.merge.170 + +while.exit.168: ; preds = %while.hdr.166 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 1 }) + ret { ptr, i64 } %callN + +if.then.169: ; preds = %while.body.167 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.413, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.170 + +if.merge.170: ; preds = %if.then.169, %while.body.167 + %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.415, 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.416, 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.166 + +fv.default: ; preds = %if.merge.170 + br label %fv.merge + +fv.case: ; preds = %if.merge.170 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.417, i64 10 }, { ptr, i64 } { ptr @str.418, 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.171 + +while.hdr.171: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.172, label %while.exit.173 + +while.body.172: ; preds = %while.hdr.171 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.174, label %if.merge.175 + +while.exit.173: ; preds = %while.hdr.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 1 }) + ret { ptr, i64 } %callN + +if.then.174: ; preds = %while.body.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.175 + +if.merge.175: ; preds = %if.then.174, %while.body.172 + %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.426, 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.427, 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.171 + +fv.default: ; preds = %if.merge.175 + br label %fv.merge + +fv.case: ; preds = %if.merge.175 + %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.175 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.175 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.175 + %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.175 + %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.428, i64 13 }, { ptr, i64 } { ptr @str.429, 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.176 + +while.hdr.176: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.177, label %while.exit.178 + +while.body.177: ; preds = %while.hdr.176 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.179, label %if.merge.180 + +while.exit.178: ; preds = %while.hdr.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.430, i64 1 }) + ret { ptr, i64 } %callN + +if.then.179: ; preds = %while.body.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.431, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.180 + +if.merge.180: ; preds = %if.then.179, %while.body.177 + %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.434, 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.435, 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.176 + +fv.default: ; preds = %if.merge.180 + br label %fv.merge + +fv.case: ; preds = %if.merge.180 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.180 + %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.436, i64 8 }, { ptr, i64 } { ptr @str.437, 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.181 + +while.hdr.181: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.182, label %while.exit.183 + +while.body.182: ; preds = %while.hdr.181 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.184, label %if.merge.185 + +while.exit.183: ; preds = %while.hdr.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.438, i64 1 }) + ret { ptr, i64 } %callN + +if.then.184: ; preds = %while.body.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.439, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.185 + +if.merge.185: ; preds = %if.then.184, %while.body.182 + %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.445, 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.446, 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.181 + +fv.default: ; preds = %if.merge.185 + br label %fv.merge + +fv.case: ; preds = %if.merge.185 + %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.185 + %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.185 + %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.185 + %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.185 + %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.447, i64 5 }, { ptr, i64 } { ptr @str.448, 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.186 + +while.hdr.186: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.187, label %while.exit.188 + +while.body.187: ; preds = %while.hdr.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 + +while.exit.188: ; preds = %while.hdr.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.449, i64 1 }) + ret { ptr, i64 } %callN + +if.then.189: ; preds = %while.body.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.450, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.190 + +if.merge.190: ; preds = %if.then.189, %while.body.187 + %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.454, 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.455, 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.186 + +fv.default: ; preds = %if.merge.190 + br label %fv.merge + +fv.case: ; preds = %if.merge.190 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.190 + %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.190 + %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.456, i64 6 }, { ptr, i64 } { ptr @str.457, 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.191 + +while.hdr.191: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.192, label %while.exit.193 + +while.body.192: ; preds = %while.hdr.191 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.194, label %if.merge.195 + +while.exit.193: ; preds = %while.hdr.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.458, i64 1 }) + ret { ptr, i64 } %callN + +if.then.194: ; preds = %while.body.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.459, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.195 + +if.merge.195: ; preds = %if.then.194, %while.body.192 + %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.463, 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.464, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.195 + %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.195 + %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.465, i64 6 }, { ptr, i64 } { ptr @str.466, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.467, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.468, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.471, 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.472, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %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.200 + %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 54, 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.473, i64 4 }, { ptr, i64 } { ptr @str.474, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.475, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.476, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.480, 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.481, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.205 + %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.205 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.482, i64 6 }, { ptr, i64 } { ptr @str.483, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.484, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.485, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.489, 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.490, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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.210 + %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.210 + %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 26, i64 undef }, i64 %ba.p2i23, 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.491, i64 12 }, { ptr, i64 } { ptr @str.492, 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.211 + +while.hdr.211: ; preds = %if.merge.215, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.494, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.495, 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.496, 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.211 +} + +; 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.497, i64 8 }, { ptr, i64 } { ptr @str.498, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.499, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.500, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.504, 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.505, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %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.220 + %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.220 + %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.506, i64 7 }, { ptr, i64 } { ptr @str.507, 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.221 + +while.hdr.221: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.508, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.509, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.513, 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.514, 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.221 + +fv.default: ; preds = %if.merge.225 + br label %fv.merge + +fv.case: ; preds = %if.merge.225 + %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.225 + %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.225 + %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 77, 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.515, i64 9 }, { ptr, i64 } { ptr @str.516, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.517, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.518, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.521, 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.522, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.523, i64 4 }, { ptr, i64 } { ptr @str.524, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.525, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.526, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.529, 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.530, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.531, i64 6 }, { ptr, i64 } { ptr @str.532, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.533, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.534, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.542, 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.543, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.240 + %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.240 + %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.240 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.240 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.240 + %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 81, 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.544, i64 6 }, { ptr, i64 } { ptr @str.545, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.546, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.547, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.552, 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.553, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.245 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.245 + %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.245 + %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 } @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.559, 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.554, 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.253, label %if.merge.254 + +if.then.253: ; 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.561, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.560, 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.254 + +if.merge.254: ; preds = %if.then.253, %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.566, 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.562, 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.255, label %if.merge.256 + +if.then.255: ; 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.568, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.567, 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.256 + +if.merge.256: ; preds = %if.then.255, %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.576, 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.569, 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.257: ; 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.578, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.577, 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.258 + +if.merge.258: ; preds = %if.then.257, %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.257, label %if.merge.258 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.587, 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.579, 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.259, label %if.merge.260 + +if.then.259: ; 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.589, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.588, 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.260 + +if.merge.260: ; preds = %if.then.259, %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.596, 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.590, 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.261, label %if.merge.262 + +if.then.261: ; 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.598, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.597, 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.262 + +if.merge.262: ; preds = %if.then.261, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2968,33 +6178,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.201, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.599, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.157 + br label %while.hdr.274 -while.hdr.157: ; preds = %if.merge.161, %entry +while.hdr.274: ; preds = %if.merge.278, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.158, label %while.exit.159 + br i1 %icmp, label %while.body.275, label %while.exit.276 -while.body.158: ; preds = %while.hdr.157 +while.body.275: ; preds = %while.hdr.274 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.160, label %if.merge.161 + br i1 %icmpN, label %if.then.277, label %if.merge.278 -while.exit.159: ; preds = %while.hdr.157 +while.exit.276: ; preds = %while.hdr.274 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.202, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 1 }) ret { ptr, i64 } %call -if.then.160: ; preds = %while.body.158 +if.then.277: ; preds = %while.body.275 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.601, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.161 + br label %if.merge.278 -if.merge.161: ; preds = %if.then.160, %while.body.158 +if.merge.278: ; preds = %if.then.277, %while.body.275 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3008,7 +6218,211 @@ if.merge.161: ; preds = %if.then.160, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.157 + br label %while.hdr.274 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.602, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.279 + +while.hdr.279: ; preds = %if.merge.283, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.280, label %while.exit.281 + +while.body.280: ; preds = %while.hdr.279 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.282, label %if.merge.283 + +while.exit.281: ; preds = %while.hdr.279 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 1 }) + ret { ptr, i64 } %call + +if.then.282: ; preds = %while.body.280 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.604, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.283 + +if.merge.283: ; preds = %if.then.282, %while.body.280 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.279 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.605, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.284 + +while.hdr.284: ; preds = %if.merge.288, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.285, label %while.exit.286 + +while.body.285: ; preds = %while.hdr.284 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.287, label %if.merge.288 + +while.exit.286: ; preds = %while.hdr.284 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 1 }) + ret { ptr, i64 } %call + +if.then.287: ; preds = %while.body.285 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.288 + +if.merge.288: ; preds = %if.then.287, %while.body.285 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.284 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.608, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.289 + +while.hdr.289: ; preds = %if.merge.293, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.290, label %while.exit.291 + +while.body.290: ; preds = %while.hdr.289 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.292, label %if.merge.293 + +while.exit.291: ; preds = %while.hdr.289 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.609, i64 1 }) + ret { ptr, i64 } %call + +if.then.292: ; preds = %while.body.290 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.293 + +if.merge.293: ; preds = %if.then.292, %while.body.290 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.289 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.611, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.294 + +while.hdr.294: ; preds = %if.merge.298, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.295, label %while.exit.296 + +while.body.295: ; preds = %while.hdr.294 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.297, label %if.merge.298 + +while.exit.296: ; preds = %while.hdr.294 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 1 }) + ret { ptr, i64 } %call + +if.then.297: ; preds = %while.body.295 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.613, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.298 + +if.merge.298: ; preds = %if.then.297, %while.body.295 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.294 } ; Function Attrs: nounwind @@ -3019,33 +6433,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.204, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.614, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.162 + br label %while.hdr.299 -while.hdr.162: ; preds = %if.merge.166, %entry +while.hdr.299: ; preds = %if.merge.303, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.163, label %while.exit.164 + br i1 %icmp, label %while.body.300, label %while.exit.301 -while.body.163: ; preds = %while.hdr.162 +while.body.300: ; preds = %while.hdr.299 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.165, label %if.merge.166 + br i1 %icmpN, label %if.then.302, label %if.merge.303 -while.exit.164: ; preds = %while.hdr.162 +while.exit.301: ; preds = %while.hdr.299 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 1 }) ret { ptr, i64 } %call -if.then.165: ; preds = %while.body.163 +if.then.302: ; preds = %while.body.300 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.206, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.166 + br label %if.merge.303 -if.merge.166: ; preds = %if.then.165, %while.body.163 +if.merge.303: ; preds = %if.then.302, %while.body.300 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3061,7 +6475,7 @@ if.merge.166: ; preds = %if.then.165, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.162 + br label %while.hdr.299 } ; Function Attrs: nounwind @@ -3072,33 +6486,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [3 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.207, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.617, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.167 + br label %while.hdr.304 -while.hdr.167: ; preds = %if.merge.171, %entry +while.hdr.304: ; preds = %if.merge.308, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.168, label %while.exit.169 + br i1 %icmp, label %while.body.305, label %while.exit.306 -while.body.168: ; preds = %while.hdr.167 +while.body.305: ; preds = %while.hdr.304 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.170, label %if.merge.171 + br i1 %icmpN, label %if.then.307, label %if.merge.308 -while.exit.169: ; preds = %while.hdr.167 +while.exit.306: ; preds = %while.hdr.304 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 1 }) ret { ptr, i64 } %call -if.then.170: ; preds = %while.body.168 +if.then.307: ; preds = %while.body.305 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.619, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.171 + br label %if.merge.308 -if.merge.171: ; preds = %if.then.170, %while.body.168 +if.merge.308: ; preds = %if.then.307, %while.body.305 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [3 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3114,7 +6528,7 @@ if.merge.171: ; preds = %if.then.170, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.167 + br label %while.hdr.304 } ; Function Attrs: nounwind @@ -3125,33 +6539,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [2 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.210, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.620, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.172 + br label %while.hdr.309 -while.hdr.172: ; preds = %if.merge.176, %entry +while.hdr.309: ; preds = %if.merge.313, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.173, label %while.exit.174 + br i1 %icmp, label %while.body.310, label %while.exit.311 -while.body.173: ; preds = %while.hdr.172 +while.body.310: ; preds = %while.hdr.309 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.175, label %if.merge.176 + br i1 %icmpN, label %if.then.312, label %if.merge.313 -while.exit.174: ; preds = %while.hdr.172 +while.exit.311: ; preds = %while.hdr.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.211, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 1 }) ret { ptr, i64 } %call -if.then.175: ; preds = %while.body.173 +if.then.312: ; preds = %while.body.310 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.622, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.176 + br label %if.merge.313 -if.merge.176: ; preds = %if.then.175, %while.body.173 +if.merge.313: ; preds = %if.then.312, %while.body.310 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [2 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3167,7 +6581,7 @@ if.merge.176: ; preds = %if.then.175, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.172 + br label %while.hdr.309 } ; Function Attrs: nounwind @@ -3178,33 +6592,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [5 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.213, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.623, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.177 + br label %while.hdr.314 -while.hdr.177: ; preds = %if.merge.181, %entry +while.hdr.314: ; preds = %if.merge.318, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 5 - br i1 %icmp, label %while.body.178, label %while.exit.179 + br i1 %icmp, label %while.body.315, label %while.exit.316 -while.body.178: ; preds = %while.hdr.177 +while.body.315: ; preds = %while.hdr.314 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.180, label %if.merge.181 + br i1 %icmpN, label %if.then.317, label %if.merge.318 -while.exit.179: ; preds = %while.hdr.177 +while.exit.316: ; preds = %while.hdr.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.214, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 1 }) ret { ptr, i64 } %call -if.then.180: ; preds = %while.body.178 +if.then.317: ; preds = %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.215, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.625, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.181 + br label %if.merge.318 -if.merge.181: ; preds = %if.then.180, %while.body.178 +if.merge.318: ; preds = %if.then.317, %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [5 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3220,7 +6634,7 @@ if.merge.181: ; preds = %if.then.180, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.177 + br label %while.hdr.314 } ; Function Attrs: nounwind @@ -3230,35 +6644,35 @@ entry: %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.216, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.626, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.186 + br label %while.hdr.326 -while.hdr.186: ; preds = %if.merge.190, %entry +while.hdr.326: ; preds = %if.merge.330, %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.187, label %while.exit.188 + br i1 %icmp, label %while.body.327, label %while.exit.328 -while.body.187: ; preds = %while.hdr.186 +while.body.327: ; preds = %while.hdr.326 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.189, label %if.merge.190 + br i1 %icmpN, label %if.then.329, label %if.merge.330 -while.exit.188: ; preds = %while.hdr.186 +while.exit.328: ; preds = %while.hdr.326 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.217, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.627, i64 1 }) ret { ptr, i64 } %call -if.then.189: ; preds = %while.body.187 +if.then.329: ; preds = %while.body.327 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.218, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.628, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.190 + br label %if.merge.330 -if.merge.190: ; preds = %if.then.189, %while.body.187 +if.merge.330: ; preds = %if.then.329, %while.body.327 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3274,7 +6688,167 @@ if.merge.190: ; preds = %if.then.189, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.186 + br label %while.hdr.326 +} + +; 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.629, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.331 + +while.hdr.331: ; preds = %if.merge.335, %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.332, label %while.exit.333 + +while.body.332: ; preds = %while.hdr.331 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.334, label %if.merge.335 + +while.exit.333: ; preds = %while.hdr.331 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.630, i64 1 }) + ret { ptr, i64 } %call + +if.then.334: ; preds = %while.body.332 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.631, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.335 + +if.merge.335: ; preds = %if.then.334, %while.body.332 + %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.331 +} + +; 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.632, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.336 + +while.hdr.336: ; preds = %if.merge.340, %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.337, label %while.exit.338 + +while.body.337: ; preds = %while.hdr.336 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.339, label %if.merge.340 + +while.exit.338: ; preds = %while.hdr.336 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.633, i64 1 }) + ret { ptr, i64 } %call + +if.then.339: ; preds = %while.body.337 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.634, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.340 + +if.merge.340: ; preds = %if.then.339, %while.body.337 + %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 76, 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.336 +} + +; 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.635, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.341 + +while.hdr.341: ; preds = %if.merge.345, %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.342, label %while.exit.343 + +while.body.342: ; preds = %while.hdr.341 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.344, label %if.merge.345 + +while.exit.343: ; preds = %while.hdr.341 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.636, i64 1 }) + ret { ptr, i64 } %call + +if.then.344: ; preds = %while.body.342 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.637, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.345 + +if.merge.345: ; preds = %if.then.344, %while.body.342 + %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 78, 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.341 } ; Function Attrs: nounwind @@ -3284,35 +6858,35 @@ entry: %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.219, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.638, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.191 + br label %while.hdr.346 -while.hdr.191: ; preds = %if.merge.195, %entry +while.hdr.346: ; preds = %if.merge.350, %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.192, label %while.exit.193 + br i1 %icmp, label %while.body.347, label %while.exit.348 -while.body.192: ; preds = %while.hdr.191 +while.body.347: ; preds = %while.hdr.346 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.194, label %if.merge.195 + br i1 %icmpN, label %if.then.349, label %if.merge.350 -while.exit.193: ; preds = %while.hdr.191 +while.exit.348: ; preds = %while.hdr.346 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.220, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.639, i64 1 }) ret { ptr, i64 } %call -if.then.194: ; preds = %while.body.192 +if.then.349: ; preds = %while.body.347 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.221, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.640, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.195 + br label %if.merge.350 -if.merge.195: ; preds = %if.then.194, %while.body.192 +if.merge.350: ; preds = %if.then.349, %while.body.347 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3328,7 +6902,7 @@ if.merge.195: ; preds = %if.then.194, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.191 + br label %while.hdr.346 } ; Function Attrs: nounwind @@ -3342,20 +6916,20 @@ entry: 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.218, label %if.else.219 + br i1 %icmp, label %if.then.386, label %if.else.387 -if.then.218: ; preds = %entry - br label %if.merge.220 +if.then.386: ; preds = %entry + br label %if.merge.388 -if.else.219: ; preds = %entry +if.else.387: ; 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.224, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.223, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.220 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.388 -if.merge.220: ; preds = %if.else.219, %if.then.218 - %bp = phi { ptr, i64 } [ { ptr @str.222, i64 4 }, %if.then.218 ], [ %callN, %if.else.219 ] +if.merge.388: ; preds = %if.else.387, %if.then.386 + %bp = phi { ptr, i64 } [ { ptr @str.641, i64 4 }, %if.then.386 ], [ %callN, %if.else.387 ] ret { ptr, i64 } %bp } @@ -3370,20 +6944,20 @@ entry: 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.234, label %if.else.235 + br i1 %icmp, label %if.then.402, label %if.else.403 -if.then.234: ; preds = %entry - br label %if.merge.236 +if.then.402: ; preds = %entry + br label %if.merge.404 -if.else.235: ; preds = %entry +if.else.403: ; 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.227, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.226, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.236 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.646, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.404 -if.merge.236: ; preds = %if.else.235, %if.then.234 - %bp = phi { ptr, i64 } [ { ptr @str.225, i64 4 }, %if.then.234 ], [ %callN, %if.else.235 ] +if.merge.404: ; preds = %if.else.403, %if.then.402 + %bp = phi { ptr, i64 } [ { ptr @str.644, i64 4 }, %if.then.402 ], [ %callN, %if.else.403 ] ret { ptr, i64 } %bp } @@ -3398,20 +6972,20 @@ entry: 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.237, label %if.else.238 + br i1 %icmp, label %if.then.405, label %if.else.406 -if.then.237: ; preds = %entry - br label %if.merge.239 +if.then.405: ; preds = %entry + br label %if.merge.407 -if.else.238: ; preds = %entry +if.else.406: ; 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.230, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.229, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.239 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.407 -if.merge.239: ; preds = %if.else.238, %if.then.237 - %bp = phi { ptr, i64 } [ { ptr @str.228, i64 4 }, %if.then.237 ], [ %callN, %if.else.238 ] +if.merge.407: ; preds = %if.else.406, %if.then.405 + %bp = phi { ptr, i64 } [ { ptr @str.647, i64 4 }, %if.then.405 ], [ %callN, %if.else.406 ] ret { ptr, i64 } %bp } @@ -3426,20 +7000,20 @@ entry: 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.240, label %if.else.241 + br i1 %icmp, label %if.then.408, label %if.else.409 -if.then.240: ; preds = %entry - br label %if.merge.242 +if.then.408: ; preds = %entry + br label %if.merge.410 -if.else.241: ; preds = %entry +if.else.409: ; 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.233, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.232, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.242 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.652, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.410 -if.merge.242: ; preds = %if.else.241, %if.then.240 - %bp = phi { ptr, i64 } [ { ptr @str.231, i64 4 }, %if.then.240 ], [ %callN, %if.else.241 ] +if.merge.410: ; preds = %if.else.409, %if.then.408 + %bp = phi { ptr, i64 } [ { ptr @str.650, i64 4 }, %if.then.408 ], [ %callN, %if.else.409 ] ret { ptr, i64 } %bp } @@ -3454,20 +7028,20 @@ entry: 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.243, label %if.else.244 + br i1 %icmp, label %if.then.411, label %if.else.412 -if.then.243: ; preds = %entry - br label %if.merge.245 +if.then.411: ; preds = %entry + br label %if.merge.413 -if.else.244: ; preds = %entry +if.else.412: ; 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.236, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.235, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.245 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.655, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.413 -if.merge.245: ; preds = %if.else.244, %if.then.243 - %bp = phi { ptr, i64 } [ { ptr @str.234, i64 4 }, %if.then.243 ], [ %callN, %if.else.244 ] +if.merge.413: ; preds = %if.else.412, %if.then.411 + %bp = phi { ptr, i64 } [ { ptr @str.653, i64 4 }, %if.then.411 ], [ %callN, %if.else.412 ] ret { ptr, i64 } %bp } @@ -3481,20 +7055,20 @@ entry: 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.246, label %if.else.247 + br i1 %icmp, label %if.then.414, label %if.else.415 -if.then.246: ; preds = %entry - br label %if.merge.248 +if.then.414: ; preds = %entry + br label %if.merge.416 -if.else.247: ; preds = %entry +if.else.415: ; 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.239, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.238, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.248 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.658, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.416 -if.merge.248: ; preds = %if.else.247, %if.then.246 - %bp = phi { ptr, i64 } [ { ptr @str.237, i64 4 }, %if.then.246 ], [ %callN, %if.else.247 ] +if.merge.416: ; preds = %if.else.415, %if.then.414 + %bp = phi { ptr, i64 } [ { ptr @str.656, i64 4 }, %if.then.414 ], [ %callN, %if.else.415 ] ret { ptr, i64 } %bp } @@ -3509,20 +7083,20 @@ entry: 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.249, label %if.else.250 + br i1 %icmp, label %if.then.417, label %if.else.418 -if.then.249: ; preds = %entry - br label %if.merge.251 +if.then.417: ; preds = %entry + br label %if.merge.419 -if.else.250: ; preds = %entry +if.else.418: ; 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.242, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.241, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.251 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.661, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.660, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.419 -if.merge.251: ; preds = %if.else.250, %if.then.249 - %bp = phi { ptr, i64 } [ { ptr @str.240, i64 4 }, %if.then.249 ], [ %callN, %if.else.250 ] +if.merge.419: ; preds = %if.else.418, %if.then.417 + %bp = phi { ptr, i64 } [ { ptr @str.659, i64 4 }, %if.then.417 ], [ %callN, %if.else.418 ] ret { ptr, i64 } %bp } @@ -3537,25 +7111,25 @@ entry: 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.252, label %if.else.253 + br i1 %icmp, label %if.then.420, label %if.else.421 -if.then.252: ; preds = %entry - br label %if.merge.254 +if.then.420: ; preds = %entry + br label %if.merge.422 -if.else.253: ; preds = %entry +if.else.421: ; 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.245, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.244, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.254 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.664, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.663, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.422 -if.merge.254: ; preds = %if.else.253, %if.then.252 - %bp = phi { ptr, i64 } [ { ptr @str.243, i64 4 }, %if.then.252 ], [ %callN, %if.else.253 ] +if.merge.422: ; preds = %if.else.421, %if.then.420 + %bp = phi { ptr, i64 } [ { ptr @str.662, i64 4 }, %if.then.420 ], [ %callN, %if.else.421 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3565,300 +7139,20 @@ entry: 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.255, label %if.else.256 + br i1 %icmp, label %if.then.423, label %if.else.424 -if.then.255: ; preds = %entry - br label %if.merge.257 +if.then.423: ; preds = %entry + br label %if.merge.425 -if.else.256: ; preds = %entry +if.else.424: ; 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.248, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.247, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.257 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.667, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.666, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.425 -if.merge.257: ; preds = %if.else.256, %if.then.255 - %bp = phi { ptr, i64 } [ { ptr @str.246, i64 4 }, %if.then.255 ], [ %callN, %if.else.256 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.258, label %if.else.259 - -if.then.258: ; preds = %entry - br label %if.merge.260 - -if.else.259: ; 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.251, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.250, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.260 - -if.merge.260: ; preds = %if.else.259, %if.then.258 - %bp = phi { ptr, i64 } [ { ptr @str.249, i64 4 }, %if.then.258 ], [ %callN, %if.else.259 ] - 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.261, label %if.else.262 - -if.then.261: ; preds = %entry - br label %if.merge.263 - -if.else.262: ; 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.254, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.253, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.263 - -if.merge.263: ; preds = %if.else.262, %if.then.261 - %bp = phi { ptr, i64 } [ { ptr @str.252, i64 4 }, %if.then.261 ], [ %callN, %if.else.262 ] - 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.264, label %if.else.265 - -if.then.264: ; preds = %entry - br label %if.merge.266 - -if.else.265: ; 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.257, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.256, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.266 - -if.merge.266: ; preds = %if.else.265, %if.then.264 - %bp = phi { ptr, i64 } [ { ptr @str.255, i64 4 }, %if.then.264 ], [ %callN, %if.else.265 ] - 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.267, label %if.else.268 - -if.then.267: ; preds = %entry - br label %if.merge.269 - -if.else.268: ; 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.260, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.259, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.269 - -if.merge.269: ; preds = %if.else.268, %if.then.267 - %bp = phi { ptr, i64 } [ { ptr @str.258, i64 4 }, %if.then.267 ], [ %callN, %if.else.268 ] - 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.270, label %if.else.271 - -if.then.270: ; preds = %entry - br label %if.merge.272 - -if.else.271: ; 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.263, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.262, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.272 - -if.merge.272: ; preds = %if.else.271, %if.then.270 - %bp = phi { ptr, i64 } [ { ptr @str.261, i64 4 }, %if.then.270 ], [ %callN, %if.else.271 ] - 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.273, label %if.else.274 - -if.then.273: ; preds = %entry - br label %if.merge.275 - -if.else.274: ; 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.266, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.265, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.275 - -if.merge.275: ; preds = %if.else.274, %if.then.273 - %bp = phi { ptr, i64 } [ { ptr @str.264, i64 4 }, %if.then.273 ], [ %callN, %if.else.274 ] - 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.276, label %if.else.277 - -if.then.276: ; preds = %entry - br label %if.merge.278 - -if.else.277: ; 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.269, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.268, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.278 - -if.merge.278: ; preds = %if.else.277, %if.then.276 - %bp = phi { ptr, i64 } [ { ptr @str.267, i64 4 }, %if.then.276 ], [ %callN, %if.else.277 ] - 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.279, label %if.else.280 - -if.then.279: ; preds = %entry - br label %if.merge.281 - -if.else.280: ; 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.272, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.271, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.281 - -if.merge.281: ; preds = %if.else.280, %if.then.279 - %bp = phi { ptr, i64 } [ { ptr @str.270, i64 4 }, %if.then.279 ], [ %callN, %if.else.280 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_AR_2_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.282, label %if.else.283 - -if.then.282: ; preds = %entry - br label %if.merge.284 - -if.else.283: ; 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.275, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.274, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.284 - -if.merge.284: ; preds = %if.else.283, %if.then.282 - %bp = phi { ptr, i64 } [ { ptr @str.273, i64 4 }, %if.then.282 ], [ %callN, %if.else.283 ] - 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.285, label %if.else.286 - -if.then.285: ; preds = %entry - br label %if.merge.287 - -if.else.286: ; 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.278, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.277, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.287 - -if.merge.287: ; preds = %if.else.286, %if.then.285 - %bp = phi { ptr, i64 } [ { ptr @str.276, i64 4 }, %if.then.285 ], [ %callN, %if.else.286 ] +if.merge.425: ; preds = %if.else.424, %if.then.423 + %bp = phi { ptr, i64 } [ { ptr @str.665, i64 4 }, %if.then.423 ], [ %callN, %if.else.424 ] ret { ptr, i64 } %bp } @@ -3873,19 +7167,757 @@ entry: 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.288, label %if.else.289 + br i1 %icmp, label %if.then.426, label %if.else.427 -if.then.288: ; preds = %entry - br label %if.merge.290 +if.then.426: ; preds = %entry + br label %if.merge.428 -if.else.289: ; preds = %entry +if.else.427: ; 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.281, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.280, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.290 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.670, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.669, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.428 -if.merge.290: ; preds = %if.else.289, %if.then.288 - %bp = phi { ptr, i64 } [ { ptr @str.279, i64 4 }, %if.then.288 ], [ %callN, %if.else.289 ] +if.merge.428: ; preds = %if.else.427, %if.then.426 + %bp = phi { ptr, i64 } [ { ptr @str.668, i64 4 }, %if.then.426 ], [ %callN, %if.else.427 ] ret { ptr, i64 } %bp } + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.429, label %if.else.430 + +if.then.429: ; preds = %entry + br label %if.merge.431 + +if.else.430: ; 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.673, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.672, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.431 + +if.merge.431: ; preds = %if.else.430, %if.then.429 + %bp = phi { ptr, i64 } [ { ptr @str.671, i64 4 }, %if.then.429 ], [ %callN, %if.else.430 ] + 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.432, label %if.else.433 + +if.then.432: ; preds = %entry + br label %if.merge.434 + +if.else.433: ; 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.676, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.675, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.434 + +if.merge.434: ; preds = %if.else.433, %if.then.432 + %bp = phi { ptr, i64 } [ { ptr @str.674, i64 4 }, %if.then.432 ], [ %callN, %if.else.433 ] + 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.435, label %if.else.436 + +if.then.435: ; preds = %entry + br label %if.merge.437 + +if.else.436: ; 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.679, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.678, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.437 + +if.merge.437: ; preds = %if.else.436, %if.then.435 + %bp = phi { ptr, i64 } [ { ptr @str.677, i64 4 }, %if.then.435 ], [ %callN, %if.else.436 ] + 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.438, label %if.else.439 + +if.then.438: ; preds = %entry + br label %if.merge.440 + +if.else.439: ; 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.682, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.681, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.440 + +if.merge.440: ; preds = %if.else.439, %if.then.438 + %bp = phi { ptr, i64 } [ { ptr @str.680, i64 4 }, %if.then.438 ], [ %callN, %if.else.439 ] + 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.441, label %if.else.442 + +if.then.441: ; preds = %entry + br label %if.merge.443 + +if.else.442: ; 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.685, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.684, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.443 + +if.merge.443: ; preds = %if.else.442, %if.then.441 + %bp = phi { ptr, i64 } [ { ptr @str.683, i64 4 }, %if.then.441 ], [ %callN, %if.else.442 ] + 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.444, label %if.else.445 + +if.then.444: ; preds = %entry + br label %if.merge.446 + +if.else.445: ; 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.688, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.687, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.446 + +if.merge.446: ; preds = %if.else.445, %if.then.444 + %bp = phi { ptr, i64 } [ { ptr @str.686, i64 4 }, %if.then.444 ], [ %callN, %if.else.445 ] + 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.447, label %if.else.448 + +if.then.447: ; preds = %entry + br label %if.merge.449 + +if.else.448: ; 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.691, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.690, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.449 + +if.merge.449: ; preds = %if.else.448, %if.then.447 + %bp = phi { ptr, i64 } [ { ptr @str.689, i64 4 }, %if.then.447 ], [ %callN, %if.else.448 ] + 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.450, label %if.else.451 + +if.then.450: ; preds = %entry + br label %if.merge.452 + +if.else.451: ; 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.694, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.693, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.452 + +if.merge.452: ; preds = %if.else.451, %if.then.450 + %bp = phi { ptr, i64 } [ { ptr @str.692, i64 4 }, %if.then.450 ], [ %callN, %if.else.451 ] + 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.453, label %if.else.454 + +if.then.453: ; preds = %entry + br label %if.merge.455 + +if.else.454: ; 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.697, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.696, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.455 + +if.merge.455: ; preds = %if.else.454, %if.then.453 + %bp = phi { ptr, i64 } [ { ptr @str.695, i64 4 }, %if.then.453 ], [ %callN, %if.else.454 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.456, label %if.else.457 + +if.then.456: ; preds = %entry + br label %if.merge.458 + +if.else.457: ; 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.700, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.699, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.458 + +if.merge.458: ; preds = %if.else.457, %if.then.456 + %bp = phi { ptr, i64 } [ { ptr @str.698, i64 4 }, %if.then.456 ], [ %callN, %if.else.457 ] + 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.459, label %if.else.460 + +if.then.459: ; preds = %entry + br label %if.merge.461 + +if.else.460: ; 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.703, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.702, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.461 + +if.merge.461: ; preds = %if.else.460, %if.then.459 + %bp = phi { ptr, i64 } [ { ptr @str.701, i64 4 }, %if.then.459 ], [ %callN, %if.else.460 ] + 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.462, label %if.else.463 + +if.then.462: ; preds = %entry + br label %if.merge.464 + +if.else.463: ; 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.706, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.705, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.464 + +if.merge.464: ; preds = %if.else.463, %if.then.462 + %bp = phi { ptr, i64 } [ { ptr @str.704, i64 4 }, %if.then.462 ], [ %callN, %if.else.463 ] + 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.465, label %if.else.466 + +if.then.465: ; preds = %entry + br label %if.merge.467 + +if.else.466: ; 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.709, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.708, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.467 + +if.merge.467: ; preds = %if.else.466, %if.then.465 + %bp = phi { ptr, i64 } [ { ptr @str.707, i64 4 }, %if.then.465 ], [ %callN, %if.else.466 ] + 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.468, label %if.else.469 + +if.then.468: ; preds = %entry + br label %if.merge.470 + +if.else.469: ; 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.712, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.711, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.470 + +if.merge.470: ; preds = %if.else.469, %if.then.468 + %bp = phi { ptr, i64 } [ { ptr @str.710, i64 4 }, %if.then.468 ], [ %callN, %if.else.469 ] + 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.471, label %if.else.472 + +if.then.471: ; preds = %entry + br label %if.merge.473 + +if.else.472: ; 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.715, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.714, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.473 + +if.merge.473: ; preds = %if.else.472, %if.then.471 + %bp = phi { ptr, i64 } [ { ptr @str.713, i64 4 }, %if.then.471 ], [ %callN, %if.else.472 ] + 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.474, label %if.else.475 + +if.then.474: ; preds = %entry + br label %if.merge.476 + +if.else.475: ; 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.718, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.717, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.476 + +if.merge.476: ; preds = %if.else.475, %if.then.474 + %bp = phi { ptr, i64 } [ { ptr @str.716, i64 4 }, %if.then.474 ], [ %callN, %if.else.475 ] + 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.477, label %if.else.478 + +if.then.477: ; preds = %entry + br label %if.merge.479 + +if.else.478: ; 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.721, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.720, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.479 + +if.merge.479: ; preds = %if.else.478, %if.then.477 + %bp = phi { ptr, i64 } [ { ptr @str.719, i64 4 }, %if.then.477 ], [ %callN, %if.else.478 ] + 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.480, label %if.else.481 + +if.then.480: ; preds = %entry + br label %if.merge.482 + +if.else.481: ; 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.724, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.723, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.482 + +if.merge.482: ; preds = %if.else.481, %if.then.480 + %bp = phi { ptr, i64 } [ { ptr @str.722, i64 4 }, %if.then.480 ], [ %callN, %if.else.481 ] + 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.483, label %if.else.484 + +if.then.483: ; preds = %entry + br label %if.merge.485 + +if.else.484: ; 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.727, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.726, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.485 + +if.merge.485: ; preds = %if.else.484, %if.then.483 + %bp = phi { ptr, i64 } [ { ptr @str.725, i64 4 }, %if.then.483 ], [ %callN, %if.else.484 ] + 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.486, label %if.else.487 + +if.then.486: ; preds = %entry + br label %if.merge.488 + +if.else.487: ; 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.730, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.729, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.488 + +if.merge.488: ; preds = %if.else.487, %if.then.486 + %bp = phi { ptr, i64 } [ { ptr @str.728, i64 4 }, %if.then.486 ], [ %callN, %if.else.487 ] + 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.489, label %if.else.490 + +if.then.489: ; preds = %entry + br label %if.merge.491 + +if.else.490: ; 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.733, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.732, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.491 + +if.merge.491: ; preds = %if.else.490, %if.then.489 + %bp = phi { ptr, i64 } [ { ptr @str.731, i64 4 }, %if.then.489 ], [ %callN, %if.else.490 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_AR_2_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.492, label %if.else.493 + +if.then.492: ; preds = %entry + br label %if.merge.494 + +if.else.493: ; 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.736, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.735, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.494 + +if.merge.494: ; preds = %if.else.493, %if.then.492 + %bp = phi { ptr, i64 } [ { ptr @str.734, i64 4 }, %if.then.492 ], [ %callN, %if.else.493 ] + 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.495, label %if.else.496 + +if.then.495: ; preds = %entry + br label %if.merge.497 + +if.else.496: ; 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.739, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.738, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.497 + +if.merge.497: ; preds = %if.else.496, %if.then.495 + %bp = phi { ptr, i64 } [ { ptr @str.737, i64 4 }, %if.then.495 ], [ %callN, %if.else.496 ] + 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.504, label %if.merge.505 + +if.then.504: ; preds = %entry + ret { ptr, i64 } { ptr @str.740, i64 4 } + +if.merge.505: ; 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 39, 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.506, label %if.merge.507 + +if.then.506: ; preds = %entry + ret { ptr, i64 } { ptr @str.741, i64 4 } + +if.merge.507: ; 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_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.508, label %if.merge.509 + +if.then.508: ; preds = %entry + ret { ptr, i64 } { ptr @str.742, i64 4 } + +if.merge.509: ; 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 45, 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.510, label %if.merge.511 + +if.then.510: ; preds = %entry + ret { ptr, i64 } { ptr @str.743, i64 4 } + +if.merge.511: ; 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 88, 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/0513-packs-pack-mixed-comptime.ir b/examples/expected/0513-packs-pack-mixed-comptime.ir index 14700d9..81c6b9e 100644 --- a/examples/expected/0513-packs-pack-mixed-comptime.ir +++ b/examples/expected/0513-packs-pack-mixed-comptime.ir @@ -1,253 +1,613 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [72 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [162 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.64 = private constant [5 x i8] c"*s64\00" -@tn.str.65 = private constant [7 x i8] c"**void\00" -@tn.str.66 = private constant [6 x i8] c"[]Any\00" -@tn.str.67 = private constant [5 x i8] c"*Any\00" -@tn.str.68 = private constant [7 x i8] c"[3]Any\00" -@tn.str.69 = private constant [8 x i8] c"*[3]Any\00" -@tn.str.70 = private constant [7 x i8] c"*[]Any\00" -@tn.str.71 = private constant [8 x i8] c"*string\00" -@tn.str.72 = private constant [7 x i8] c"[1]Any\00" -@tn.str.73 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.74 = private constant [4 x i8] c"*u8\00" -@tn.str.75 = private constant [6 x i8] c"*bool\00" -@tn.str.76 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.77 = private constant [5 x i8] c"*f64\00" -@tn.str.78 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.79 = private constant [11 x i8] c"*Allocator\00" -@tn.str.80 = private constant [9 x i8] c"*Context\00" -@tn.str.81 = private constant [10 x i8] c"*[]string\00" -@tn.str.82 = private constant [6 x i8] c"**GPA\00" -@tn.str.83 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.84 = private constant [8 x i8] c"**Arena\00" -@tn.str.85 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.86 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.87 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.88 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.89 = private constant [6 x i8] c"**s64\00" -@tn.str.90 = private constant [8 x i8] c"***void\00" -@tn.str.91 = private constant [6 x i8] c"**Any\00" -@tn.str.92 = private constant [9 x i8] c"**[3]Any\00" -@tn.str.93 = private constant [8 x i8] c"**[]Any\00" -@tn.str.94 = private constant [9 x i8] c"**string\00" -@tn.str.95 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.96 = private constant [5 x i8] c"**u8\00" -@tn.str.97 = private constant [7 x i8] c"**bool\00" -@__sx_type_names = private constant [72 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 12 }, { ptr, i64 } { ptr @tn.str.64, i64 4 }, { ptr, i64 } { ptr @tn.str.65, i64 6 }, { ptr, i64 } { ptr @tn.str.66, i64 5 }, { ptr, i64 } { ptr @tn.str.67, i64 4 }, { ptr, i64 } { ptr @tn.str.68, i64 6 }, { ptr, i64 } { ptr @tn.str.69, i64 7 }, { ptr, i64 } { ptr @tn.str.70, i64 6 }, { ptr, i64 } { ptr @tn.str.71, i64 7 }, { ptr, i64 } { ptr @tn.str.72, i64 6 }, { ptr, i64 } { ptr @tn.str.73, i64 7 }, { ptr, i64 } { ptr @tn.str.74, i64 3 }, { ptr, i64 } { ptr @tn.str.75, i64 5 }, { ptr, i64 } { ptr @tn.str.76, i64 7 }, { ptr, i64 } { ptr @tn.str.77, i64 4 }, { ptr, i64 } { ptr @tn.str.78, i64 16 }, { ptr, i64 } { ptr @tn.str.79, i64 10 }, { ptr, i64 } { ptr @tn.str.80, i64 8 }, { ptr, i64 } { ptr @tn.str.81, i64 9 }, { ptr, i64 } { ptr @tn.str.82, i64 5 }, { ptr, i64 } { ptr @tn.str.83, i64 12 }, { ptr, i64 } { ptr @tn.str.84, i64 7 }, { ptr, i64 } { ptr @tn.str.85, i64 6 }, { ptr, i64 } { ptr @tn.str.86, i64 10 }, { ptr, i64 } { ptr @tn.str.87, i64 19 }, { ptr, i64 } { ptr @tn.str.88, i64 13 }, { ptr, i64 } { ptr @tn.str.89, i64 5 }, { ptr, i64 } { ptr @tn.str.90, i64 7 }, { ptr, i64 } { ptr @tn.str.91, i64 5 }, { ptr, i64 } { ptr @tn.str.92, i64 8 }, { ptr, i64 } { ptr @tn.str.93, i64 7 }, { ptr, i64 } { ptr @tn.str.94, i64 8 }, { ptr, i64 } { ptr @tn.str.95, i64 8 }, { ptr, i64 } { ptr @tn.str.96, i64 4 }, { ptr, i64 } { ptr @tn.str.97, i64 6 }] -@str.98 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.99 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.100 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.101 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.102 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.103 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.104 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.105 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.106 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.107 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.108 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.109 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.110 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.111 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.112 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.113 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.117 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.118 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.119 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.120 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.121 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.122 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.123 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.237 = private constant [7 x i8] c"**void\00" +@tn.str.238 = private constant [6 x i8] c"[]Any\00" +@tn.str.239 = private constant [5 x i8] c"*Any\00" +@tn.str.240 = private constant [7 x i8] c"[3]Any\00" +@tn.str.241 = private constant [8 x i8] c"*[3]Any\00" +@tn.str.242 = private constant [7 x i8] c"*[]Any\00" +@tn.str.243 = private constant [8 x i8] c"*string\00" +@tn.str.244 = private constant [7 x i8] c"[1]Any\00" +@tn.str.245 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.246 = private constant [6 x i8] c"*bool\00" +@tn.str.247 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.248 = private constant [5 x i8] c"*f64\00" +@tn.str.249 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.250 = private constant [11 x i8] c"*Allocator\00" +@tn.str.251 = private constant [9 x i8] c"*Context\00" +@tn.str.252 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.253 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.254 = private constant [8 x i8] c"*Member\00" +@tn.str.255 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.256 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.257 = private constant [9 x i8] c"*Command\00" +@tn.str.258 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.259 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.260 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.261 = private constant [7 x i8] c"*Value\00" +@tn.str.262 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.263 = private constant [14 x i8] c"*Architecture\00" +@tn.str.264 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.265 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.266 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.267 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.268 = private constant [10 x i8] c"*[]string\00" +@tn.str.269 = private constant [6 x i8] c"*[]u8\00" +@tn.str.270 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.271 = private constant [11 x i8] c"*[]Command\00" +@tn.str.272 = private constant [6 x i8] c"**GPA\00" +@tn.str.273 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.274 = private constant [8 x i8] c"**Arena\00" +@tn.str.275 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.276 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.277 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.278 = private constant [7 x i8] c"**File\00" +@tn.str.279 = private constant [5 x i8] c"**u8\00" +@tn.str.280 = private constant [6 x i8] c"**s32\00" +@tn.str.281 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.282 = private constant [6 x i8] c"**u32\00" +@tn.str.283 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.284 = private constant [8 x i8] c"**Array\00" +@tn.str.285 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.286 = private constant [9 x i8] c"**Object\00" +@tn.str.287 = private constant [7 x i8] c"**Sink\00" +@tn.str.288 = private constant [9 x i8] c"**Parser\00" +@tn.str.289 = private constant [6 x i8] c"**s64\00" +@tn.str.290 = private constant [9 x i8] c"**Parsed\00" +@tn.str.291 = private constant [7 x i8] c"**Diag\00" +@tn.str.292 = private constant [9 x i8] c"**Sha256\00" +@tn.str.293 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.294 = private constant [8 x i8] c"***void\00" +@tn.str.295 = private constant [6 x i8] c"**Any\00" +@tn.str.296 = private constant [9 x i8] c"**[3]Any\00" +@tn.str.297 = private constant [8 x i8] c"**[]Any\00" +@tn.str.298 = private constant [9 x i8] c"**string\00" +@tn.str.299 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.300 = private constant [7 x i8] c"**bool\00" +@tn.str.301 = private constant [7 x i8] c"*?File\00" +@tn.str.302 = private constant [9 x i8] c"*?string\00" +@tn.str.303 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.304 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [162 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 12 }, { ptr, i64 } { ptr @tn.str.237, i64 6 }, { ptr, i64 } { ptr @tn.str.238, i64 5 }, { ptr, i64 } { ptr @tn.str.239, i64 4 }, { ptr, i64 } { ptr @tn.str.240, i64 6 }, { ptr, i64 } { ptr @tn.str.241, i64 7 }, { ptr, i64 } { ptr @tn.str.242, i64 6 }, { ptr, i64 } { ptr @tn.str.243, i64 7 }, { ptr, i64 } { ptr @tn.str.244, i64 6 }, { ptr, i64 } { ptr @tn.str.245, i64 7 }, { ptr, i64 } { ptr @tn.str.246, i64 5 }, { ptr, i64 } { ptr @tn.str.247, i64 7 }, { ptr, i64 } { ptr @tn.str.248, i64 4 }, { ptr, i64 } { ptr @tn.str.249, i64 16 }, { ptr, i64 } { ptr @tn.str.250, i64 10 }, { ptr, i64 } { ptr @tn.str.251, i64 8 }, { ptr, i64 } { ptr @tn.str.252, i64 11 }, { ptr, i64 } { ptr @tn.str.253, i64 14 }, { ptr, i64 } { ptr @tn.str.254, i64 7 }, { ptr, i64 } { ptr @tn.str.255, i64 13 }, { ptr, i64 } { ptr @tn.str.256, i64 9 }, { ptr, i64 } { ptr @tn.str.257, i64 8 }, { ptr, i64 } { ptr @tn.str.258, i64 10 }, { ptr, i64 } { ptr @tn.str.259, i64 9 }, { ptr, i64 } { ptr @tn.str.260, i64 9 }, { ptr, i64 } { ptr @tn.str.261, i64 6 }, { ptr, i64 } { ptr @tn.str.262, i64 16 }, { ptr, i64 } { ptr @tn.str.263, i64 13 }, { ptr, i64 } { ptr @tn.str.264, i64 14 }, { ptr, i64 } { ptr @tn.str.265, i64 7 }, { ptr, i64 } { ptr @tn.str.266, i64 7 }, { ptr, i64 } { ptr @tn.str.267, i64 8 }, { ptr, i64 } { ptr @tn.str.268, i64 9 }, { ptr, i64 } { ptr @tn.str.269, i64 5 }, { ptr, i64 } { ptr @tn.str.270, i64 11 }, { ptr, i64 } { ptr @tn.str.271, i64 10 }, { ptr, i64 } { ptr @tn.str.272, i64 5 }, { ptr, i64 } { ptr @tn.str.273, i64 12 }, { ptr, i64 } { ptr @tn.str.274, i64 7 }, { ptr, i64 } { ptr @tn.str.275, i64 6 }, { ptr, i64 } { ptr @tn.str.276, i64 10 }, { ptr, i64 } { ptr @tn.str.277, i64 19 }, { ptr, i64 } { ptr @tn.str.278, i64 6 }, { ptr, i64 } { ptr @tn.str.279, i64 4 }, { ptr, i64 } { ptr @tn.str.280, i64 5 }, { ptr, i64 } { ptr @tn.str.281, i64 10 }, { ptr, i64 } { ptr @tn.str.282, i64 5 }, { ptr, i64 } { ptr @tn.str.283, i64 9 }, { ptr, i64 } { ptr @tn.str.284, i64 7 }, { ptr, i64 } { ptr @tn.str.285, i64 10 }, { ptr, i64 } { ptr @tn.str.286, i64 8 }, { ptr, i64 } { ptr @tn.str.287, i64 6 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 5 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 6 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 13 }, { ptr, i64 } { ptr @tn.str.294, i64 7 }, { ptr, i64 } { ptr @tn.str.295, i64 5 }, { ptr, i64 } { ptr @tn.str.296, i64 8 }, { ptr, i64 } { ptr @tn.str.297, i64 7 }, { ptr, i64 } { ptr @tn.str.298, i64 8 }, { ptr, i64 } { ptr @tn.str.299, i64 8 }, { ptr, i64 } { ptr @tn.str.300, i64 6 }, { ptr, i64 } { ptr @tn.str.301, i64 6 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }, { ptr, i64 } { ptr @tn.str.303, i64 15 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }] +@str.305 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.306 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.307 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.311 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.312 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.313 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.314 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.315 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.316 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.317 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.318 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.319 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.320 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.321 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.322 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.323 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.324 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.325 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.326 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.327 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.328 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.329 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.330 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.331 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.332 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.124 = private constant [5 x i8] c"line\00" -@fld.str.125 = private constant [4 x i8] c"col\00" -@fld.str.126 = 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.124, i64 4 }, { ptr, i64 } { ptr @fld.str.125, i64 3 }, { ptr, i64 } { ptr @fld.str.126, i64 4 }] -@str.127 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.128 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.129 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.130 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.132 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.133 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.134 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.135 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.136 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.137 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.138 = private constant [12 x i8] c"alloc_count\00" -@field_names.139 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.138, i64 11 }] -@str.140 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.141 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.142 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.144 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.145 = private constant [5 x i8] c"next\00" -@fld.str.146 = private constant [4 x i8] c"cap\00" -@field_names.147 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.145, i64 4 }, { ptr, i64 } { ptr @fld.str.146, i64 3 }] -@str.148 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.149 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.152 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.153 = private constant [4 x i8] c"ctx\00" -@fld.str.154 = private constant [6 x i8] c"alloc\00" -@fld.str.155 = private constant [8 x i8] c"dealloc\00" -@field_names.156 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.153, i64 3 }, { ptr, i64 } { ptr @fld.str.154, i64 5 }, { ptr, i64 } { ptr @fld.str.155, i64 7 }] -@str.157 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.158 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.159 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.160 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.161 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.162 = private constant [6 x i8] c"first\00" -@fld.str.163 = private constant [10 x i8] c"end_index\00" -@fld.str.164 = private constant [7 x i8] c"parent\00" -@field_names.165 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.162, i64 5 }, { ptr, i64 } { ptr @fld.str.163, i64 9 }, { ptr, i64 } { ptr @fld.str.164, i64 6 }] -@str.166 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.167 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.168 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.169 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.170 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.171 = private constant [4 x i8] c"buf\00" -@fld.str.172 = private constant [4 x i8] c"len\00" -@fld.str.173 = private constant [4 x i8] c"pos\00" -@field_names.174 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.171, i64 3 }, { ptr, i64 } { ptr @fld.str.172, i64 3 }, { ptr, i64 } { ptr @fld.str.173, i64 3 }] -@str.175 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.176 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.177 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.178 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.179 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.180 = private constant [7 x i8] c"parent\00" -@fld.str.181 = private constant [12 x i8] c"alloc_count\00" -@fld.str.182 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.183 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.184 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.180, i64 6 }, { ptr, i64 } { ptr @fld.str.181, i64 11 }, { ptr, i64 } { ptr @fld.str.182, i64 13 }, { ptr, i64 } { ptr @fld.str.183, i64 17 }] -@str.185 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.186 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.187 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.188 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.189 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.190 = private constant [10 x i8] c"allocator\00" -@fld.str.191 = private constant [5 x i8] c"data\00" -@field_names.192 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.190, i64 9 }, { ptr, i64 } { ptr @fld.str.191, i64 4 }] -@str.193 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.194 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.195 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.196 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.197 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.198 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.199 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.200 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.201 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.202 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.203 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.204 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.205 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.206 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.207 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.208 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.209 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.210 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.211 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.212 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.213 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.214 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.215 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.216 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.217 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.218 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.219 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.220 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.221 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.222 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.223 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.224 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.225 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.226 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.227 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.228 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.229 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.230 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.231 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.232 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.233 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.234 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.235 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.236 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.237 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.238 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.239 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.240 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.241 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.242 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.243 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.244 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.245 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.246 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 -@str.247 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.248 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.249 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.250 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.251 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.252 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.253 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.254 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.255 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.256 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.257 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.258 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.259 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.260 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.261 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.262 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.333 = private constant [5 x i8] c"line\00" +@fld.str.334 = private constant [4 x i8] c"col\00" +@fld.str.335 = 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.333, i64 4 }, { ptr, i64 } { ptr @fld.str.334, i64 3 }, { ptr, i64 } { ptr @fld.str.335, i64 4 }] +@str.336 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.337 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.338 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.339 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.340 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.341 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.342 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.343 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.344 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.345 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.346 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.347 = private constant [12 x i8] c"alloc_count\00" +@field_names.348 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.347, i64 11 }] +@str.349 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.350 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.353 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.354 = private constant [5 x i8] c"next\00" +@fld.str.355 = private constant [4 x i8] c"cap\00" +@field_names.356 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.354, i64 4 }, { ptr, i64 } { ptr @fld.str.355, i64 3 }] +@str.357 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.358 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.360 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.361 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.362 = private constant [4 x i8] c"ctx\00" +@fld.str.363 = private constant [6 x i8] c"alloc\00" +@fld.str.364 = private constant [8 x i8] c"dealloc\00" +@field_names.365 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.362, i64 3 }, { ptr, i64 } { ptr @fld.str.363, i64 5 }, { ptr, i64 } { ptr @fld.str.364, i64 7 }] +@str.366 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.367 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.368 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.369 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.370 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.371 = private constant [6 x i8] c"first\00" +@fld.str.372 = private constant [10 x i8] c"end_index\00" +@fld.str.373 = private constant [7 x i8] c"parent\00" +@field_names.374 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.371, i64 5 }, { ptr, i64 } { ptr @fld.str.372, i64 9 }, { ptr, i64 } { ptr @fld.str.373, i64 6 }] +@str.375 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.376 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.377 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.378 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.379 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.380 = private constant [4 x i8] c"buf\00" +@fld.str.381 = private constant [4 x i8] c"len\00" +@fld.str.382 = private constant [4 x i8] c"pos\00" +@field_names.383 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.380, i64 3 }, { ptr, i64 } { ptr @fld.str.381, i64 3 }, { ptr, i64 } { ptr @fld.str.382, i64 3 }] +@str.384 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.385 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.386 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.387 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.388 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.389 = private constant [7 x i8] c"parent\00" +@fld.str.390 = private constant [12 x i8] c"alloc_count\00" +@fld.str.391 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.392 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.393 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.389, i64 6 }, { ptr, i64 } { ptr @fld.str.390, i64 11 }, { ptr, i64 } { ptr @fld.str.391, i64 13 }, { ptr, i64 } { ptr @fld.str.392, i64 17 }] +@str.394 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.395 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.396 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.397 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.398 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.399 = private constant [10 x i8] c"allocator\00" +@fld.str.400 = private constant [5 x i8] c"data\00" +@field_names.401 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.399, i64 9 }, { ptr, i64 } { ptr @fld.str.400, i64 4 }] +@str.402 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.403 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.404 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.405 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.406 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.407 = private constant [3 x i8] c"fd\00" +@field_names.408 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.407, i64 2 }] +@str.409 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.410 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.412 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.413 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.414 = private constant [5 x i8] c"file\00" +@fld.str.415 = private constant [5 x i8] c"line\00" +@fld.str.416 = private constant [4 x i8] c"col\00" +@fld.str.417 = private constant [5 x i8] c"func\00" +@fld.str.418 = private constant [10 x i8] c"line_text\00" +@field_names.419 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.414, i64 4 }, { ptr, i64 } { ptr @fld.str.415, i64 4 }, { ptr, i64 } { ptr @fld.str.416, i64 3 }, { ptr, i64 } { ptr @fld.str.417, i64 4 }, { ptr, i64 } { ptr @fld.str.418, i64 9 }] +@str.420 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.421 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.422 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.423 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.424 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.425 = private constant [10 x i8] c"exit_code\00" +@fld.str.426 = private constant [7 x i8] c"stdout\00" +@field_names.427 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.425, i64 9 }, { ptr, i64 } { ptr @fld.str.426, i64 6 }] +@str.428 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.429 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.430 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.431 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.432 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.433 = private constant [8 x i8] c"sin_len\00" +@fld.str.434 = private constant [11 x i8] c"sin_family\00" +@fld.str.435 = private constant [9 x i8] c"sin_port\00" +@fld.str.436 = private constant [9 x i8] c"sin_addr\00" +@fld.str.437 = private constant [9 x i8] c"sin_zero\00" +@field_names.438 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.433, i64 7 }, { ptr, i64 } { ptr @fld.str.434, i64 10 }, { ptr, i64 } { ptr @fld.str.435, i64 8 }, { ptr, i64 } { ptr @fld.str.436, i64 8 }, { ptr, i64 } { ptr @fld.str.437, i64 8 }] +@str.439 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.440 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.441 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.442 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.443 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.444 = private constant [6 x i8] c"items\00" +@fld.str.445 = private constant [4 x i8] c"len\00" +@fld.str.446 = private constant [4 x i8] c"cap\00" +@field_names.447 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.444, i64 5 }, { ptr, i64 } { ptr @fld.str.445, i64 3 }, { ptr, i64 } { ptr @fld.str.446, i64 3 }] +@str.448 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.449 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.450 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.451 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.452 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.453 = private constant [6 x i8] c"items\00" +@fld.str.454 = private constant [4 x i8] c"len\00" +@fld.str.455 = private constant [4 x i8] c"cap\00" +@field_names.456 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.453, i64 5 }, { ptr, i64 } { ptr @fld.str.454, i64 3 }, { ptr, i64 } { ptr @fld.str.455, i64 3 }] +@str.457 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.458 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.459 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.460 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.461 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.462 = private constant [4 x i8] c"key\00" +@fld.str.463 = private constant [4 x i8] c"val\00" +@field_names.464 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.462, i64 3 }, { ptr, i64 } { ptr @fld.str.463, i64 3 }] +@str.465 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.466 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.467 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.468 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.469 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.470 = private constant [4 x i8] c"dst\00" +@fld.str.471 = private constant [4 x i8] c"pos\00" +@fld.str.472 = private constant [5 x i8] c"file\00" +@field_names.473 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.470, i64 3 }, { ptr, i64 } { ptr @fld.str.471, i64 3 }, { ptr, i64 } { ptr @fld.str.472, i64 4 }] +@str.474 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.475 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.476 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.477 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.478 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.479 = private constant [4 x i8] c"src\00" +@fld.str.480 = private constant [4 x i8] c"pos\00" +@fld.str.481 = private constant [6 x i8] c"alloc\00" +@field_names.482 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.479, i64 3 }, { ptr, i64 } { ptr @fld.str.480, i64 3 }, { ptr, i64 } { ptr @fld.str.481, i64 5 }] +@str.483 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.484 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.485 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.486 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.487 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.488 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.489 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.490 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.491 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.493 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.494 = private constant [5 x i8] c"name\00" +@fld.str.495 = private constant [12 x i8] c"takes_value\00" +@fld.str.496 = private constant [9 x i8] c"required\00" +@field_names.497 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.494, i64 4 }, { ptr, i64 } { ptr @fld.str.495, i64 11 }, { ptr, i64 } { ptr @fld.str.496, i64 8 }] +@str.498 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.499 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.500 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.501 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.502 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.503 = private constant [6 x i8] c"group\00" +@fld.str.504 = private constant [8 x i8] c"command\00" +@fld.str.505 = private constant [6 x i8] c"flags\00" +@field_names.506 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.503, i64 5 }, { ptr, i64 } { ptr @fld.str.504, i64 7 }, { ptr, i64 } { ptr @fld.str.505, i64 5 }] +@str.507 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.508 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.509 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.510 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.511 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.512 = private constant [4 x i8] c"set\00" +@fld.str.513 = private constant [6 x i8] c"value\00" +@field_names.514 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.512, i64 3 }, { ptr, i64 } { ptr @fld.str.513, i64 5 }] +@str.515 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.516 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.517 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.518 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.519 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.520 = private constant [6 x i8] c"index\00" +@fld.str.521 = private constant [6 x i8] c"token\00" +@field_names.522 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.520, i64 5 }, { ptr, i64 } { ptr @fld.str.521, i64 5 }] +@str.523 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.524 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.525 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.526 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.527 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.528 = private constant [6 x i8] c"group\00" +@fld.str.529 = private constant [8 x i8] c"command\00" +@fld.str.530 = private constant [10 x i8] c"cmd_index\00" +@fld.str.531 = private constant [5 x i8] c"json\00" +@fld.str.532 = private constant [5 x i8] c"rest\00" +@fld.str.533 = private constant [5 x i8] c"spec\00" +@fld.str.534 = private constant [7 x i8] c"values\00" +@field_names.535 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.528, i64 5 }, { ptr, i64 } { ptr @fld.str.529, i64 7 }, { ptr, i64 } { ptr @fld.str.530, i64 9 }, { ptr, i64 } { ptr @fld.str.531, i64 4 }, { ptr, i64 } { ptr @fld.str.532, i64 4 }, { ptr, i64 } { ptr @fld.str.533, i64 4 }, { ptr, i64 } { ptr @fld.str.534, i64 6 }] +@str.536 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.537 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.538 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.539 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.540 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.541 = private constant [2 x i8] c"h\00" +@fld.str.542 = private constant [4 x i8] c"buf\00" +@fld.str.543 = private constant [8 x i8] c"buf_len\00" +@fld.str.544 = private constant [10 x i8] c"total_len\00" +@field_names.545 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.541, i64 1 }, { ptr, i64 } { ptr @fld.str.542, i64 3 }, { ptr, i64 } { ptr @fld.str.543, i64 7 }, { ptr, i64 } { ptr @fld.str.544, i64 9 }] +@str.546 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.547 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.548 = private constant [5 x i8] c"read\00" +@fld.str.549 = private constant [6 x i8] c"write\00" +@fld.str.550 = private constant [7 x i8] c"append\00" +@fld.str.551 = private constant [11 x i8] c"read_write\00" +@field_names.552 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.548, i64 4 }, { ptr, i64 } { ptr @fld.str.549, i64 5 }, { ptr, i64 } { ptr @fld.str.550, i64 6 }, { ptr, i64 } { ptr @fld.str.551, i64 10 }] +@str.553 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.554 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.555 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.556 = private constant [4 x i8] c"set\00" +@fld.str.557 = private constant [8 x i8] c"current\00" +@fld.str.558 = private constant [4 x i8] c"end\00" +@field_names.559 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.556, i64 3 }, { ptr, i64 } { ptr @fld.str.557, i64 7 }, { ptr, i64 } { ptr @fld.str.558, i64 3 }] +@str.560 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.562 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.563 = private constant [6 x i8] c"null_\00" +@fld.str.564 = private constant [6 x i8] c"bool_\00" +@fld.str.565 = private constant [5 x i8] c"int_\00" +@fld.str.566 = private constant [4 x i8] c"str\00" +@fld.str.567 = private constant [6 x i8] c"array\00" +@fld.str.568 = private constant [7 x i8] c"object\00" +@field_names.569 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.563, i64 5 }, { ptr, i64 } { ptr @fld.str.564, i64 5 }, { ptr, i64 } { ptr @fld.str.565, i64 4 }, { ptr, i64 } { ptr @fld.str.566, i64 3 }, { ptr, i64 } { ptr @fld.str.567, i64 5 }, { ptr, i64 } { ptr @fld.str.568, i64 6 }] +@str.570 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.571 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.572 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.573 = private constant [6 x i8] c"macos\00" +@fld.str.574 = private constant [6 x i8] c"linux\00" +@fld.str.575 = private constant [8 x i8] c"windows\00" +@fld.str.576 = private constant [5 x i8] c"wasm\00" +@fld.str.577 = private constant [4 x i8] c"ios\00" +@fld.str.578 = private constant [8 x i8] c"android\00" +@fld.str.579 = private constant [8 x i8] c"unknown\00" +@field_names.580 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.573, i64 5 }, { ptr, i64 } { ptr @fld.str.574, i64 5 }, { ptr, i64 } { ptr @fld.str.575, i64 7 }, { ptr, i64 } { ptr @fld.str.576, i64 4 }, { ptr, i64 } { ptr @fld.str.577, i64 3 }, { ptr, i64 } { ptr @fld.str.578, i64 7 }, { ptr, i64 } { ptr @fld.str.579, i64 7 }] +@str.581 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.582 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.583 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.584 = private constant [8 x i8] c"aarch64\00" +@fld.str.585 = private constant [7 x i8] c"x86_64\00" +@fld.str.586 = private constant [7 x i8] c"wasm32\00" +@fld.str.587 = private constant [7 x i8] c"wasm64\00" +@fld.str.588 = private constant [8 x i8] c"unknown\00" +@field_names.589 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.584, i64 7 }, { ptr, i64 } { ptr @fld.str.585, i64 6 }, { ptr, i64 } { ptr @fld.str.586, i64 6 }, { ptr, i64 } { ptr @fld.str.587, i64 6 }, { ptr, i64 } { ptr @fld.str.588, i64 7 }] +@str.590 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.591 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.592 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.593 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.594 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.595 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.596 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.597 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.600 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.601 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.602 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.603 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.604 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.606 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.609 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.612 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.615 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.618 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.621 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.624 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.627 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.628 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.629 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.630 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.631 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.632 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.633 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.634 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.635 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.636 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.637 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.638 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.639 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.640 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.641 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.642 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.643 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.644 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.645 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.646 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.647 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.648 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.649 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.650 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.651 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.652 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.653 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.654 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.655 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.656 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.657 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.658 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.659 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.660 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.661 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.662 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.663 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.664 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.665 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.666 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.667 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.668 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.669 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.670 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.671 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.672 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.673 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.674 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.675 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.677 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.678 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.679 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.680 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.681 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.682 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.683 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.684 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.685 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.686 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.687 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.688 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.689 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.690 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.691 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.692 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.693 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.694 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.695 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.696 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.698 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.699 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.700 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.701 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.702 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.703 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.704 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.705 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.706 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.707 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 +@str.708 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.709 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.710 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.711 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.712 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.713 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.714 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.715 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.716 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.717 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.718 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.719 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.720 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.722 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.723 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.724 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -479,7 +839,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -606,7 +966,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -775,38 +1135,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.377 -while.hdr.209: ; preds = %if.merge.214, %entry +while.hdr.377: ; preds = %if.merge.382, %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.210, label %while.exit.211 + br i1 %icmp, label %while.body.378, label %while.exit.379 -while.body.210: ; preds = %while.hdr.209 +while.body.378: ; preds = %while.hdr.377 %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.212, label %if.else.213 + br i1 %icmpN, label %if.then.380, label %if.else.381 -while.exit.211: ; preds = %while.hdr.209 +while.exit.379: ; preds = %while.hdr.377 ret void -if.then.212: ; preds = %while.body.210 +if.then.380: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.214 + br label %if.merge.382 -if.else.213: ; preds = %while.body.210 +if.else.381: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.214 + br label %if.merge.382 -if.merge.214: ; preds = %if.else.213, %if.then.212 - %bp = phi i64 [ %addN, %if.then.212 ], [ %addN, %if.else.213 ] +if.merge.382: ; preds = %if.else.381, %if.then.380 + %bp = phi i64 [ %addN, %if.then.380 ], [ %addN, %if.else.381 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -819,7 +1179,7 @@ if.merge.214: ; preds = %if.else.213, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.377 } ; Function Attrs: nounwind @@ -937,12 +1297,12 @@ entry: 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.207, label %if.merge.208 + br i1 %icmp, label %if.then.375, label %if.merge.376 -if.then.207: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.375: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.208: ; preds = %entry +if.merge.376: ; 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 @@ -973,14 +1333,14 @@ if.merge.208: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.215 + br label %while.hdr.383 -while.hdr.215: ; preds = %if.merge.219, %if.merge.208 +while.hdr.383: ; preds = %if.merge.387, %if.merge.376 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.216, label %while.exit.217 + br i1 %icmpN, label %while.body.384, label %while.exit.385 -while.body.216: ; preds = %while.hdr.215 +while.body.384: ; preds = %while.hdr.383 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -988,9 +1348,9 @@ while.body.216: ; preds = %while.hdr.215 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.218, label %if.merge.219 + br i1 %icmpN, label %if.then.386, label %if.merge.387 -while.exit.217: ; preds = %if.then.218, %while.hdr.215 +while.exit.385: ; preds = %if.then.386, %while.hdr.383 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -998,14 +1358,14 @@ while.exit.217: ; preds = %if.then.218, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.218: ; preds = %while.body.216 - br label %while.exit.217 +if.then.386: ; preds = %while.body.384 + br label %while.exit.385 -if.merge.219: ; preds = %while.body.216 +if.merge.387: ; preds = %while.body.384 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.215 + br label %while.hdr.383 } ; Function Attrs: nounwind @@ -1083,11 +1443,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1120,11 +1483,42 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 + i64 39, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 42, label %match.arm.47 - i64 46, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 97, label %match.arm.47 + i64 101, label %match.arm.47 i64 36, label %match.arm.48 - i64 40, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 95, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1133,25 +1527,42 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 37, label %match.arm.49 - i64 38, label %match.arm.49 - i64 39, label %match.arm.49 - i64 41, label %match.arm.49 - i64 43, label %match.arm.49 + i64 40, label %match.arm.49 i64 44, label %match.arm.49 - i64 45, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 i64 49, label %match.arm.49 + i64 50, label %match.arm.49 + i64 56, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 93, label %match.arm.49 + i64 94, label %match.arm.49 + i64 96, label %match.arm.49 + i64 98, label %match.arm.49 + i64 99, label %match.arm.49 + i64 100, label %match.arm.49 + i64 102, label %match.arm.49 + i64 103, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.184, %dispatch.merge.170, %dispatch.merge.150, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.478, %dispatch.merge.339, %dispatch.merge.307, %dispatch.merge.263, %dispatch.merge.246, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1160,7 +1571,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [72 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [162 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1188,7 +1599,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1202,71 +1613,133 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.247 [ + i64 37, label %dispatch.case.248 + i64 38, label %dispatch.case.249 + i64 54, label %dispatch.case.250 + i64 70, label %dispatch.case.251 + i64 71, label %dispatch.case.252 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.151 [ - i64 35, label %dispatch.case.152 - i64 42, label %dispatch.case.153 - i64 46, label %dispatch.case.154 + switch i64 %ua.raw29, label %dispatch.default.264 [ + i64 35, label %dispatch.case.265 + i64 81, label %dispatch.case.266 + i64 87, label %dispatch.case.267 + i64 88, label %dispatch.case.268 + i64 92, label %dispatch.case.269 + i64 97, label %dispatch.case.270 + i64 101, label %dispatch.case.271 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.171 [ - i64 36, label %dispatch.case.172 - i64 40, label %dispatch.case.173 + switch i64 %ua.raw33, label %dispatch.default.308 [ + i64 36, label %dispatch.case.309 + i64 60, label %dispatch.case.310 + i64 77, label %dispatch.case.311 + i64 85, label %dispatch.case.312 + i64 95, label %dispatch.case.313 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.185 [ - i64 18, label %dispatch.case.186 - i64 21, label %dispatch.case.187 - i64 23, label %dispatch.case.188 - i64 25, label %dispatch.case.189 - i64 28, label %dispatch.case.190 - i64 29, label %dispatch.case.191 - i64 31, label %dispatch.case.192 - i64 33, label %dispatch.case.193 - i64 37, label %dispatch.case.194 - i64 38, label %dispatch.case.195 - i64 39, label %dispatch.case.196 - i64 41, label %dispatch.case.197 - i64 43, label %dispatch.case.198 - i64 44, label %dispatch.case.199 - i64 45, label %dispatch.case.200 - i64 47, label %dispatch.case.201 - i64 48, label %dispatch.case.202 - i64 49, label %dispatch.case.203 + switch i64 %ua.raw37, label %dispatch.default.340 [ + i64 18, label %dispatch.case.341 + i64 21, label %dispatch.case.342 + i64 23, label %dispatch.case.343 + i64 25, label %dispatch.case.344 + i64 28, label %dispatch.case.345 + i64 29, label %dispatch.case.346 + i64 31, label %dispatch.case.347 + i64 33, label %dispatch.case.348 + i64 40, label %dispatch.case.349 + i64 44, label %dispatch.case.350 + i64 47, label %dispatch.case.351 + i64 49, label %dispatch.case.352 + i64 50, label %dispatch.case.353 + i64 56, label %dispatch.case.354 + i64 57, label %dispatch.case.355 + i64 58, label %dispatch.case.356 + i64 59, label %dispatch.case.357 + i64 62, label %dispatch.case.358 + i64 67, label %dispatch.case.359 + i64 74, label %dispatch.case.360 + i64 83, label %dispatch.case.361 + i64 86, label %dispatch.case.362 + i64 90, label %dispatch.case.363 + i64 93, label %dispatch.case.364 + i64 94, label %dispatch.case.365 + i64 96, label %dispatch.case.366 + i64 98, label %dispatch.case.367 + i64 99, label %dispatch.case.368 + i64 100, label %dispatch.case.369 + i64 102, label %dispatch.case.370 + i64 103, label %dispatch.case.371 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.479 [ + i64 41, label %dispatch.case.480 + i64 42, label %dispatch.case.481 + i64 46, label %dispatch.case.482 + i64 91, label %dispatch.case.483 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [72 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [162 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1276,15 +1749,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1292,16 +1765,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1311,279 +1784,636 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.98, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.305, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.150: ; preds = %dispatch.case.154, %dispatch.case.153, %dispatch.case.152, %dispatch.default.151 +dispatch.case.105: ; preds = %match.arm.43 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.106: ; preds = %match.arm.43 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.107: ; preds = %match.arm.43 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.246: ; preds = %dispatch.case.252, %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.default.247 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.151: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.99, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.150 +dispatch.default.247: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.306, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.246 -dispatch.case.152: ; preds = %match.arm.47 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86) +dispatch.case.248: ; preds = %match.arm.44 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.case.153: ; preds = %match.arm.47 - %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr - %ua.load90 = load [3 x { i64, i64 }], ptr %ua.ptr89, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load90) +dispatch.case.249: ; preds = %match.arm.44 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.case.154: ; preds = %match.arm.47 - %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr - %ua.load94 = load [1 x { i64, i64 }], ptr %ua.ptr93, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load94) +dispatch.case.250: ; preds = %match.arm.44 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.merge.170: ; preds = %dispatch.case.173, %dispatch.case.172, %dispatch.default.171 +dispatch.case.251: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.252: ; preds = %match.arm.44 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.merge.263: ; preds = %dispatch.case.271, %dispatch.case.270, %dispatch.case.269, %dispatch.case.268, %dispatch.case.267, %dispatch.case.266, %dispatch.case.265, %dispatch.default.264 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.171: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.100, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.170 +dispatch.default.264: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.307, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.263 -dispatch.case.172: ; preds = %match.arm.48 - %ua.raw97 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr98 = inttoptr i64 %ua.raw97 to ptr - %ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load99) +dispatch.case.265: ; preds = %match.arm.47 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.170 + br label %dispatch.merge.263 -dispatch.case.173: ; preds = %match.arm.48 - %ua.raw101 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr102 = inttoptr i64 %ua.raw101 to ptr - %ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load103) +dispatch.case.266: ; preds = %match.arm.47 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.170 + br label %dispatch.merge.263 -dispatch.merge.184: ; preds = %dispatch.case.203, %dispatch.case.202, %dispatch.case.201, %dispatch.case.200, %dispatch.case.199, %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.case.189, %dispatch.case.188, %dispatch.case.187, %dispatch.case.186, %dispatch.default.185 +dispatch.case.267: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.268: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.269: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.270: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [3 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.271: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [1 x { i64, i64 }], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.merge.307: ; preds = %dispatch.case.313, %dispatch.case.312, %dispatch.case.311, %dispatch.case.310, %dispatch.case.309, %dispatch.default.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.185: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.101, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.184 +dispatch.default.308: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.307 -dispatch.case.186: ; preds = %match.arm.49 - %ua.raw106 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw106 to ptr +dispatch.case.309: ; preds = %match.arm.48 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.310: ; preds = %match.arm.48 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.311: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.312: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.313: ; preds = %match.arm.48 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.merge.339: ; preds = %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.default.340 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.340: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.341: ; preds = %match.arm.49 + %ua.raw224 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw224 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.187: ; preds = %match.arm.49 - %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 - %iNp109 = inttoptr i64 %ua.raw108 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp109) +dispatch.case.342: ; preds = %match.arm.49 + %ua.raw226 = extractvalue { i64, i64 } %loadN, 1 + %iNp227 = inttoptr i64 %ua.raw226 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp227) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.188: ; preds = %match.arm.49 - %ua.raw111 = extractvalue { i64, i64 } %loadN, 1 - %iNp112 = inttoptr i64 %ua.raw111 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp112) +dispatch.case.343: ; preds = %match.arm.49 + %ua.raw229 = extractvalue { i64, i64 } %loadN, 1 + %iNp230 = inttoptr i64 %ua.raw229 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp230) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.189: ; preds = %match.arm.49 - %ua.raw114 = extractvalue { i64, i64 } %loadN, 1 - %iNp115 = inttoptr i64 %ua.raw114 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp115) +dispatch.case.344: ; preds = %match.arm.49 + %ua.raw232 = extractvalue { i64, i64 } %loadN, 1 + %iNp233 = inttoptr i64 %ua.raw232 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp233) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.190: ; preds = %match.arm.49 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %iNp118 = inttoptr i64 %ua.raw117 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp118) +dispatch.case.345: ; preds = %match.arm.49 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %iNp236 = inttoptr i64 %ua.raw235 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp236) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.191: ; preds = %match.arm.49 - %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 - %iNp121 = inttoptr i64 %ua.raw120 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp121) +dispatch.case.346: ; preds = %match.arm.49 + %ua.raw238 = extractvalue { i64, i64 } %loadN, 1 + %iNp239 = inttoptr i64 %ua.raw238 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp239) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.192: ; preds = %match.arm.49 - %ua.raw123 = extractvalue { i64, i64 } %loadN, 1 - %iNp124 = inttoptr i64 %ua.raw123 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp124) +dispatch.case.347: ; preds = %match.arm.49 + %ua.raw241 = extractvalue { i64, i64 } %loadN, 1 + %iNp242 = inttoptr i64 %ua.raw241 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp242) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.193: ; preds = %match.arm.49 - %ua.raw126 = extractvalue { i64, i64 } %loadN, 1 - %iNp127 = inttoptr i64 %ua.raw126 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp127) +dispatch.case.348: ; preds = %match.arm.49 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp245 = inttoptr i64 %ua.raw244 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp245) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.194: ; preds = %match.arm.49 - %ua.raw129 = extractvalue { i64, i64 } %loadN, 1 - %iNp130 = inttoptr i64 %ua.raw129 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp130) +dispatch.case.349: ; preds = %match.arm.49 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %iNp248 = inttoptr i64 %ua.raw247 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp248) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.195: ; preds = %match.arm.49 - %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 - %iNp133 = inttoptr i64 %ua.raw132 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp133) +dispatch.case.350: ; preds = %match.arm.49 + %ua.raw250 = extractvalue { i64, i64 } %loadN, 1 + %iNp251 = inttoptr i64 %ua.raw250 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp251) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.196: ; preds = %match.arm.49 - %ua.raw135 = extractvalue { i64, i64 } %loadN, 1 - %iNp136 = inttoptr i64 %ua.raw135 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp136) +dispatch.case.351: ; preds = %match.arm.49 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %iNp254 = inttoptr i64 %ua.raw253 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp254) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.197: ; preds = %match.arm.49 - %ua.raw138 = extractvalue { i64, i64 } %loadN, 1 - %iNp139 = inttoptr i64 %ua.raw138 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp139) +dispatch.case.352: ; preds = %match.arm.49 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %iNp257 = inttoptr i64 %ua.raw256 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp257) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.198: ; preds = %match.arm.49 - %ua.raw141 = extractvalue { i64, i64 } %loadN, 1 - %iNp142 = inttoptr i64 %ua.raw141 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp142) +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %iNp260 = inttoptr i64 %ua.raw259 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp260) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.199: ; preds = %match.arm.49 - %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 - %iNp145 = inttoptr i64 %ua.raw144 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp145) +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %iNp263 = inttoptr i64 %ua.raw262 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp263) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.200: ; preds = %match.arm.49 - %ua.raw147 = extractvalue { i64, i64 } %loadN, 1 - %iNp148 = inttoptr i64 %ua.raw147 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp148) +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp266 = inttoptr i64 %ua.raw265 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp266) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.201: ; preds = %match.arm.49 - %ua.raw150 = extractvalue { i64, i64 } %loadN, 1 - %iNp151 = inttoptr i64 %ua.raw150 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp151) +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %iNp269 = inttoptr i64 %ua.raw268 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp269) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.202: ; preds = %match.arm.49 - %ua.raw153 = extractvalue { i64, i64 } %loadN, 1 - %iNp154 = inttoptr i64 %ua.raw153 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp154) +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw271 = extractvalue { i64, i64 } %loadN, 1 + %iNp272 = inttoptr i64 %ua.raw271 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp272) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.203: ; preds = %match.arm.49 - %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 - %iNp157 = inttoptr i64 %ua.raw156 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp157) +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw274 = extractvalue { i64, i64 } %loadN, 1 + %iNp275 = inttoptr i64 %ua.raw274 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp275) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 + +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw277 = extractvalue { i64, i64 } %loadN, 1 + %iNp278 = inttoptr i64 %ua.raw277 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp278) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw280 = extractvalue { i64, i64 } %loadN, 1 + %iNp281 = inttoptr i64 %ua.raw280 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp281) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw283 = extractvalue { i64, i64 } %loadN, 1 + %iNp284 = inttoptr i64 %ua.raw283 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp284) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw286 = extractvalue { i64, i64 } %loadN, 1 + %iNp287 = inttoptr i64 %ua.raw286 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp287) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp290) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw292 = extractvalue { i64, i64 } %loadN, 1 + %iNp293 = inttoptr i64 %ua.raw292 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp293) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw295 = extractvalue { i64, i64 } %loadN, 1 + %iNp296 = inttoptr i64 %ua.raw295 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp296) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.366: ; preds = %match.arm.49 + %ua.raw298 = extractvalue { i64, i64 } %loadN, 1 + %iNp299 = inttoptr i64 %ua.raw298 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp299) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.367: ; preds = %match.arm.49 + %ua.raw301 = extractvalue { i64, i64 } %loadN, 1 + %iNp302 = inttoptr i64 %ua.raw301 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp302) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.368: ; preds = %match.arm.49 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp305) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.369: ; preds = %match.arm.49 + %ua.raw307 = extractvalue { i64, i64 } %loadN, 1 + %iNp308 = inttoptr i64 %ua.raw307 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp308) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.370: ; preds = %match.arm.49 + %ua.raw310 = extractvalue { i64, i64 } %loadN, 1 + %iNp311 = inttoptr i64 %ua.raw310 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp311) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %iNp314 = inttoptr i64 %ua.raw313 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp314) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.merge.478: ; preds = %dispatch.case.483, %dispatch.case.482, %dispatch.case.481, %dispatch.case.480, %dispatch.default.479 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.479: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.310, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.480: ; preds = %match.arm.50 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { i32 }, i1 }, ptr %ua.ptr318, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.481: ; preds = %match.arm.50 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { ptr, i64 }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.482: ; preds = %match.arm.50 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr326, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.483: ; preds = %match.arm.50 + %ua.raw329 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr330 = inttoptr i64 %ua.raw329 to ptr + %ua.load331 = load { [64 x i8], i1 }, ptr %ua.ptr330, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load331) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 } ; Function Attrs: nounwind @@ -1592,7 +2422,7 @@ 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.102, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.311, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1688,7 +2518,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.103, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, 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 @@ -1696,7 +2526,7 @@ if.then.12: ; preds = %if.then.9 %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.104, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.313, 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 @@ -1706,13 +2536,13 @@ if.then.12: ; preds = %if.then.9 %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.105, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.314, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.106, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, 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 @@ -1720,7 +2550,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.107, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1734,7 +2564,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.108, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, 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 @@ -1742,7 +2572,7 @@ if.then.23: ; preds = %if.else.10 %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.109, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, 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 @@ -1753,7 +2583,7 @@ if.then.23: ; preds = %if.else.10 %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.110, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1810,7 +2640,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, 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 @@ -1818,7 +2648,7 @@ if.then.32: ; preds = %if.then.29 %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.112, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1829,7 +2659,7 @@ if.then.32: ; preds = %if.then.29 %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.113, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1849,7 +2679,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, 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 @@ -1857,7 +2687,7 @@ if.then.35: ; preds = %while.exit.2 %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.115, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, 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 @@ -1868,7 +2698,7 @@ if.then.35: ; preds = %while.exit.2 %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.116, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -1945,6 +2775,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define i32 @main() #0 { entry: @@ -2009,7 +3577,7 @@ entry: define internal void @print__ct_sbc6305862a3a863d__pack_s64(ptr %0, i64 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.117, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.326, i64 3 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2024,7 +3592,7 @@ entry: %gepN = getelementptr inbounds { 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.118, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.327, i64 0 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ba.val9 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %loadN, 1 @@ -2046,7 +3614,7 @@ entry: ; 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.119, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.328, i64 3 }) ret { ptr, i64 } %call } @@ -2073,35 +3641,35 @@ entry: %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.120, i64 15 }, { ptr, i64 } { ptr @str.121, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.329, i64 15 }, { ptr, i64 } { ptr @str.330, 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.105 + br label %while.hdr.121 -while.hdr.105: ; preds = %fv.merge, %entry +while.hdr.121: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.106, label %while.exit.107 + br i1 %icmp, label %while.body.122, label %while.exit.123 -while.body.106: ; preds = %while.hdr.105 +while.body.122: ; preds = %while.hdr.121 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.108, label %if.merge.109 + br i1 %icmpN, label %if.then.124, label %if.merge.125 -while.exit.107: ; preds = %while.hdr.105 +while.exit.123: ; preds = %while.hdr.121 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.331, i64 1 }) ret { ptr, i64 } %callN -if.then.108: ; preds = %while.body.106 +if.then.124: ; preds = %while.body.122 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.123, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.332, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.109 + br label %if.merge.125 -if.merge.109: ; preds = %if.then.108, %while.body.106 +if.merge.125: ; preds = %if.then.124, %while.body.122 %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 @@ -2109,7 +3677,7 @@ if.merge.109: ; preds = %if.then.108, %while %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.127, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.336, 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 @@ -2129,31 +3697,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.105 + br label %while.hdr.121 -fv.default: ; preds = %if.merge.109 +fv.default: ; preds = %if.merge.125 br label %fv.merge -fv.case: ; preds = %if.merge.109 +fv.case: ; preds = %if.merge.125 %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.109 +fv.case17: ; preds = %if.merge.125 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.109 +fv.case20: ; preds = %if.merge.125 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.109 +fv.case24: ; preds = %if.merge.125 %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 @@ -2166,43 +3734,43 @@ 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.128, i64 10 }, { ptr, i64 } { ptr @str.129, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.337, i64 10 }, { ptr, i64 } { ptr @str.338, 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.110 + br label %while.hdr.126 -while.hdr.110: ; preds = %if.merge.114, %entry +while.hdr.126: ; preds = %if.merge.130, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.111, label %while.exit.112 + br i1 %icmp, label %while.body.127, label %while.exit.128 -while.body.111: ; preds = %while.hdr.110 +while.body.127: ; preds = %while.hdr.126 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.113, label %if.merge.114 + br i1 %icmpN, label %if.then.129, label %if.merge.130 -while.exit.112: ; preds = %while.hdr.110 +while.exit.128: ; preds = %while.hdr.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, i64 1 }) ret { ptr, i64 } %callN -if.then.113: ; preds = %while.body.111 +if.then.129: ; preds = %while.body.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.114 + br label %if.merge.130 -if.merge.114: ; preds = %if.then.113, %while.body.111 +if.merge.130: ; preds = %if.then.129, %while.body.127 %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.132, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.341, 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.133, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.342, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2213,7 +3781,7 @@ if.merge.114: ; preds = %if.then.113, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.110 + br label %while.hdr.126 } ; Function Attrs: nounwind @@ -2221,43 +3789,43 @@ 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.134, i64 3 }, { ptr, i64 } { ptr @str.135, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.343, i64 3 }, { ptr, i64 } { ptr @str.344, 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.115 + br label %while.hdr.131 -while.hdr.115: ; preds = %fv.merge, %entry +while.hdr.131: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.116: ; preds = %while.hdr.115 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.117: ; preds = %while.hdr.115 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.135 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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.139, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.348, 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.140, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.349, 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 @@ -2274,12 +3842,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.131 -fv.default: ; preds = %if.merge.119 +fv.default: ; preds = %if.merge.135 br label %fv.merge -fv.case: ; preds = %if.merge.119 +fv.case: ; preds = %if.merge.135 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2290,43 +3858,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.141, i64 10 }, { ptr, i64 } { ptr @str.142, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.350, i64 10 }, { ptr, i64 } { ptr @str.351, 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.120 + br label %while.hdr.136 -while.hdr.120: ; preds = %fv.merge, %entry +while.hdr.136: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.121: ; preds = %while.hdr.120 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.122: ; preds = %while.hdr.120 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.143, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.124 + br label %if.merge.140 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.147, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.356, 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.148, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.357, 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 @@ -2344,18 +3912,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.136 -fv.default: ; preds = %if.merge.124 +fv.default: ; preds = %if.merge.140 br label %fv.merge -fv.case: ; preds = %if.merge.124 +fv.case: ; preds = %if.merge.140 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.124 +fv.case17: ; preds = %if.merge.140 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2366,43 +3934,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.149, i64 9 }, { ptr, i64 } { ptr @str.150, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.358, i64 9 }, { ptr, i64 } { ptr @str.359, 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.125 + br label %while.hdr.141 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.126: ; preds = %while.hdr.125 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.127: ; preds = %while.hdr.125 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.145 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.156, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.365, 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.157, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, 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 @@ -2421,24 +3989,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.129 +fv.case17: ; preds = %if.merge.145 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.129 +fv.case21: ; preds = %if.merge.145 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2451,43 +4019,43 @@ 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.158, i64 5 }, { ptr, i64 } { ptr @str.159, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.367, i64 5 }, { ptr, i64 } { ptr @str.368, 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.130 + br label %while.hdr.146 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.131: ; preds = %while.hdr.130 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.132: ; preds = %while.hdr.130 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.160, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.369, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.161, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.370, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.150 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.165, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.374, 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.166, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, 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 @@ -2506,23 +4074,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.150 %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.134 +fv.case20: ; preds = %if.merge.150 %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 @@ -2535,43 +4103,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.167, i64 8 }, { ptr, i64 } { ptr @str.168, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.376, i64 8 }, { ptr, i64 } { ptr @str.377, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.378, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.379, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.174, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.383, 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.175, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.384, 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 @@ -2590,23 +4158,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.155 %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.139 +fv.case20: ; preds = %if.merge.155 %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 @@ -2618,43 +4186,43 @@ 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.176, i64 17 }, { ptr, i64 } { ptr @str.177, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.385, i64 17 }, { ptr, i64 } { ptr @str.386, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.387, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.179, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.388, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.184, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.393, 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.185, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.394, 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 @@ -2674,29 +4242,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.160 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.160 %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.144 +fv.case20: ; preds = %if.merge.160 %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.144 +fv.case23: ; preds = %if.merge.160 %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 @@ -2708,43 +4276,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.186, i64 7 }, { ptr, i64 } { ptr @str.187, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.395, i64 7 }, { ptr, i64 } { ptr @str.396, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.188, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.397, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.189, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.398, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.192, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.401, 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.193, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.402, 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 %alloca, align 8 @@ -2762,25 +4330,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.165 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.403, i64 4 }, { ptr, i64 } { ptr @str.404, 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.166 + +while.hdr.166: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.167, label %while.exit.168 + +while.body.167: ; preds = %while.hdr.166 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.169, label %if.merge.170 + +while.exit.168: ; preds = %while.hdr.166 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.405, i64 1 }) + ret { ptr, i64 } %callN + +if.then.169: ; preds = %while.body.167 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.406, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.170 + +if.merge.170: ; preds = %if.then.169, %while.body.167 + %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.408, 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.409, 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.166 + +fv.default: ; preds = %if.merge.170 + br label %fv.merge + +fv.case: ; preds = %if.merge.170 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.410, i64 10 }, { ptr, i64 } { ptr @str.411, 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.171 + +while.hdr.171: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.172, label %while.exit.173 + +while.body.172: ; preds = %while.hdr.171 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.174, label %if.merge.175 + +while.exit.173: ; preds = %while.hdr.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 1 }) + ret { ptr, i64 } %callN + +if.then.174: ; preds = %while.body.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.413, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.175 + +if.merge.175: ; preds = %if.then.174, %while.body.172 + %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.419, 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.420, 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.171 + +fv.default: ; preds = %if.merge.175 + br label %fv.merge + +fv.case: ; preds = %if.merge.175 + %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.175 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.175 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.175 + %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.175 + %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.421, i64 13 }, { ptr, i64 } { ptr @str.422, 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.176 + +while.hdr.176: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.177, label %while.exit.178 + +while.body.177: ; preds = %while.hdr.176 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.179, label %if.merge.180 + +while.exit.178: ; preds = %while.hdr.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.423, i64 1 }) + ret { ptr, i64 } %callN + +if.then.179: ; preds = %while.body.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.424, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.180 + +if.merge.180: ; preds = %if.then.179, %while.body.177 + %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.427, 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.428, 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.176 + +fv.default: ; preds = %if.merge.180 + br label %fv.merge + +fv.case: ; preds = %if.merge.180 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.180 + %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.429, i64 8 }, { ptr, i64 } { ptr @str.430, 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.181 + +while.hdr.181: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.182, label %while.exit.183 + +while.body.182: ; preds = %while.hdr.181 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.184, label %if.merge.185 + +while.exit.183: ; preds = %while.hdr.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.431, i64 1 }) + ret { ptr, i64 } %callN + +if.then.184: ; preds = %while.body.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.432, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.185 + +if.merge.185: ; preds = %if.then.184, %while.body.182 + %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.438, 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.439, 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.181 + +fv.default: ; preds = %if.merge.185 + br label %fv.merge + +fv.case: ; preds = %if.merge.185 + %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.185 + %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.185 + %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.185 + %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.185 + %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.440, i64 5 }, { ptr, i64 } { ptr @str.441, 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.186 + +while.hdr.186: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.187, label %while.exit.188 + +while.body.187: ; preds = %while.hdr.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 + +while.exit.188: ; preds = %while.hdr.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.442, i64 1 }) + ret { ptr, i64 } %callN + +if.then.189: ; preds = %while.body.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.443, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.190 + +if.merge.190: ; preds = %if.then.189, %while.body.187 + %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.447, 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.448, 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.186 + +fv.default: ; preds = %if.merge.190 + br label %fv.merge + +fv.case: ; preds = %if.merge.190 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.190 + %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.190 + %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.449, i64 6 }, { ptr, i64 } { ptr @str.450, 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.191 + +while.hdr.191: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.192, label %while.exit.193 + +while.body.192: ; preds = %while.hdr.191 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.194, label %if.merge.195 + +while.exit.193: ; preds = %while.hdr.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.451, i64 1 }) + ret { ptr, i64 } %callN + +if.then.194: ; preds = %while.body.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.452, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.195 + +if.merge.195: ; preds = %if.then.194, %while.body.192 + %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.456, 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.457, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.195 + %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.195 + %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.458, i64 6 }, { ptr, i64 } { ptr @str.459, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.460, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.461, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.464, 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.465, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %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.200 + %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 54, 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.466, i64 4 }, { ptr, i64 } { ptr @str.467, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.468, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.469, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.473, 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.474, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.205 + %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.205 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.475, i64 6 }, { ptr, i64 } { ptr @str.476, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.477, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.478, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.482, 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.483, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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.210 + %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.210 + %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 26, i64 undef }, i64 %ba.p2i23, 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.484, i64 12 }, { ptr, i64 } { ptr @str.485, 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.211 + +while.hdr.211: ; preds = %if.merge.215, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.486, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.487, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.488, 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.489, 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.211 +} + +; 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.490, i64 8 }, { ptr, i64 } { ptr @str.491, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.492, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.497, 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.498, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %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.220 + %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.220 + %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.499, i64 7 }, { ptr, i64 } { ptr @str.500, 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.221 + +while.hdr.221: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.501, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.502, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.506, 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.507, 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.221 + +fv.default: ; preds = %if.merge.225 + br label %fv.merge + +fv.case: ; preds = %if.merge.225 + %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.225 + %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.225 + %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 77, 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.508, i64 9 }, { ptr, i64 } { ptr @str.509, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.510, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.511, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.514, 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.515, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.516, i64 4 }, { ptr, i64 } { ptr @str.517, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.518, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.519, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.522, 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.523, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.524, i64 6 }, { ptr, i64 } { ptr @str.525, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.526, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.527, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.535, 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.536, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.240 + %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.240 + %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.240 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.240 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.240 + %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 81, 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.537, i64 6 }, { ptr, i64 } { ptr @str.538, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.539, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.540, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.545, 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.546, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.245 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.245 + %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.245 + %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 } @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.552, 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.547, 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.253, label %if.merge.254 + +if.then.253: ; 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.554, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.553, 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.254 + +if.merge.254: ; preds = %if.then.253, %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.559, 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.555, 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.255, label %if.merge.256 + +if.then.255: ; 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.561, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.560, 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.256 + +if.merge.256: ; preds = %if.then.255, %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.569, 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.562, 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.257: ; 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.571, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.570, 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.258 + +if.merge.258: ; preds = %if.then.257, %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.257, label %if.merge.258 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.580, 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.572, 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.259, label %if.merge.260 + +if.then.259: ; 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.582, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.581, 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.260 + +if.merge.260: ; preds = %if.then.259, %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.589, 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.583, 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.261, label %if.merge.262 + +if.then.261: ; 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.591, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.590, 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.262 + +if.merge.262: ; preds = %if.then.261, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2788,33 +5998,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.194, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.592, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.155 + br label %while.hdr.272 -while.hdr.155: ; preds = %if.merge.159, %entry +while.hdr.272: ; preds = %if.merge.276, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.156, label %while.exit.157 + br i1 %icmp, label %while.body.273, label %while.exit.274 -while.body.156: ; preds = %while.hdr.155 +while.body.273: ; preds = %while.hdr.272 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.158, label %if.merge.159 + br i1 %icmpN, label %if.then.275, label %if.merge.276 -while.exit.157: ; preds = %while.hdr.155 +while.exit.274: ; preds = %while.hdr.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.195, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.593, i64 1 }) ret { ptr, i64 } %call -if.then.158: ; preds = %while.body.156 +if.then.275: ; preds = %while.body.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.196, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.594, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.159 + br label %if.merge.276 -if.merge.159: ; preds = %if.then.158, %while.body.156 +if.merge.276: ; preds = %if.then.275, %while.body.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2828,7 +6038,211 @@ if.merge.159: ; preds = %if.then.158, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.155 + br label %while.hdr.272 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.595, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.277 + +while.hdr.277: ; preds = %if.merge.281, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.278, label %while.exit.279 + +while.body.278: ; preds = %while.hdr.277 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.280, label %if.merge.281 + +while.exit.279: ; preds = %while.hdr.277 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.596, i64 1 }) + ret { ptr, i64 } %call + +if.then.280: ; preds = %while.body.278 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.597, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.281 + +if.merge.281: ; preds = %if.then.280, %while.body.278 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.277 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.598, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.282 + +while.hdr.282: ; preds = %if.merge.286, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.283, label %while.exit.284 + +while.body.283: ; preds = %while.hdr.282 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.285, label %if.merge.286 + +while.exit.284: ; preds = %while.hdr.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.599, i64 1 }) + ret { ptr, i64 } %call + +if.then.285: ; preds = %while.body.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.286 + +if.merge.286: ; preds = %if.then.285, %while.body.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.282 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.601, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.287 + +while.hdr.287: ; preds = %if.merge.291, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.288, label %while.exit.289 + +while.body.288: ; preds = %while.hdr.287 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.290, label %if.merge.291 + +while.exit.289: ; preds = %while.hdr.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.602, i64 1 }) + ret { ptr, i64 } %call + +if.then.290: ; preds = %while.body.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.291 + +if.merge.291: ; preds = %if.then.290, %while.body.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.287 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.604, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.292 + +while.hdr.292: ; preds = %if.merge.296, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.293, label %while.exit.294 + +while.body.293: ; preds = %while.hdr.292 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.295, label %if.merge.296 + +while.exit.294: ; preds = %while.hdr.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.605, i64 1 }) + ret { ptr, i64 } %call + +if.then.295: ; preds = %while.body.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.296 + +if.merge.296: ; preds = %if.then.295, %while.body.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.292 } ; Function Attrs: nounwind @@ -2839,33 +6253,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [3 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.197, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.607, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.297 -while.hdr.160: ; preds = %if.merge.164, %entry +while.hdr.297: ; preds = %if.merge.301, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.161, label %while.exit.162 + br i1 %icmp, label %while.body.298, label %while.exit.299 -while.body.161: ; preds = %while.hdr.160 +while.body.298: ; preds = %while.hdr.297 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.163, label %if.merge.164 + br i1 %icmpN, label %if.then.300, label %if.merge.301 -while.exit.162: ; preds = %while.hdr.160 +while.exit.299: ; preds = %while.hdr.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.198, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 1 }) ret { ptr, i64 } %call -if.then.163: ; preds = %while.body.161 +if.then.300: ; preds = %while.body.298 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.199, i64 2 }) + %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 - br label %if.merge.164 + br label %if.merge.301 -if.merge.164: ; preds = %if.then.163, %while.body.161 +if.merge.301: ; preds = %if.then.300, %while.body.298 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [3 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2881,7 +6295,7 @@ if.merge.164: ; preds = %if.then.163, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.297 } ; Function Attrs: nounwind @@ -2892,33 +6306,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.200, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.610, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.302 -while.hdr.165: ; preds = %if.merge.169, %entry +while.hdr.302: ; preds = %if.merge.306, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.166, label %while.exit.167 + br i1 %icmp, label %while.body.303, label %while.exit.304 -while.body.166: ; preds = %while.hdr.165 +while.body.303: ; preds = %while.hdr.302 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.168, label %if.merge.169 + br i1 %icmpN, label %if.then.305, label %if.merge.306 -while.exit.167: ; preds = %while.hdr.165 +while.exit.304: ; preds = %while.hdr.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.201, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 1 }) ret { ptr, i64 } %call -if.then.168: ; preds = %while.body.166 +if.then.305: ; preds = %while.body.303 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.202, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.169 + br label %if.merge.306 -if.merge.169: ; preds = %if.then.168, %while.body.166 +if.merge.306: ; preds = %if.then.305, %while.body.303 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2934,7 +6348,7 @@ if.merge.169: ; preds = %if.then.168, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.302 } ; Function Attrs: nounwind @@ -2944,35 +6358,35 @@ entry: %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.203, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.613, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.174 + br label %while.hdr.314 -while.hdr.174: ; preds = %if.merge.178, %entry +while.hdr.314: ; preds = %if.merge.318, %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.175, label %while.exit.176 + br i1 %icmp, label %while.body.315, label %while.exit.316 -while.body.175: ; preds = %while.hdr.174 +while.body.315: ; preds = %while.hdr.314 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.177, label %if.merge.178 + br i1 %icmpN, label %if.then.317, label %if.merge.318 -while.exit.176: ; preds = %while.hdr.174 +while.exit.316: ; preds = %while.hdr.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.204, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 1 }) ret { ptr, i64 } %call -if.then.177: ; preds = %while.body.175 +if.then.317: ; preds = %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.178 + br label %if.merge.318 -if.merge.178: ; preds = %if.then.177, %while.body.175 +if.merge.318: ; preds = %if.then.317, %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2988,7 +6402,167 @@ if.merge.178: ; preds = %if.then.177, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.174 + br label %while.hdr.314 +} + +; 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.616, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.319 + +while.hdr.319: ; preds = %if.merge.323, %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.320, label %while.exit.321 + +while.body.320: ; preds = %while.hdr.319 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.322, label %if.merge.323 + +while.exit.321: ; preds = %while.hdr.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 1 }) + ret { ptr, i64 } %call + +if.then.322: ; preds = %while.body.320 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.323 + +if.merge.323: ; preds = %if.then.322, %while.body.320 + %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.319 +} + +; 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.619, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.324 + +while.hdr.324: ; preds = %if.merge.328, %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.325, label %while.exit.326 + +while.body.325: ; preds = %while.hdr.324 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.327, label %if.merge.328 + +while.exit.326: ; preds = %while.hdr.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 1 }) + ret { ptr, i64 } %call + +if.then.327: ; preds = %while.body.325 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.328 + +if.merge.328: ; preds = %if.then.327, %while.body.325 + %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 76, 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.324 +} + +; 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.622, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.329 + +while.hdr.329: ; preds = %if.merge.333, %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.330, label %while.exit.331 + +while.body.330: ; preds = %while.hdr.329 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.332, label %if.merge.333 + +while.exit.331: ; preds = %while.hdr.329 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 1 }) + ret { ptr, i64 } %call + +if.then.332: ; preds = %while.body.330 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.333 + +if.merge.333: ; preds = %if.then.332, %while.body.330 + %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 78, 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.329 } ; Function Attrs: nounwind @@ -2998,35 +6572,35 @@ entry: %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.206, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.625, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.334 -while.hdr.179: ; preds = %if.merge.183, %entry +while.hdr.334: ; preds = %if.merge.338, %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.180, label %while.exit.181 + br i1 %icmp, label %while.body.335, label %while.exit.336 -while.body.180: ; preds = %while.hdr.179 +while.body.335: ; preds = %while.hdr.334 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.182, label %if.merge.183 + br i1 %icmpN, label %if.then.337, label %if.merge.338 -while.exit.181: ; preds = %while.hdr.179 +while.exit.336: ; preds = %while.hdr.334 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.207, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.626, i64 1 }) ret { ptr, i64 } %call -if.then.182: ; preds = %while.body.180 +if.then.337: ; preds = %while.body.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.627, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.183 + br label %if.merge.338 -if.merge.183: ; preds = %if.then.182, %while.body.180 +if.merge.338: ; preds = %if.then.337, %while.body.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3042,7 +6616,7 @@ if.merge.183: ; preds = %if.then.182, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.334 } ; Function Attrs: nounwind @@ -3056,20 +6630,20 @@ entry: 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.204, label %if.else.205 + br i1 %icmp, label %if.then.372, label %if.else.373 -if.then.204: ; preds = %entry - br label %if.merge.206 +if.then.372: ; preds = %entry + br label %if.merge.374 -if.else.205: ; preds = %entry +if.else.373: ; 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.211, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.210, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.206 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.630, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.629, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.374 -if.merge.206: ; preds = %if.else.205, %if.then.204 - %bp = phi { ptr, i64 } [ { ptr @str.209, i64 4 }, %if.then.204 ], [ %callN, %if.else.205 ] +if.merge.374: ; preds = %if.else.373, %if.then.372 + %bp = phi { ptr, i64 } [ { ptr @str.628, i64 4 }, %if.then.372 ], [ %callN, %if.else.373 ] ret { ptr, i64 } %bp } @@ -3084,20 +6658,20 @@ entry: 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.220, label %if.else.221 + br i1 %icmp, label %if.then.388, label %if.else.389 -if.then.220: ; preds = %entry - br label %if.merge.222 +if.then.388: ; preds = %entry + br label %if.merge.390 -if.else.221: ; preds = %entry +if.else.389: ; 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.214, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.213, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.222 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.633, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.632, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.390 -if.merge.222: ; preds = %if.else.221, %if.then.220 - %bp = phi { ptr, i64 } [ { ptr @str.212, i64 4 }, %if.then.220 ], [ %callN, %if.else.221 ] +if.merge.390: ; preds = %if.else.389, %if.then.388 + %bp = phi { ptr, i64 } [ { ptr @str.631, i64 4 }, %if.then.388 ], [ %callN, %if.else.389 ] ret { ptr, i64 } %bp } @@ -3112,20 +6686,20 @@ entry: 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.223, label %if.else.224 + br i1 %icmp, label %if.then.391, label %if.else.392 -if.then.223: ; preds = %entry - br label %if.merge.225 +if.then.391: ; preds = %entry + br label %if.merge.393 -if.else.224: ; preds = %entry +if.else.392: ; 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.217, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.216, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.225 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.635, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.393 -if.merge.225: ; preds = %if.else.224, %if.then.223 - %bp = phi { ptr, i64 } [ { ptr @str.215, i64 4 }, %if.then.223 ], [ %callN, %if.else.224 ] +if.merge.393: ; preds = %if.else.392, %if.then.391 + %bp = phi { ptr, i64 } [ { ptr @str.634, i64 4 }, %if.then.391 ], [ %callN, %if.else.392 ] ret { ptr, i64 } %bp } @@ -3140,20 +6714,20 @@ entry: 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.226, label %if.else.227 + br i1 %icmp, label %if.then.394, label %if.else.395 -if.then.226: ; preds = %entry - br label %if.merge.228 +if.then.394: ; preds = %entry + br label %if.merge.396 -if.else.227: ; preds = %entry +if.else.395: ; 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.220, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.219, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.228 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.639, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.638, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.396 -if.merge.228: ; preds = %if.else.227, %if.then.226 - %bp = phi { ptr, i64 } [ { ptr @str.218, i64 4 }, %if.then.226 ], [ %callN, %if.else.227 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi { ptr, i64 } [ { ptr @str.637, i64 4 }, %if.then.394 ], [ %callN, %if.else.395 ] ret { ptr, i64 } %bp } @@ -3168,20 +6742,20 @@ entry: 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.229, label %if.else.230 + br i1 %icmp, label %if.then.397, label %if.else.398 -if.then.229: ; preds = %entry - br label %if.merge.231 +if.then.397: ; preds = %entry + br label %if.merge.399 -if.else.230: ; preds = %entry +if.else.398: ; 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.223, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.222, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.231 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.399 -if.merge.231: ; preds = %if.else.230, %if.then.229 - %bp = phi { ptr, i64 } [ { ptr @str.221, i64 4 }, %if.then.229 ], [ %callN, %if.else.230 ] +if.merge.399: ; preds = %if.else.398, %if.then.397 + %bp = phi { ptr, i64 } [ { ptr @str.640, i64 4 }, %if.then.397 ], [ %callN, %if.else.398 ] ret { ptr, i64 } %bp } @@ -3195,20 +6769,20 @@ entry: 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.232, label %if.else.233 + br i1 %icmp, label %if.then.400, label %if.else.401 -if.then.232: ; preds = %entry - br label %if.merge.234 +if.then.400: ; preds = %entry + br label %if.merge.402 -if.else.233: ; preds = %entry +if.else.401: ; 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.226, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.225, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.234 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.644, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.402 -if.merge.234: ; preds = %if.else.233, %if.then.232 - %bp = phi { ptr, i64 } [ { ptr @str.224, i64 4 }, %if.then.232 ], [ %callN, %if.else.233 ] +if.merge.402: ; preds = %if.else.401, %if.then.400 + %bp = phi { ptr, i64 } [ { ptr @str.643, i64 4 }, %if.then.400 ], [ %callN, %if.else.401 ] ret { ptr, i64 } %bp } @@ -3223,20 +6797,20 @@ entry: 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.235, label %if.else.236 + br i1 %icmp, label %if.then.403, label %if.else.404 -if.then.235: ; preds = %entry - br label %if.merge.237 +if.then.403: ; preds = %entry + br label %if.merge.405 -if.else.236: ; preds = %entry +if.else.404: ; 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.229, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.228, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.237 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.405 -if.merge.237: ; preds = %if.else.236, %if.then.235 - %bp = phi { ptr, i64 } [ { ptr @str.227, i64 4 }, %if.then.235 ], [ %callN, %if.else.236 ] +if.merge.405: ; preds = %if.else.404, %if.then.403 + %bp = phi { ptr, i64 } [ { ptr @str.646, i64 4 }, %if.then.403 ], [ %callN, %if.else.404 ] ret { ptr, i64 } %bp } @@ -3251,25 +6825,25 @@ entry: 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.238, label %if.else.239 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.238: ; preds = %entry - br label %if.merge.240 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.239: ; preds = %entry +if.else.407: ; 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.232, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.231, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.240 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.240: ; preds = %if.else.239, %if.then.238 - %bp = phi { ptr, i64 } [ { ptr @str.230, i64 4 }, %if.then.238 ], [ %callN, %if.else.239 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.649, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3279,216 +6853,20 @@ entry: 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.241, label %if.else.242 + br i1 %icmp, label %if.then.409, label %if.else.410 -if.then.241: ; preds = %entry - br label %if.merge.243 +if.then.409: ; preds = %entry + br label %if.merge.411 -if.else.242: ; preds = %entry +if.else.410: ; 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.235, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.234, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.243 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.411 -if.merge.243: ; preds = %if.else.242, %if.then.241 - %bp = phi { ptr, i64 } [ { ptr @str.233, i64 4 }, %if.then.241 ], [ %callN, %if.else.242 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.244, label %if.else.245 - -if.then.244: ; preds = %entry - br label %if.merge.246 - -if.else.245: ; 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.238, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.237, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.246 - -if.merge.246: ; preds = %if.else.245, %if.then.244 - %bp = phi { ptr, i64 } [ { ptr @str.236, i64 4 }, %if.then.244 ], [ %callN, %if.else.245 ] - 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.247, label %if.else.248 - -if.then.247: ; preds = %entry - br label %if.merge.249 - -if.else.248: ; 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.241, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.240, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.249 - -if.merge.249: ; preds = %if.else.248, %if.then.247 - %bp = phi { ptr, i64 } [ { ptr @str.239, i64 4 }, %if.then.247 ], [ %callN, %if.else.248 ] - 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.250, label %if.else.251 - -if.then.250: ; preds = %entry - br label %if.merge.252 - -if.else.251: ; 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.244, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.243, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.252 - -if.merge.252: ; preds = %if.else.251, %if.then.250 - %bp = phi { ptr, i64 } [ { ptr @str.242, i64 4 }, %if.then.250 ], [ %callN, %if.else.251 ] - 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.253, label %if.else.254 - -if.then.253: ; preds = %entry - br label %if.merge.255 - -if.else.254: ; 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.247, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.246, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.255 - -if.merge.255: ; preds = %if.else.254, %if.then.253 - %bp = phi { ptr, i64 } [ { ptr @str.245, i64 4 }, %if.then.253 ], [ %callN, %if.else.254 ] - 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.256, label %if.else.257 - -if.then.256: ; preds = %entry - br label %if.merge.258 - -if.else.257: ; 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.250, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.249, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.258 - -if.merge.258: ; preds = %if.else.257, %if.then.256 - %bp = phi { ptr, i64 } [ { ptr @str.248, i64 4 }, %if.then.256 ], [ %callN, %if.else.257 ] - 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.259, label %if.else.260 - -if.then.259: ; preds = %entry - br label %if.merge.261 - -if.else.260: ; 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.253, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.252, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.261 - -if.merge.261: ; preds = %if.else.260, %if.then.259 - %bp = phi { ptr, i64 } [ { ptr @str.251, i64 4 }, %if.then.259 ], [ %callN, %if.else.260 ] - 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.262, label %if.else.263 - -if.then.262: ; preds = %entry - br label %if.merge.264 - -if.else.263: ; 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.256, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.255, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.264 - -if.merge.264: ; preds = %if.else.263, %if.then.262 - %bp = phi { ptr, i64 } [ { ptr @str.254, i64 4 }, %if.then.262 ], [ %callN, %if.else.263 ] +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.652, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] ret { ptr, i64 } %bp } @@ -3503,20 +6881,578 @@ entry: 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.265, label %if.else.266 + br i1 %icmp, label %if.then.412, label %if.else.413 -if.then.265: ; preds = %entry - br label %if.merge.267 +if.then.412: ; preds = %entry + br label %if.merge.414 -if.else.266: ; preds = %entry +if.else.413: ; 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.259, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.258, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.267 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.414 -if.merge.267: ; preds = %if.else.266, %if.then.265 - %bp = phi { ptr, i64 } [ { ptr @str.257, i64 4 }, %if.then.265 ], [ %callN, %if.else.266 ] +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.655, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.415, label %if.else.416 + +if.then.415: ; preds = %entry + br label %if.merge.417 + +if.else.416: ; 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.660, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.659, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.417 + +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.658, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] + 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.418, label %if.else.419 + +if.then.418: ; preds = %entry + br label %if.merge.420 + +if.else.419: ; 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.663, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.662, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.420 + +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.661, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] + 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.421, label %if.else.422 + +if.then.421: ; preds = %entry + br label %if.merge.423 + +if.else.422: ; 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.666, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.665, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.423 + +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.664, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] + 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.424, label %if.else.425 + +if.then.424: ; preds = %entry + br label %if.merge.426 + +if.else.425: ; 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.669, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.668, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.426 + +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.667, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] + 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.427, label %if.else.428 + +if.then.427: ; preds = %entry + br label %if.merge.429 + +if.else.428: ; 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.672, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.671, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.429 + +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.670, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] + 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.430, label %if.else.431 + +if.then.430: ; preds = %entry + br label %if.merge.432 + +if.else.431: ; 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.675, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.674, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.432 + +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.673, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] + 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.433, label %if.else.434 + +if.then.433: ; preds = %entry + br label %if.merge.435 + +if.else.434: ; 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.678, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.677, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.435 + +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.676, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] + 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.436, label %if.else.437 + +if.then.436: ; preds = %entry + br label %if.merge.438 + +if.else.437: ; 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.681, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.680, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.438 + +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.679, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + 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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.684, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.683, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.682, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.687, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.686, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.685, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.690, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.689, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.688, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + 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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.693, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.692, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.691, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.696, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.695, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.694, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.699, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.698, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.697, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.702, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.701, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.700, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + 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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.705, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.704, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.703, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.708, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.707, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.706, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + 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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.711, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.709, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] + 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.469, label %if.else.470 + +if.then.469: ; preds = %entry + br label %if.merge.471 + +if.else.470: ; 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.714, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.471 + +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.712, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] + 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.472, label %if.else.473 + +if.then.472: ; preds = %entry + br label %if.merge.474 + +if.else.473: ; 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.717, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.474 + +if.merge.474: ; preds = %if.else.473, %if.then.472 + %bp = phi { ptr, i64 } [ { ptr @str.715, i64 4 }, %if.then.472 ], [ %callN, %if.else.473 ] ret { ptr, i64 } %bp } @@ -3531,19 +7467,115 @@ entry: 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.268, label %if.else.269 + br i1 %icmp, label %if.then.475, label %if.else.476 -if.then.268: ; preds = %entry - br label %if.merge.270 +if.then.475: ; preds = %entry + br label %if.merge.477 -if.else.269: ; preds = %entry +if.else.476: ; 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.262, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.261, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.270 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.720, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.477 -if.merge.270: ; preds = %if.else.269, %if.then.268 - %bp = phi { ptr, i64 } [ { ptr @str.260, i64 4 }, %if.then.268 ], [ %callN, %if.else.269 ] +if.merge.477: ; preds = %if.else.476, %if.then.475 + %bp = phi { ptr, i64 } [ { ptr @str.718, i64 4 }, %if.then.475 ], [ %callN, %if.else.476 ] 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.484, label %if.merge.485 + +if.then.484: ; preds = %entry + ret { ptr, i64 } { ptr @str.721, i64 4 } + +if.merge.485: ; 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 39, 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.486, label %if.merge.487 + +if.then.486: ; preds = %entry + ret { ptr, i64 } { ptr @str.722, i64 4 } + +if.merge.487: ; 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_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.488, label %if.merge.489 + +if.then.488: ; preds = %entry + ret { ptr, i64 } { ptr @str.723, i64 4 } + +if.merge.489: ; 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 45, 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.490, label %if.merge.491 + +if.then.490: ; preds = %entry + ret { ptr, i64 } { ptr @str.724, i64 4 } + +if.merge.491: ; 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 88, 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/0518-packs-pack-value-dispatch.ir b/examples/expected/0518-packs-pack-value-dispatch.ir index 2b8b624..b144695 100644 --- a/examples/expected/0518-packs-pack-value-dispatch.ir +++ b/examples/expected/0518-packs-pack-value-dispatch.ir @@ -1,257 +1,617 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [70 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [160 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.64 = private constant [5 x i8] c"*s64\00" -@tn.str.65 = private constant [7 x i8] c"**void\00" -@tn.str.66 = private constant [6 x i8] c"[]Any\00" -@tn.str.67 = private constant [5 x i8] c"*Any\00" -@tn.str.68 = private constant [7 x i8] c"[1]Any\00" -@tn.str.69 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.70 = private constant [7 x i8] c"*[]Any\00" -@tn.str.71 = private constant [8 x i8] c"*string\00" -@tn.str.72 = private constant [4 x i8] c"*u8\00" -@tn.str.73 = private constant [6 x i8] c"*bool\00" -@tn.str.74 = private constant [5 x i8] c"*f64\00" -@tn.str.75 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.76 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.77 = private constant [11 x i8] c"*Allocator\00" -@tn.str.78 = private constant [9 x i8] c"*Context\00" -@tn.str.79 = private constant [10 x i8] c"*[]string\00" -@tn.str.80 = private constant [6 x i8] c"**GPA\00" -@tn.str.81 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.82 = private constant [8 x i8] c"**Arena\00" -@tn.str.83 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.84 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.85 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.86 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.87 = private constant [6 x i8] c"**s64\00" -@tn.str.88 = private constant [8 x i8] c"***void\00" -@tn.str.89 = private constant [6 x i8] c"**Any\00" -@tn.str.90 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.91 = private constant [8 x i8] c"**[]Any\00" -@tn.str.92 = private constant [9 x i8] c"**string\00" -@tn.str.93 = private constant [5 x i8] c"**u8\00" -@tn.str.94 = private constant [7 x i8] c"**bool\00" -@tn.str.95 = private constant [6 x i8] c"**f64\00" -@__sx_type_names = private constant [70 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 12 }, { ptr, i64 } { ptr @tn.str.64, i64 4 }, { ptr, i64 } { ptr @tn.str.65, i64 6 }, { ptr, i64 } { ptr @tn.str.66, i64 5 }, { ptr, i64 } { ptr @tn.str.67, i64 4 }, { ptr, i64 } { ptr @tn.str.68, i64 6 }, { ptr, i64 } { ptr @tn.str.69, i64 7 }, { ptr, i64 } { ptr @tn.str.70, i64 6 }, { ptr, i64 } { ptr @tn.str.71, i64 7 }, { ptr, i64 } { ptr @tn.str.72, i64 3 }, { ptr, i64 } { ptr @tn.str.73, i64 5 }, { ptr, i64 } { ptr @tn.str.74, i64 4 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 16 }, { ptr, i64 } { ptr @tn.str.77, i64 10 }, { ptr, i64 } { ptr @tn.str.78, i64 8 }, { ptr, i64 } { ptr @tn.str.79, i64 9 }, { ptr, i64 } { ptr @tn.str.80, i64 5 }, { ptr, i64 } { ptr @tn.str.81, i64 12 }, { ptr, i64 } { ptr @tn.str.82, i64 7 }, { ptr, i64 } { ptr @tn.str.83, i64 6 }, { ptr, i64 } { ptr @tn.str.84, i64 10 }, { ptr, i64 } { ptr @tn.str.85, i64 19 }, { ptr, i64 } { ptr @tn.str.86, i64 13 }, { ptr, i64 } { ptr @tn.str.87, i64 5 }, { ptr, i64 } { ptr @tn.str.88, i64 7 }, { ptr, i64 } { ptr @tn.str.89, i64 5 }, { ptr, i64 } { ptr @tn.str.90, i64 8 }, { ptr, i64 } { ptr @tn.str.91, i64 7 }, { ptr, i64 } { ptr @tn.str.92, i64 8 }, { ptr, i64 } { ptr @tn.str.93, i64 4 }, { ptr, i64 } { ptr @tn.str.94, i64 6 }, { ptr, i64 } { ptr @tn.str.95, i64 5 }] -@str.96 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.97 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.98 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.99 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.100 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.101 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.102 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.103 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.104 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.105 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.106 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.107 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.108 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.112 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.113 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.114 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.115 = private unnamed_addr constant [3 x i8] c"hi\00", align 1 -@str.116 = private unnamed_addr constant [6 x i8] c"hello\00", align 1 -@str.117 = private unnamed_addr constant [4 x i8] c"s64\00", align 1 -@str.118 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.119 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.120 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.121 = private unnamed_addr constant [7 x i8] c"string\00", align 1 -@str.122 = private unnamed_addr constant [4 x i8] c"f64\00", align 1 -@str.123 = private unnamed_addr constant [8 x i8] c"got s64\00", align 1 -@str.124 = private unnamed_addr constant [11 x i8] c"got string\00", align 1 -@str.125 = private unnamed_addr constant [9 x i8] c"got bool\00", align 1 -@str.126 = private unnamed_addr constant [10 x i8] c"got other\00", align 1 -@str.127 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.128 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.129 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.130 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.237 = private constant [7 x i8] c"**void\00" +@tn.str.238 = private constant [6 x i8] c"[]Any\00" +@tn.str.239 = private constant [5 x i8] c"*Any\00" +@tn.str.240 = private constant [7 x i8] c"[1]Any\00" +@tn.str.241 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.242 = private constant [7 x i8] c"*[]Any\00" +@tn.str.243 = private constant [8 x i8] c"*string\00" +@tn.str.244 = private constant [6 x i8] c"*bool\00" +@tn.str.245 = private constant [5 x i8] c"*f64\00" +@tn.str.246 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.247 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.248 = private constant [11 x i8] c"*Allocator\00" +@tn.str.249 = private constant [9 x i8] c"*Context\00" +@tn.str.250 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.251 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.252 = private constant [8 x i8] c"*Member\00" +@tn.str.253 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.254 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.255 = private constant [9 x i8] c"*Command\00" +@tn.str.256 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.257 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.258 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.259 = private constant [7 x i8] c"*Value\00" +@tn.str.260 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.261 = private constant [14 x i8] c"*Architecture\00" +@tn.str.262 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.263 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.264 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.265 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.266 = private constant [10 x i8] c"*[]string\00" +@tn.str.267 = private constant [6 x i8] c"*[]u8\00" +@tn.str.268 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.269 = private constant [11 x i8] c"*[]Command\00" +@tn.str.270 = private constant [6 x i8] c"**GPA\00" +@tn.str.271 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.272 = private constant [8 x i8] c"**Arena\00" +@tn.str.273 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.274 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.275 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.276 = private constant [7 x i8] c"**File\00" +@tn.str.277 = private constant [5 x i8] c"**u8\00" +@tn.str.278 = private constant [6 x i8] c"**s32\00" +@tn.str.279 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.280 = private constant [6 x i8] c"**u32\00" +@tn.str.281 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.282 = private constant [8 x i8] c"**Array\00" +@tn.str.283 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.284 = private constant [9 x i8] c"**Object\00" +@tn.str.285 = private constant [7 x i8] c"**Sink\00" +@tn.str.286 = private constant [9 x i8] c"**Parser\00" +@tn.str.287 = private constant [6 x i8] c"**s64\00" +@tn.str.288 = private constant [9 x i8] c"**Parsed\00" +@tn.str.289 = private constant [7 x i8] c"**Diag\00" +@tn.str.290 = private constant [9 x i8] c"**Sha256\00" +@tn.str.291 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.292 = private constant [8 x i8] c"***void\00" +@tn.str.293 = private constant [6 x i8] c"**Any\00" +@tn.str.294 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.295 = private constant [8 x i8] c"**[]Any\00" +@tn.str.296 = private constant [9 x i8] c"**string\00" +@tn.str.297 = private constant [7 x i8] c"**bool\00" +@tn.str.298 = private constant [6 x i8] c"**f64\00" +@tn.str.299 = private constant [7 x i8] c"*?File\00" +@tn.str.300 = private constant [9 x i8] c"*?string\00" +@tn.str.301 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.302 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [160 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 12 }, { ptr, i64 } { ptr @tn.str.237, i64 6 }, { ptr, i64 } { ptr @tn.str.238, i64 5 }, { ptr, i64 } { ptr @tn.str.239, i64 4 }, { ptr, i64 } { ptr @tn.str.240, i64 6 }, { ptr, i64 } { ptr @tn.str.241, i64 7 }, { ptr, i64 } { ptr @tn.str.242, i64 6 }, { ptr, i64 } { ptr @tn.str.243, i64 7 }, { ptr, i64 } { ptr @tn.str.244, i64 5 }, { ptr, i64 } { ptr @tn.str.245, i64 4 }, { ptr, i64 } { ptr @tn.str.246, i64 7 }, { ptr, i64 } { ptr @tn.str.247, i64 16 }, { ptr, i64 } { ptr @tn.str.248, i64 10 }, { ptr, i64 } { ptr @tn.str.249, i64 8 }, { ptr, i64 } { ptr @tn.str.250, i64 11 }, { ptr, i64 } { ptr @tn.str.251, i64 14 }, { ptr, i64 } { ptr @tn.str.252, i64 7 }, { ptr, i64 } { ptr @tn.str.253, i64 13 }, { ptr, i64 } { ptr @tn.str.254, i64 9 }, { ptr, i64 } { ptr @tn.str.255, i64 8 }, { ptr, i64 } { ptr @tn.str.256, i64 10 }, { ptr, i64 } { ptr @tn.str.257, i64 9 }, { ptr, i64 } { ptr @tn.str.258, i64 9 }, { ptr, i64 } { ptr @tn.str.259, i64 6 }, { ptr, i64 } { ptr @tn.str.260, i64 16 }, { ptr, i64 } { ptr @tn.str.261, i64 13 }, { ptr, i64 } { ptr @tn.str.262, i64 14 }, { ptr, i64 } { ptr @tn.str.263, i64 7 }, { ptr, i64 } { ptr @tn.str.264, i64 7 }, { ptr, i64 } { ptr @tn.str.265, i64 8 }, { ptr, i64 } { ptr @tn.str.266, i64 9 }, { ptr, i64 } { ptr @tn.str.267, i64 5 }, { ptr, i64 } { ptr @tn.str.268, i64 11 }, { ptr, i64 } { ptr @tn.str.269, i64 10 }, { ptr, i64 } { ptr @tn.str.270, i64 5 }, { ptr, i64 } { ptr @tn.str.271, i64 12 }, { ptr, i64 } { ptr @tn.str.272, i64 7 }, { ptr, i64 } { ptr @tn.str.273, i64 6 }, { ptr, i64 } { ptr @tn.str.274, i64 10 }, { ptr, i64 } { ptr @tn.str.275, i64 19 }, { ptr, i64 } { ptr @tn.str.276, i64 6 }, { ptr, i64 } { ptr @tn.str.277, i64 4 }, { ptr, i64 } { ptr @tn.str.278, i64 5 }, { ptr, i64 } { ptr @tn.str.279, i64 10 }, { ptr, i64 } { ptr @tn.str.280, i64 5 }, { ptr, i64 } { ptr @tn.str.281, i64 9 }, { ptr, i64 } { ptr @tn.str.282, i64 7 }, { ptr, i64 } { ptr @tn.str.283, i64 10 }, { ptr, i64 } { ptr @tn.str.284, i64 8 }, { ptr, i64 } { ptr @tn.str.285, i64 6 }, { ptr, i64 } { ptr @tn.str.286, i64 8 }, { ptr, i64 } { ptr @tn.str.287, i64 5 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 6 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 13 }, { ptr, i64 } { ptr @tn.str.292, i64 7 }, { ptr, i64 } { ptr @tn.str.293, i64 5 }, { ptr, i64 } { ptr @tn.str.294, i64 8 }, { ptr, i64 } { ptr @tn.str.295, i64 7 }, { ptr, i64 } { ptr @tn.str.296, i64 8 }, { ptr, i64 } { ptr @tn.str.297, i64 6 }, { ptr, i64 } { ptr @tn.str.298, i64 5 }, { ptr, i64 } { ptr @tn.str.299, i64 6 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 15 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }] +@str.303 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.304 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.305 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.306 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.307 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.310 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.311 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.312 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.313 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.314 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.315 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.316 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.317 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.318 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.319 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.320 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.321 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.322 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.323 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.324 = private unnamed_addr constant [3 x i8] c"hi\00", align 1 +@str.325 = private unnamed_addr constant [6 x i8] c"hello\00", align 1 +@str.326 = private unnamed_addr constant [4 x i8] c"s64\00", align 1 +@str.327 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.328 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.329 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.330 = private unnamed_addr constant [7 x i8] c"string\00", align 1 +@str.331 = private unnamed_addr constant [4 x i8] c"f64\00", align 1 +@str.332 = private unnamed_addr constant [8 x i8] c"got s64\00", align 1 +@str.333 = private unnamed_addr constant [11 x i8] c"got string\00", align 1 +@str.334 = private unnamed_addr constant [9 x i8] c"got bool\00", align 1 +@str.335 = private unnamed_addr constant [10 x i8] c"got other\00", align 1 +@str.336 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.337 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.338 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.339 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.131 = private constant [5 x i8] c"line\00" -@fld.str.132 = private constant [4 x i8] c"col\00" -@fld.str.133 = 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.131, i64 4 }, { ptr, i64 } { ptr @fld.str.132, i64 3 }, { ptr, i64 } { ptr @fld.str.133, i64 4 }] -@str.134 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.135 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.136 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.137 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.139 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.140 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.141 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.142 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.144 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.145 = private constant [12 x i8] c"alloc_count\00" -@field_names.146 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.145, i64 11 }] -@str.147 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.148 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.149 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.151 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.152 = private constant [5 x i8] c"next\00" -@fld.str.153 = private constant [4 x i8] c"cap\00" -@field_names.154 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.152, i64 4 }, { ptr, i64 } { ptr @fld.str.153, i64 3 }] -@str.155 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.156 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.157 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.158 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.159 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.160 = private constant [4 x i8] c"ctx\00" -@fld.str.161 = private constant [6 x i8] c"alloc\00" -@fld.str.162 = private constant [8 x i8] c"dealloc\00" -@field_names.163 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.160, i64 3 }, { ptr, i64 } { ptr @fld.str.161, i64 5 }, { ptr, i64 } { ptr @fld.str.162, i64 7 }] -@str.164 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.165 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.166 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.167 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.168 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.169 = private constant [6 x i8] c"first\00" -@fld.str.170 = private constant [10 x i8] c"end_index\00" -@fld.str.171 = private constant [7 x i8] c"parent\00" -@field_names.172 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.169, i64 5 }, { ptr, i64 } { ptr @fld.str.170, i64 9 }, { ptr, i64 } { ptr @fld.str.171, i64 6 }] -@str.173 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.174 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.175 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.176 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.177 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.178 = private constant [4 x i8] c"buf\00" -@fld.str.179 = private constant [4 x i8] c"len\00" -@fld.str.180 = private constant [4 x i8] c"pos\00" -@field_names.181 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.178, i64 3 }, { ptr, i64 } { ptr @fld.str.179, i64 3 }, { ptr, i64 } { ptr @fld.str.180, i64 3 }] -@str.182 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.183 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.184 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.185 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.186 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.187 = private constant [7 x i8] c"parent\00" -@fld.str.188 = private constant [12 x i8] c"alloc_count\00" -@fld.str.189 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.190 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.191 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.187, i64 6 }, { ptr, i64 } { ptr @fld.str.188, i64 11 }, { ptr, i64 } { ptr @fld.str.189, i64 13 }, { ptr, i64 } { ptr @fld.str.190, i64 17 }] -@str.192 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.193 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.194 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.195 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.196 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.197 = private constant [10 x i8] c"allocator\00" -@fld.str.198 = private constant [5 x i8] c"data\00" -@field_names.199 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.197, i64 9 }, { ptr, i64 } { ptr @fld.str.198, i64 4 }] -@str.200 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.201 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.203 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.204 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.205 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.206 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.207 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.209 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.210 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.212 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.213 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.214 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.215 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.216 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.217 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.218 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.219 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.220 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.221 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.222 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.223 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.224 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.225 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.226 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.227 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.228 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.229 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.230 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.231 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.232 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.233 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.234 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.235 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.236 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.237 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.238 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.239 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.240 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.241 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.242 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.243 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.244 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.245 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.246 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.247 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.248 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.249 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.250 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.251 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.252 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.253 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.254 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.255 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.256 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.257 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.258 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.259 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.260 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.261 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.262 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.263 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.264 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.265 = private unnamed_addr constant [5 x i8] c"*f64\00", align 1 -@str.266 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.340 = private constant [5 x i8] c"line\00" +@fld.str.341 = private constant [4 x i8] c"col\00" +@fld.str.342 = 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.340, i64 4 }, { ptr, i64 } { ptr @fld.str.341, i64 3 }, { ptr, i64 } { ptr @fld.str.342, i64 4 }] +@str.343 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.344 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.345 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.346 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.347 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.348 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.349 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.350 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.353 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.354 = private constant [12 x i8] c"alloc_count\00" +@field_names.355 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.354, i64 11 }] +@str.356 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.357 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.358 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.360 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.361 = private constant [5 x i8] c"next\00" +@fld.str.362 = private constant [4 x i8] c"cap\00" +@field_names.363 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.361, i64 4 }, { ptr, i64 } { ptr @fld.str.362, i64 3 }] +@str.364 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.365 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.366 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.367 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.368 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.369 = private constant [4 x i8] c"ctx\00" +@fld.str.370 = private constant [6 x i8] c"alloc\00" +@fld.str.371 = private constant [8 x i8] c"dealloc\00" +@field_names.372 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.369, i64 3 }, { ptr, i64 } { ptr @fld.str.370, i64 5 }, { ptr, i64 } { ptr @fld.str.371, i64 7 }] +@str.373 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.374 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.375 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.376 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.377 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.378 = private constant [6 x i8] c"first\00" +@fld.str.379 = private constant [10 x i8] c"end_index\00" +@fld.str.380 = private constant [7 x i8] c"parent\00" +@field_names.381 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.378, i64 5 }, { ptr, i64 } { ptr @fld.str.379, i64 9 }, { ptr, i64 } { ptr @fld.str.380, i64 6 }] +@str.382 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.383 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.384 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.385 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.386 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.387 = private constant [4 x i8] c"buf\00" +@fld.str.388 = private constant [4 x i8] c"len\00" +@fld.str.389 = private constant [4 x i8] c"pos\00" +@field_names.390 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.387, i64 3 }, { ptr, i64 } { ptr @fld.str.388, i64 3 }, { ptr, i64 } { ptr @fld.str.389, i64 3 }] +@str.391 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.392 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.393 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.394 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.395 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.396 = private constant [7 x i8] c"parent\00" +@fld.str.397 = private constant [12 x i8] c"alloc_count\00" +@fld.str.398 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.399 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.400 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.396, i64 6 }, { ptr, i64 } { ptr @fld.str.397, i64 11 }, { ptr, i64 } { ptr @fld.str.398, i64 13 }, { ptr, i64 } { ptr @fld.str.399, i64 17 }] +@str.401 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.402 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.403 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.404 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.405 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.406 = private constant [10 x i8] c"allocator\00" +@fld.str.407 = private constant [5 x i8] c"data\00" +@field_names.408 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.406, i64 9 }, { ptr, i64 } { ptr @fld.str.407, i64 4 }] +@str.409 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.410 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.412 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.413 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.414 = private constant [3 x i8] c"fd\00" +@field_names.415 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.414, i64 2 }] +@str.416 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.417 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.420 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.421 = private constant [5 x i8] c"file\00" +@fld.str.422 = private constant [5 x i8] c"line\00" +@fld.str.423 = private constant [4 x i8] c"col\00" +@fld.str.424 = private constant [5 x i8] c"func\00" +@fld.str.425 = private constant [10 x i8] c"line_text\00" +@field_names.426 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.421, i64 4 }, { ptr, i64 } { ptr @fld.str.422, i64 4 }, { ptr, i64 } { ptr @fld.str.423, i64 3 }, { ptr, i64 } { ptr @fld.str.424, i64 4 }, { ptr, i64 } { ptr @fld.str.425, i64 9 }] +@str.427 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.428 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.429 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.430 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.431 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.432 = private constant [10 x i8] c"exit_code\00" +@fld.str.433 = private constant [7 x i8] c"stdout\00" +@field_names.434 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.432, i64 9 }, { ptr, i64 } { ptr @fld.str.433, i64 6 }] +@str.435 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.436 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.437 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.438 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.439 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.440 = private constant [8 x i8] c"sin_len\00" +@fld.str.441 = private constant [11 x i8] c"sin_family\00" +@fld.str.442 = private constant [9 x i8] c"sin_port\00" +@fld.str.443 = private constant [9 x i8] c"sin_addr\00" +@fld.str.444 = private constant [9 x i8] c"sin_zero\00" +@field_names.445 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.440, i64 7 }, { ptr, i64 } { ptr @fld.str.441, i64 10 }, { ptr, i64 } { ptr @fld.str.442, i64 8 }, { ptr, i64 } { ptr @fld.str.443, i64 8 }, { ptr, i64 } { ptr @fld.str.444, i64 8 }] +@str.446 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.447 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.448 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.449 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.450 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.451 = private constant [6 x i8] c"items\00" +@fld.str.452 = private constant [4 x i8] c"len\00" +@fld.str.453 = private constant [4 x i8] c"cap\00" +@field_names.454 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.451, i64 5 }, { ptr, i64 } { ptr @fld.str.452, i64 3 }, { ptr, i64 } { ptr @fld.str.453, i64 3 }] +@str.455 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.456 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.457 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.458 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.459 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.460 = private constant [6 x i8] c"items\00" +@fld.str.461 = private constant [4 x i8] c"len\00" +@fld.str.462 = private constant [4 x i8] c"cap\00" +@field_names.463 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.460, i64 5 }, { ptr, i64 } { ptr @fld.str.461, i64 3 }, { ptr, i64 } { ptr @fld.str.462, i64 3 }] +@str.464 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.465 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.466 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.467 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.468 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.469 = private constant [4 x i8] c"key\00" +@fld.str.470 = private constant [4 x i8] c"val\00" +@field_names.471 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.469, i64 3 }, { ptr, i64 } { ptr @fld.str.470, i64 3 }] +@str.472 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.473 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.474 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.475 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.476 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.477 = private constant [4 x i8] c"dst\00" +@fld.str.478 = private constant [4 x i8] c"pos\00" +@fld.str.479 = private constant [5 x i8] c"file\00" +@field_names.480 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.477, i64 3 }, { ptr, i64 } { ptr @fld.str.478, i64 3 }, { ptr, i64 } { ptr @fld.str.479, i64 4 }] +@str.481 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.482 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.483 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.484 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.485 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.486 = private constant [4 x i8] c"src\00" +@fld.str.487 = private constant [4 x i8] c"pos\00" +@fld.str.488 = private constant [6 x i8] c"alloc\00" +@field_names.489 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.486, i64 3 }, { ptr, i64 } { ptr @fld.str.487, i64 3 }, { ptr, i64 } { ptr @fld.str.488, i64 5 }] +@str.490 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.491 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.493 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.494 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.495 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.496 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.497 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.498 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.499 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.500 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.501 = private constant [5 x i8] c"name\00" +@fld.str.502 = private constant [12 x i8] c"takes_value\00" +@fld.str.503 = private constant [9 x i8] c"required\00" +@field_names.504 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.501, i64 4 }, { ptr, i64 } { ptr @fld.str.502, i64 11 }, { ptr, i64 } { ptr @fld.str.503, i64 8 }] +@str.505 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.506 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.507 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.508 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.509 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.510 = private constant [6 x i8] c"group\00" +@fld.str.511 = private constant [8 x i8] c"command\00" +@fld.str.512 = private constant [6 x i8] c"flags\00" +@field_names.513 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.510, i64 5 }, { ptr, i64 } { ptr @fld.str.511, i64 7 }, { ptr, i64 } { ptr @fld.str.512, i64 5 }] +@str.514 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.515 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.516 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.517 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.518 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.519 = private constant [4 x i8] c"set\00" +@fld.str.520 = private constant [6 x i8] c"value\00" +@field_names.521 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.519, i64 3 }, { ptr, i64 } { ptr @fld.str.520, i64 5 }] +@str.522 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.523 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.524 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.525 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.526 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.527 = private constant [6 x i8] c"index\00" +@fld.str.528 = private constant [6 x i8] c"token\00" +@field_names.529 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.527, i64 5 }, { ptr, i64 } { ptr @fld.str.528, i64 5 }] +@str.530 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.531 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.532 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.533 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.534 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.535 = private constant [6 x i8] c"group\00" +@fld.str.536 = private constant [8 x i8] c"command\00" +@fld.str.537 = private constant [10 x i8] c"cmd_index\00" +@fld.str.538 = private constant [5 x i8] c"json\00" +@fld.str.539 = private constant [5 x i8] c"rest\00" +@fld.str.540 = private constant [5 x i8] c"spec\00" +@fld.str.541 = private constant [7 x i8] c"values\00" +@field_names.542 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.535, i64 5 }, { ptr, i64 } { ptr @fld.str.536, i64 7 }, { ptr, i64 } { ptr @fld.str.537, i64 9 }, { ptr, i64 } { ptr @fld.str.538, i64 4 }, { ptr, i64 } { ptr @fld.str.539, i64 4 }, { ptr, i64 } { ptr @fld.str.540, i64 4 }, { ptr, i64 } { ptr @fld.str.541, i64 6 }] +@str.543 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.544 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.545 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.546 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.547 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.548 = private constant [2 x i8] c"h\00" +@fld.str.549 = private constant [4 x i8] c"buf\00" +@fld.str.550 = private constant [8 x i8] c"buf_len\00" +@fld.str.551 = private constant [10 x i8] c"total_len\00" +@field_names.552 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.548, i64 1 }, { ptr, i64 } { ptr @fld.str.549, i64 3 }, { ptr, i64 } { ptr @fld.str.550, i64 7 }, { ptr, i64 } { ptr @fld.str.551, i64 9 }] +@str.553 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.554 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.555 = private constant [5 x i8] c"read\00" +@fld.str.556 = private constant [6 x i8] c"write\00" +@fld.str.557 = private constant [7 x i8] c"append\00" +@fld.str.558 = private constant [11 x i8] c"read_write\00" +@field_names.559 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.555, i64 4 }, { ptr, i64 } { ptr @fld.str.556, i64 5 }, { ptr, i64 } { ptr @fld.str.557, i64 6 }, { ptr, i64 } { ptr @fld.str.558, i64 10 }] +@str.560 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.562 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.563 = private constant [4 x i8] c"set\00" +@fld.str.564 = private constant [8 x i8] c"current\00" +@fld.str.565 = private constant [4 x i8] c"end\00" +@field_names.566 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.563, i64 3 }, { ptr, i64 } { ptr @fld.str.564, i64 7 }, { ptr, i64 } { ptr @fld.str.565, i64 3 }] +@str.567 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.570 = private constant [6 x i8] c"null_\00" +@fld.str.571 = private constant [6 x i8] c"bool_\00" +@fld.str.572 = private constant [5 x i8] c"int_\00" +@fld.str.573 = private constant [4 x i8] c"str\00" +@fld.str.574 = private constant [6 x i8] c"array\00" +@fld.str.575 = private constant [7 x i8] c"object\00" +@field_names.576 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.570, i64 5 }, { ptr, i64 } { ptr @fld.str.571, i64 5 }, { ptr, i64 } { ptr @fld.str.572, i64 4 }, { ptr, i64 } { ptr @fld.str.573, i64 3 }, { ptr, i64 } { ptr @fld.str.574, i64 5 }, { ptr, i64 } { ptr @fld.str.575, i64 6 }] +@str.577 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.578 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.579 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.580 = private constant [6 x i8] c"macos\00" +@fld.str.581 = private constant [6 x i8] c"linux\00" +@fld.str.582 = private constant [8 x i8] c"windows\00" +@fld.str.583 = private constant [5 x i8] c"wasm\00" +@fld.str.584 = private constant [4 x i8] c"ios\00" +@fld.str.585 = private constant [8 x i8] c"android\00" +@fld.str.586 = private constant [8 x i8] c"unknown\00" +@field_names.587 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.580, i64 5 }, { ptr, i64 } { ptr @fld.str.581, i64 5 }, { ptr, i64 } { ptr @fld.str.582, i64 7 }, { ptr, i64 } { ptr @fld.str.583, i64 4 }, { ptr, i64 } { ptr @fld.str.584, i64 3 }, { ptr, i64 } { ptr @fld.str.585, i64 7 }, { ptr, i64 } { ptr @fld.str.586, i64 7 }] +@str.588 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.589 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.590 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.591 = private constant [8 x i8] c"aarch64\00" +@fld.str.592 = private constant [7 x i8] c"x86_64\00" +@fld.str.593 = private constant [7 x i8] c"wasm32\00" +@fld.str.594 = private constant [7 x i8] c"wasm64\00" +@fld.str.595 = private constant [8 x i8] c"unknown\00" +@field_names.596 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.591, i64 7 }, { ptr, i64 } { ptr @fld.str.592, i64 6 }, { ptr, i64 } { ptr @fld.str.593, i64 6 }, { ptr, i64 } { ptr @fld.str.594, i64 6 }, { ptr, i64 } { ptr @fld.str.595, i64 7 }] +@str.597 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.600 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.601 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.602 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.603 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.604 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.607 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.609 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.610 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.612 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.613 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.616 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.618 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.619 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.622 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.624 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.625 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.627 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.628 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.629 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.630 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.631 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.632 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.633 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.634 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.635 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.636 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.637 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.638 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.639 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.640 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.641 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.642 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.643 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.644 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.645 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.646 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.647 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.648 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.649 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.650 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.651 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.652 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.653 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.654 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.655 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.656 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.657 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.658 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.659 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.660 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.661 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.662 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.663 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.664 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.665 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.666 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.667 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.668 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.669 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.670 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.671 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.672 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.673 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.674 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.675 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.676 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.677 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.678 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.679 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.680 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.681 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.682 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.683 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.684 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.685 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.686 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.687 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.688 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.689 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.690 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.691 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.692 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.693 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.694 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.695 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.696 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.697 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.698 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.699 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.700 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.701 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.702 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.703 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.704 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.705 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.706 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.707 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.708 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.709 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.710 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.711 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.712 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.713 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.714 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.715 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.716 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.717 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.718 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.719 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.720 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.721 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.722 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.723 = private unnamed_addr constant [5 x i8] c"*f64\00", align 1 +@str.724 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.725 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.728 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -483,7 +843,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -610,7 +970,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -779,38 +1139,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.203 + br label %while.hdr.371 -while.hdr.203: ; preds = %if.merge.208, %entry +while.hdr.371: ; preds = %if.merge.376, %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.204, label %while.exit.205 + br i1 %icmp, label %while.body.372, label %while.exit.373 -while.body.204: ; preds = %while.hdr.203 +while.body.372: ; preds = %while.hdr.371 %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.206, label %if.else.207 + br i1 %icmpN, label %if.then.374, label %if.else.375 -while.exit.205: ; preds = %while.hdr.203 +while.exit.373: ; preds = %while.hdr.371 ret void -if.then.206: ; preds = %while.body.204 +if.then.374: ; preds = %while.body.372 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.208 + br label %if.merge.376 -if.else.207: ; preds = %while.body.204 +if.else.375: ; preds = %while.body.372 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.208 + br label %if.merge.376 -if.merge.208: ; preds = %if.else.207, %if.then.206 - %bp = phi i64 [ %addN, %if.then.206 ], [ %addN, %if.else.207 ] +if.merge.376: ; preds = %if.else.375, %if.then.374 + %bp = phi i64 [ %addN, %if.then.374 ], [ %addN, %if.else.375 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -823,7 +1183,7 @@ if.merge.208: ; preds = %if.else.207, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.203 + br label %while.hdr.371 } ; Function Attrs: nounwind @@ -941,12 +1301,12 @@ entry: 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.201, label %if.merge.202 + br i1 %icmp, label %if.then.369, label %if.merge.370 -if.then.201: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.369: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.202: ; preds = %entry +if.merge.370: ; 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 @@ -977,14 +1337,14 @@ if.merge.202: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.377 -while.hdr.209: ; preds = %if.merge.213, %if.merge.202 +while.hdr.377: ; preds = %if.merge.381, %if.merge.370 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.210, label %while.exit.211 + br i1 %icmpN, label %while.body.378, label %while.exit.379 -while.body.210: ; preds = %while.hdr.209 +while.body.378: ; preds = %while.hdr.377 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -992,9 +1352,9 @@ while.body.210: ; preds = %while.hdr.209 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.212, label %if.merge.213 + br i1 %icmpN, label %if.then.380, label %if.merge.381 -while.exit.211: ; preds = %if.then.212, %while.hdr.209 +while.exit.379: ; preds = %if.then.380, %while.hdr.377 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1002,14 +1362,14 @@ while.exit.211: ; preds = %if.then.212, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.212: ; preds = %while.body.210 - br label %while.exit.211 +if.then.380: ; preds = %while.body.378 + br label %while.exit.379 -if.merge.213: ; preds = %while.body.210 +if.merge.381: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.377 } ; Function Attrs: nounwind @@ -1087,11 +1447,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1124,10 +1487,41 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 + i64 39, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 42, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 97, label %match.arm.47 i64 36, label %match.arm.48 - i64 40, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 95, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1136,25 +1530,42 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 37, label %match.arm.49 - i64 38, label %match.arm.49 - i64 39, label %match.arm.49 - i64 41, label %match.arm.49 - i64 43, label %match.arm.49 + i64 40, label %match.arm.49 i64 44, label %match.arm.49 - i64 45, label %match.arm.49 - i64 46, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 + i64 49, label %match.arm.49 + i64 50, label %match.arm.49 + i64 56, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 93, label %match.arm.49 + i64 94, label %match.arm.49 + i64 96, label %match.arm.49 + i64 98, label %match.arm.49 + i64 99, label %match.arm.49 + i64 100, label %match.arm.49 + i64 101, label %match.arm.49 + i64 102, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.178, %dispatch.merge.164, %dispatch.merge.150, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.472, %dispatch.merge.333, %dispatch.merge.301, %dispatch.merge.263, %dispatch.merge.246, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1163,7 +1574,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [70 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [160 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1191,7 +1602,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1205,70 +1616,132 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.247 [ + i64 37, label %dispatch.case.248 + i64 38, label %dispatch.case.249 + i64 54, label %dispatch.case.250 + i64 70, label %dispatch.case.251 + i64 71, label %dispatch.case.252 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.151 [ - i64 35, label %dispatch.case.152 - i64 42, label %dispatch.case.153 + switch i64 %ua.raw29, label %dispatch.default.264 [ + i64 35, label %dispatch.case.265 + i64 81, label %dispatch.case.266 + i64 87, label %dispatch.case.267 + i64 88, label %dispatch.case.268 + i64 92, label %dispatch.case.269 + i64 97, label %dispatch.case.270 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.165 [ - i64 36, label %dispatch.case.166 - i64 40, label %dispatch.case.167 + switch i64 %ua.raw33, label %dispatch.default.302 [ + i64 36, label %dispatch.case.303 + i64 60, label %dispatch.case.304 + i64 77, label %dispatch.case.305 + i64 85, label %dispatch.case.306 + i64 95, label %dispatch.case.307 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.179 [ - i64 18, label %dispatch.case.180 - i64 21, label %dispatch.case.181 - i64 23, label %dispatch.case.182 - i64 25, label %dispatch.case.183 - i64 28, label %dispatch.case.184 - i64 29, label %dispatch.case.185 - i64 31, label %dispatch.case.186 - i64 33, label %dispatch.case.187 - i64 37, label %dispatch.case.188 - i64 38, label %dispatch.case.189 - i64 39, label %dispatch.case.190 - i64 41, label %dispatch.case.191 - i64 43, label %dispatch.case.192 - i64 44, label %dispatch.case.193 - i64 45, label %dispatch.case.194 - i64 46, label %dispatch.case.195 - i64 47, label %dispatch.case.196 - i64 48, label %dispatch.case.197 + switch i64 %ua.raw37, label %dispatch.default.334 [ + i64 18, label %dispatch.case.335 + i64 21, label %dispatch.case.336 + i64 23, label %dispatch.case.337 + i64 25, label %dispatch.case.338 + i64 28, label %dispatch.case.339 + i64 29, label %dispatch.case.340 + i64 31, label %dispatch.case.341 + i64 33, label %dispatch.case.342 + i64 40, label %dispatch.case.343 + i64 44, label %dispatch.case.344 + i64 47, label %dispatch.case.345 + i64 49, label %dispatch.case.346 + i64 50, label %dispatch.case.347 + i64 56, label %dispatch.case.348 + i64 57, label %dispatch.case.349 + i64 58, label %dispatch.case.350 + i64 59, label %dispatch.case.351 + i64 62, label %dispatch.case.352 + i64 67, label %dispatch.case.353 + i64 74, label %dispatch.case.354 + i64 83, label %dispatch.case.355 + i64 86, label %dispatch.case.356 + i64 90, label %dispatch.case.357 + i64 93, label %dispatch.case.358 + i64 94, label %dispatch.case.359 + i64 96, label %dispatch.case.360 + i64 98, label %dispatch.case.361 + i64 99, label %dispatch.case.362 + i64 100, label %dispatch.case.363 + i64 101, label %dispatch.case.364 + i64 102, label %dispatch.case.365 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.473 [ + i64 41, label %dispatch.case.474 + i64 42, label %dispatch.case.475 + i64 46, label %dispatch.case.476 + i64 91, label %dispatch.case.477 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [70 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [160 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1278,15 +1751,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1294,16 +1767,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1313,271 +1786,628 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.96, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.303, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.150: ; preds = %dispatch.case.153, %dispatch.case.152, %dispatch.default.151 +dispatch.case.105: ; preds = %match.arm.43 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.106: ; preds = %match.arm.43 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.107: ; preds = %match.arm.43 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.246: ; preds = %dispatch.case.252, %dispatch.case.251, %dispatch.case.250, %dispatch.case.249, %dispatch.case.248, %dispatch.default.247 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.151: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.97, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.150 +dispatch.default.247: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.304, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.246 -dispatch.case.152: ; preds = %match.arm.47 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load [4 x i64], ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load86) +dispatch.case.248: ; preds = %match.arm.44 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.case.153: ; preds = %match.arm.47 - %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr - %ua.load90 = load [1 x { i64, i64 }], ptr %ua.ptr89, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load90) +dispatch.case.249: ; preds = %match.arm.44 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.150 + br label %dispatch.merge.246 -dispatch.merge.164: ; preds = %dispatch.case.167, %dispatch.case.166, %dispatch.default.165 +dispatch.case.250: ; preds = %match.arm.44 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.251: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.case.252: ; preds = %match.arm.44 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.246 + +dispatch.merge.263: ; preds = %dispatch.case.270, %dispatch.case.269, %dispatch.case.268, %dispatch.case.267, %dispatch.case.266, %dispatch.case.265, %dispatch.default.264 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.165: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.98, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.164 +dispatch.default.264: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.305, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.263 -dispatch.case.166: ; preds = %match.arm.48 - %ua.raw93 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr94 = inttoptr i64 %ua.raw93 to ptr - %ua.load95 = load { ptr, i64 }, ptr %ua.ptr94, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load95) +dispatch.case.265: ; preds = %match.arm.47 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.164 + br label %dispatch.merge.263 -dispatch.case.167: ; preds = %match.arm.48 - %ua.raw97 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr98 = inttoptr i64 %ua.raw97 to ptr - %ua.load99 = load { ptr, i64 }, ptr %ua.ptr98, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load99) +dispatch.case.266: ; preds = %match.arm.47 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.164 + br label %dispatch.merge.263 -dispatch.merge.178: ; preds = %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.case.189, %dispatch.case.188, %dispatch.case.187, %dispatch.case.186, %dispatch.case.185, %dispatch.case.184, %dispatch.case.183, %dispatch.case.182, %dispatch.case.181, %dispatch.case.180, %dispatch.default.179 +dispatch.case.267: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.268: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.269: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.case.270: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.263 + +dispatch.merge.301: ; preds = %dispatch.case.307, %dispatch.case.306, %dispatch.case.305, %dispatch.case.304, %dispatch.case.303, %dispatch.default.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.179: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.99, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.178 +dispatch.default.302: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.306, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.301 -dispatch.case.180: ; preds = %match.arm.49 - %ua.raw102 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw102 to ptr +dispatch.case.303: ; preds = %match.arm.48 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr200 = inttoptr i64 %ua.raw199 to ptr + %ua.load201 = load { ptr, i64 }, ptr %ua.ptr200, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load201) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.304: ; preds = %match.arm.48 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.305: ; preds = %match.arm.48 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.306: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.case.307: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.301 + +dispatch.merge.333: ; preds = %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.case.340, %dispatch.case.339, %dispatch.case.338, %dispatch.case.337, %dispatch.case.336, %dispatch.case.335, %dispatch.default.334 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.334: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.307, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.335: ; preds = %match.arm.49 + %ua.raw220 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw220 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.181: ; preds = %match.arm.49 - %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 - %iNp105 = inttoptr i64 %ua.raw104 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp105) +dispatch.case.336: ; preds = %match.arm.49 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %iNp223 = inttoptr i64 %ua.raw222 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp223) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.182: ; preds = %match.arm.49 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %iNp108 = inttoptr i64 %ua.raw107 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp108) +dispatch.case.337: ; preds = %match.arm.49 + %ua.raw225 = extractvalue { i64, i64 } %loadN, 1 + %iNp226 = inttoptr i64 %ua.raw225 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp226) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.183: ; preds = %match.arm.49 - %ua.raw110 = extractvalue { i64, i64 } %loadN, 1 - %iNp111 = inttoptr i64 %ua.raw110 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp111) +dispatch.case.338: ; preds = %match.arm.49 + %ua.raw228 = extractvalue { i64, i64 } %loadN, 1 + %iNp229 = inttoptr i64 %ua.raw228 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp229) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.184: ; preds = %match.arm.49 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %iNp114 = inttoptr i64 %ua.raw113 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp114) +dispatch.case.339: ; preds = %match.arm.49 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %iNp232 = inttoptr i64 %ua.raw231 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp232) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.185: ; preds = %match.arm.49 - %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 - %iNp117 = inttoptr i64 %ua.raw116 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp117) +dispatch.case.340: ; preds = %match.arm.49 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.186: ; preds = %match.arm.49 - %ua.raw119 = extractvalue { i64, i64 } %loadN, 1 - %iNp120 = inttoptr i64 %ua.raw119 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp120) +dispatch.case.341: ; preds = %match.arm.49 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.187: ; preds = %match.arm.49 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %iNp123 = inttoptr i64 %ua.raw122 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp123) +dispatch.case.342: ; preds = %match.arm.49 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.188: ; preds = %match.arm.49 - %ua.raw125 = extractvalue { i64, i64 } %loadN, 1 - %iNp126 = inttoptr i64 %ua.raw125 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp126) +dispatch.case.343: ; preds = %match.arm.49 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.189: ; preds = %match.arm.49 - %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 - %iNp129 = inttoptr i64 %ua.raw128 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp129) +dispatch.case.344: ; preds = %match.arm.49 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.190: ; preds = %match.arm.49 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp132 = inttoptr i64 %ua.raw131 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp132) +dispatch.case.345: ; preds = %match.arm.49 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.191: ; preds = %match.arm.49 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %iNp135 = inttoptr i64 %ua.raw134 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp135) +dispatch.case.346: ; preds = %match.arm.49 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.192: ; preds = %match.arm.49 - %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 - %iNp138 = inttoptr i64 %ua.raw137 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp138) +dispatch.case.347: ; preds = %match.arm.49 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.193: ; preds = %match.arm.49 - %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 - %iNp141 = inttoptr i64 %ua.raw140 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp141) +dispatch.case.348: ; preds = %match.arm.49 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.194: ; preds = %match.arm.49 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %iNp144 = inttoptr i64 %ua.raw143 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp144) +dispatch.case.349: ; preds = %match.arm.49 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.195: ; preds = %match.arm.49 - %ua.raw146 = extractvalue { i64, i64 } %loadN, 1 - %iNp147 = inttoptr i64 %ua.raw146 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp147) +dispatch.case.350: ; preds = %match.arm.49 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.196: ; preds = %match.arm.49 - %ua.raw149 = extractvalue { i64, i64 } %loadN, 1 - %iNp150 = inttoptr i64 %ua.raw149 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp150) +dispatch.case.351: ; preds = %match.arm.49 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 -dispatch.case.197: ; preds = %match.arm.49 - %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 - %iNp153 = inttoptr i64 %ua.raw152 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp153) +dispatch.case.352: ; preds = %match.arm.49 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.178 + br label %dispatch.merge.333 + +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp274) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp280) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp283) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp286) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp289) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.merge.472: ; preds = %dispatch.case.477, %dispatch.case.476, %dispatch.case.475, %dispatch.case.474, %dispatch.default.473 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.473: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.474: ; preds = %match.arm.50 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr314 = inttoptr i64 %ua.raw313 to ptr + %ua.load315 = load { { i32 }, i1 }, ptr %ua.ptr314, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load315) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.475: ; preds = %match.arm.50 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { ptr, i64 }, i1 }, ptr %ua.ptr318, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.476: ; preds = %match.arm.50 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 + +dispatch.case.477: ; preds = %match.arm.50 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { [64 x i8], i1 }, ptr %ua.ptr326, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.472 } ; Function Attrs: nounwind @@ -1586,7 +2416,7 @@ 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.100, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.309, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1682,7 +2512,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.101, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.310, 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 @@ -1690,7 +2520,7 @@ if.then.12: ; preds = %if.then.9 %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.102, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.311, 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 @@ -1700,13 +2530,13 @@ if.then.12: ; preds = %if.then.9 %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.103, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.312, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.104, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.313, 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 @@ -1714,7 +2544,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.105, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.314, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1728,7 +2558,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.106, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, 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 @@ -1736,7 +2566,7 @@ if.then.23: ; preds = %if.else.10 %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.107, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, 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 @@ -1747,7 +2577,7 @@ if.then.23: ; preds = %if.else.10 %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.108, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1804,7 +2634,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, 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 @@ -1812,7 +2642,7 @@ if.then.32: ; preds = %if.then.29 %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.110, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, 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 @@ -1823,7 +2653,7 @@ if.then.32: ; preds = %if.then.29 %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.111, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1843,7 +2673,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1851,7 +2681,7 @@ if.then.35: ; preds = %while.exit.2 %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.113, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, 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 @@ -1862,7 +2692,7 @@ if.then.35: ; preds = %while.exit.2 %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.114, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -1939,18 +2769,756 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define i32 @main() #0 { entry: %call = call { ptr, i64 } @show__pack_s64(ptr @__sx_default_context, i64 42) call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %call) - %callN = call { ptr, i64 } @show__pack_string(ptr @__sx_default_context, { ptr, i64 } { ptr @str.115, i64 2 }) + %callN = call { ptr, i64 } @show__pack_string(ptr @__sx_default_context, { ptr, i64 } { ptr @str.324, i64 2 }) call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN) %callN = call { ptr, i64 } @show__pack_f64(ptr @__sx_default_context, double 3.140000e+00) call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN) %callN = call { ptr, i64 } @describe__pack_s64(ptr @__sx_default_context, i64 42) call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN) - %callN = call { ptr, i64 } @describe__pack_string(ptr @__sx_default_context, { ptr, i64 } { ptr @str.116, i64 5 }) + %callN = call { ptr, i64 } @describe__pack_string(ptr @__sx_default_context, { ptr, i64 } { ptr @str.325, i64 5 }) call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN) %callN = call { ptr, i64 } @describe__pack_bool(ptr @__sx_default_context, i1 true) call void @print__ct_sbc6305862a3a863d__pack_string(ptr @__sx_default_context, { ptr, i64 } %callN) @@ -1989,14 +3557,14 @@ entry: store ptr %igp.ptr3, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 1, ptr %gepN, align 8 - ret { ptr, i64 } { ptr @str.117, i64 3 } + ret { ptr, i64 } { ptr @str.326, i64 3 } } ; Function Attrs: nounwind define internal void @print__ct_sbc6305862a3a863d__pack_string(ptr %0, { ptr, i64 } %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.118, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.327, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2014,7 +3582,7 @@ entry: %gepN = getelementptr inbounds { 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.119, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.328, i64 0 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %ba.tmp9 = alloca { ptr, i64 }, align 8 @@ -2039,7 +3607,7 @@ entry: ; 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.120, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.329, i64 3 }) ret { ptr, i64 } %call } @@ -2062,7 +3630,7 @@ entry: store ptr %igp.ptr3, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 1, ptr %gepN, align 8 - ret { ptr, i64 } { ptr @str.121, i64 6 } + ret { ptr, i64 } { ptr @str.330, i64 6 } } ; Function Attrs: nounwind @@ -2082,7 +3650,7 @@ entry: store ptr %igp.ptr3, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 1, ptr %gepN, align 8 - ret { ptr, i64 } { ptr @str.122, i64 3 } + ret { ptr, i64 } { ptr @str.331, i64 3 } } ; Function Attrs: nounwind @@ -2101,7 +3669,7 @@ entry: store ptr %igp.ptr3, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 1, ptr %gepN, align 8 - ret { ptr, i64 } { ptr @str.123, i64 7 } + ret { ptr, i64 } { ptr @str.332, i64 7 } } ; Function Attrs: nounwind @@ -2123,7 +3691,7 @@ entry: store ptr %igp.ptr3, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 1, ptr %gepN, align 8 - ret { ptr, i64 } { ptr @str.124, i64 10 } + ret { ptr, i64 } { ptr @str.333, i64 10 } } ; Function Attrs: nounwind @@ -2143,7 +3711,7 @@ entry: store ptr %igp.ptr3, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 1, ptr %gepN, align 8 - ret { ptr, i64 } { ptr @str.125, i64 8 } + ret { ptr, i64 } { ptr @str.334, i64 8 } } ; Function Attrs: nounwind @@ -2163,7 +3731,7 @@ entry: store ptr %igp.ptr3, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 1, ptr %gepN, align 8 - ret { ptr, i64 } { ptr @str.126, i64 9 } + ret { ptr, i64 } { ptr @str.335, i64 9 } } ; Function Attrs: nounwind @@ -2173,35 +3741,35 @@ entry: %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.127, i64 15 }, { ptr, i64 } { ptr @str.128, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.336, i64 15 }, { ptr, i64 } { ptr @str.337, 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.105 + br label %while.hdr.121 -while.hdr.105: ; preds = %fv.merge, %entry +while.hdr.121: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.106, label %while.exit.107 + br i1 %icmp, label %while.body.122, label %while.exit.123 -while.body.106: ; preds = %while.hdr.105 +while.body.122: ; preds = %while.hdr.121 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.108, label %if.merge.109 + br i1 %icmpN, label %if.then.124, label %if.merge.125 -while.exit.107: ; preds = %while.hdr.105 +while.exit.123: ; preds = %while.hdr.121 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, i64 1 }) ret { ptr, i64 } %callN -if.then.108: ; preds = %while.body.106 +if.then.124: ; preds = %while.body.122 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.109 + br label %if.merge.125 -if.merge.109: ; preds = %if.then.108, %while.body.106 +if.merge.125: ; preds = %if.then.124, %while.body.122 %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 @@ -2209,7 +3777,7 @@ if.merge.109: ; preds = %if.then.108, %while %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.134, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, 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 @@ -2229,31 +3797,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.105 + br label %while.hdr.121 -fv.default: ; preds = %if.merge.109 +fv.default: ; preds = %if.merge.125 br label %fv.merge -fv.case: ; preds = %if.merge.109 +fv.case: ; preds = %if.merge.125 %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.109 +fv.case17: ; preds = %if.merge.125 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.109 +fv.case20: ; preds = %if.merge.125 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.109 +fv.case24: ; preds = %if.merge.125 %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 @@ -2266,43 +3834,43 @@ 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.135, i64 10 }, { ptr, i64 } { ptr @str.136, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.344, i64 10 }, { ptr, i64 } { ptr @str.345, 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.110 + br label %while.hdr.126 -while.hdr.110: ; preds = %if.merge.114, %entry +while.hdr.126: ; preds = %if.merge.130, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.111, label %while.exit.112 + br i1 %icmp, label %while.body.127, label %while.exit.128 -while.body.111: ; preds = %while.hdr.110 +while.body.127: ; preds = %while.hdr.126 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.113, label %if.merge.114 + br i1 %icmpN, label %if.then.129, label %if.merge.130 -while.exit.112: ; preds = %while.hdr.110 +while.exit.128: ; preds = %while.hdr.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 1 }) ret { ptr, i64 } %callN -if.then.113: ; preds = %while.body.111 +if.then.129: ; preds = %while.body.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.347, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.114 + br label %if.merge.130 -if.merge.114: ; preds = %if.then.113, %while.body.111 +if.merge.130: ; preds = %if.then.129, %while.body.127 %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.139, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.348, 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.140, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.349, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2313,7 +3881,7 @@ if.merge.114: ; preds = %if.then.113, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.110 + br label %while.hdr.126 } ; Function Attrs: nounwind @@ -2321,43 +3889,43 @@ 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.141, i64 3 }, { ptr, i64 } { ptr @str.142, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.350, i64 3 }, { ptr, i64 } { ptr @str.351, 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.115 + br label %while.hdr.131 -while.hdr.115: ; preds = %fv.merge, %entry +while.hdr.131: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.116: ; preds = %while.hdr.115 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.117: ; preds = %while.hdr.115 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.143, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.135 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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.146, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.355, 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.147, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.356, 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 @@ -2374,12 +3942,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.131 -fv.default: ; preds = %if.merge.119 +fv.default: ; preds = %if.merge.135 br label %fv.merge -fv.case: ; preds = %if.merge.119 +fv.case: ; preds = %if.merge.135 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2390,43 +3958,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.148, i64 10 }, { ptr, i64 } { ptr @str.149, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.357, i64 10 }, { ptr, i64 } { ptr @str.358, 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.120 + br label %while.hdr.136 -while.hdr.120: ; preds = %fv.merge, %entry +while.hdr.136: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.121: ; preds = %while.hdr.120 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.122: ; preds = %while.hdr.120 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.150, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.124 + br label %if.merge.140 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.154, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.363, 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.155, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.364, 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 @@ -2444,18 +4012,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.136 -fv.default: ; preds = %if.merge.124 +fv.default: ; preds = %if.merge.140 br label %fv.merge -fv.case: ; preds = %if.merge.124 +fv.case: ; preds = %if.merge.140 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.124 +fv.case17: ; preds = %if.merge.140 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2466,43 +4034,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.156, i64 9 }, { ptr, i64 } { ptr @str.157, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.365, i64 9 }, { ptr, i64 } { ptr @str.366, 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.125 + br label %while.hdr.141 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.126: ; preds = %while.hdr.125 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.127: ; preds = %while.hdr.125 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.368, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.145 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.163, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.372, 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.164, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, 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 @@ -2521,24 +4089,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.129 +fv.case17: ; preds = %if.merge.145 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.129 +fv.case21: ; preds = %if.merge.145 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2551,43 +4119,43 @@ 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.165, i64 5 }, { ptr, i64 } { ptr @str.166, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.374, i64 5 }, { ptr, i64 } { ptr @str.375, 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.130 + br label %while.hdr.146 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.131: ; preds = %while.hdr.130 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.132: ; preds = %while.hdr.130 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.376, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.377, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.150 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.172, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.381, 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.173, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, 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 @@ -2606,23 +4174,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.150 %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.134 +fv.case20: ; preds = %if.merge.150 %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 @@ -2635,43 +4203,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.174, i64 8 }, { ptr, i64 } { ptr @str.175, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.383, i64 8 }, { ptr, i64 } { ptr @str.384, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.385, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.386, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.181, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.390, 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.182, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, 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 @@ -2690,23 +4258,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.155 %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.139 +fv.case20: ; preds = %if.merge.155 %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 @@ -2718,43 +4286,43 @@ 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.183, i64 17 }, { ptr, i64 } { ptr @str.184, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.392, i64 17 }, { ptr, i64 } { ptr @str.393, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.185, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.394, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.395, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.191, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.400, 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.192, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.401, 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 @@ -2774,29 +4342,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.160 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.160 %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.144 +fv.case20: ; preds = %if.merge.160 %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.144 +fv.case23: ; preds = %if.merge.160 %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 @@ -2808,43 +4376,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.193, i64 7 }, { ptr, i64 } { ptr @str.194, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.402, i64 7 }, { ptr, i64 } { ptr @str.403, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.195, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.404, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.196, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.405, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.199, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.408, 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.200, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.409, 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 %alloca, align 8 @@ -2862,25 +4430,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.165 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.410, i64 4 }, { ptr, i64 } { ptr @str.411, 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.166 + +while.hdr.166: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.167, label %while.exit.168 + +while.body.167: ; preds = %while.hdr.166 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.169, label %if.merge.170 + +while.exit.168: ; preds = %while.hdr.166 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 1 }) + ret { ptr, i64 } %callN + +if.then.169: ; preds = %while.body.167 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.413, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.170 + +if.merge.170: ; preds = %if.then.169, %while.body.167 + %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.415, 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.416, 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.166 + +fv.default: ; preds = %if.merge.170 + br label %fv.merge + +fv.case: ; preds = %if.merge.170 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.417, i64 10 }, { ptr, i64 } { ptr @str.418, 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.171 + +while.hdr.171: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.172, label %while.exit.173 + +while.body.172: ; preds = %while.hdr.171 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.174, label %if.merge.175 + +while.exit.173: ; preds = %while.hdr.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 1 }) + ret { ptr, i64 } %callN + +if.then.174: ; preds = %while.body.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.175 + +if.merge.175: ; preds = %if.then.174, %while.body.172 + %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.426, 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.427, 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.171 + +fv.default: ; preds = %if.merge.175 + br label %fv.merge + +fv.case: ; preds = %if.merge.175 + %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.175 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.175 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.175 + %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.175 + %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.428, i64 13 }, { ptr, i64 } { ptr @str.429, 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.176 + +while.hdr.176: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.177, label %while.exit.178 + +while.body.177: ; preds = %while.hdr.176 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.179, label %if.merge.180 + +while.exit.178: ; preds = %while.hdr.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.430, i64 1 }) + ret { ptr, i64 } %callN + +if.then.179: ; preds = %while.body.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.431, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.180 + +if.merge.180: ; preds = %if.then.179, %while.body.177 + %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.434, 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.435, 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.176 + +fv.default: ; preds = %if.merge.180 + br label %fv.merge + +fv.case: ; preds = %if.merge.180 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.180 + %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.436, i64 8 }, { ptr, i64 } { ptr @str.437, 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.181 + +while.hdr.181: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.182, label %while.exit.183 + +while.body.182: ; preds = %while.hdr.181 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.184, label %if.merge.185 + +while.exit.183: ; preds = %while.hdr.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.438, i64 1 }) + ret { ptr, i64 } %callN + +if.then.184: ; preds = %while.body.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.439, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.185 + +if.merge.185: ; preds = %if.then.184, %while.body.182 + %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.445, 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.446, 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.181 + +fv.default: ; preds = %if.merge.185 + br label %fv.merge + +fv.case: ; preds = %if.merge.185 + %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.185 + %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.185 + %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.185 + %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.185 + %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.447, i64 5 }, { ptr, i64 } { ptr @str.448, 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.186 + +while.hdr.186: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.187, label %while.exit.188 + +while.body.187: ; preds = %while.hdr.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 + +while.exit.188: ; preds = %while.hdr.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.449, i64 1 }) + ret { ptr, i64 } %callN + +if.then.189: ; preds = %while.body.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.450, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.190 + +if.merge.190: ; preds = %if.then.189, %while.body.187 + %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.454, 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.455, 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.186 + +fv.default: ; preds = %if.merge.190 + br label %fv.merge + +fv.case: ; preds = %if.merge.190 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.190 + %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.190 + %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.456, i64 6 }, { ptr, i64 } { ptr @str.457, 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.191 + +while.hdr.191: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.192, label %while.exit.193 + +while.body.192: ; preds = %while.hdr.191 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.194, label %if.merge.195 + +while.exit.193: ; preds = %while.hdr.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.458, i64 1 }) + ret { ptr, i64 } %callN + +if.then.194: ; preds = %while.body.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.459, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.195 + +if.merge.195: ; preds = %if.then.194, %while.body.192 + %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.463, 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.464, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.195 + %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.195 + %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.465, i64 6 }, { ptr, i64 } { ptr @str.466, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.467, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.468, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.471, 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.472, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %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.200 + %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 54, 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.473, i64 4 }, { ptr, i64 } { ptr @str.474, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.475, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.476, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.480, 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.481, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.205 + %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.205 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.482, i64 6 }, { ptr, i64 } { ptr @str.483, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.484, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.485, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.489, 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.490, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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.210 + %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.210 + %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 26, i64 undef }, i64 %ba.p2i23, 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.491, i64 12 }, { ptr, i64 } { ptr @str.492, 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.211 + +while.hdr.211: ; preds = %if.merge.215, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.494, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.495, 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.496, 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.211 +} + +; 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.497, i64 8 }, { ptr, i64 } { ptr @str.498, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.499, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.500, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.504, 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.505, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %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.220 + %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.220 + %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.506, i64 7 }, { ptr, i64 } { ptr @str.507, 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.221 + +while.hdr.221: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.508, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.509, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.513, 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.514, 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.221 + +fv.default: ; preds = %if.merge.225 + br label %fv.merge + +fv.case: ; preds = %if.merge.225 + %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.225 + %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.225 + %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 77, 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.515, i64 9 }, { ptr, i64 } { ptr @str.516, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.517, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.518, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.521, 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.522, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.523, i64 4 }, { ptr, i64 } { ptr @str.524, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.525, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.526, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.529, 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.530, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.531, i64 6 }, { ptr, i64 } { ptr @str.532, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.533, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.534, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.542, 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.543, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.240 + %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.240 + %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.240 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.240 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.240 + %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 81, 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.544, i64 6 }, { ptr, i64 } { ptr @str.545, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.546, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.547, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.552, 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.553, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.245 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.245 + %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.245 + %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 } @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.559, 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.554, 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.253, label %if.merge.254 + +if.then.253: ; 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.561, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.560, 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.254 + +if.merge.254: ; preds = %if.then.253, %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.566, 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.562, 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.255, label %if.merge.256 + +if.then.255: ; 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.568, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.567, 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.256 + +if.merge.256: ; preds = %if.then.255, %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.576, 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.569, 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.257: ; 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.578, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.577, 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.258 + +if.merge.258: ; preds = %if.then.257, %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.257, label %if.merge.258 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.587, 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.579, 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.259, label %if.merge.260 + +if.then.259: ; 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.589, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.588, 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.260 + +if.merge.260: ; preds = %if.then.259, %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.596, 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.590, 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.261, label %if.merge.262 + +if.then.261: ; 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.598, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.597, 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.262 + +if.merge.262: ; preds = %if.then.261, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2888,33 +6098,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.201, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.599, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.154 + br label %while.hdr.271 -while.hdr.154: ; preds = %if.merge.158, %entry +while.hdr.271: ; preds = %if.merge.275, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.155, label %while.exit.156 + br i1 %icmp, label %while.body.272, label %while.exit.273 -while.body.155: ; preds = %while.hdr.154 +while.body.272: ; preds = %while.hdr.271 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.157, label %if.merge.158 + br i1 %icmpN, label %if.then.274, label %if.merge.275 -while.exit.156: ; preds = %while.hdr.154 +while.exit.273: ; preds = %while.hdr.271 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.202, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 1 }) ret { ptr, i64 } %call -if.then.157: ; preds = %while.body.155 +if.then.274: ; preds = %while.body.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.601, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.158 + br label %if.merge.275 -if.merge.158: ; preds = %if.then.157, %while.body.155 +if.merge.275: ; preds = %if.then.274, %while.body.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2928,7 +6138,211 @@ if.merge.158: ; preds = %if.then.157, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.154 + br label %while.hdr.271 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.602, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.276 + +while.hdr.276: ; preds = %if.merge.280, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.277, label %while.exit.278 + +while.body.277: ; preds = %while.hdr.276 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.279, label %if.merge.280 + +while.exit.278: ; preds = %while.hdr.276 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 1 }) + ret { ptr, i64 } %call + +if.then.279: ; preds = %while.body.277 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.604, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.280 + +if.merge.280: ; preds = %if.then.279, %while.body.277 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.276 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.605, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.281 + +while.hdr.281: ; preds = %if.merge.285, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.282, label %while.exit.283 + +while.body.282: ; preds = %while.hdr.281 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.284, label %if.merge.285 + +while.exit.283: ; preds = %while.hdr.281 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 1 }) + ret { ptr, i64 } %call + +if.then.284: ; preds = %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.285 + +if.merge.285: ; preds = %if.then.284, %while.body.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.281 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.608, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.286 + +while.hdr.286: ; preds = %if.merge.290, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.287, label %while.exit.288 + +while.body.287: ; preds = %while.hdr.286 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.289, label %if.merge.290 + +while.exit.288: ; preds = %while.hdr.286 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.609, i64 1 }) + ret { ptr, i64 } %call + +if.then.289: ; preds = %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.290 + +if.merge.290: ; preds = %if.then.289, %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.286 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.611, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.291 + +while.hdr.291: ; preds = %if.merge.295, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.292, label %while.exit.293 + +while.body.292: ; preds = %while.hdr.291 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.294, label %if.merge.295 + +while.exit.293: ; preds = %while.hdr.291 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 1 }) + ret { ptr, i64 } %call + +if.then.294: ; preds = %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.613, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.295 + +if.merge.295: ; preds = %if.then.294, %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.291 } ; Function Attrs: nounwind @@ -2939,33 +6353,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.204, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.614, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.296 -while.hdr.159: ; preds = %if.merge.163, %entry +while.hdr.296: ; preds = %if.merge.300, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.160, label %while.exit.161 + br i1 %icmp, label %while.body.297, label %while.exit.298 -while.body.160: ; preds = %while.hdr.159 +while.body.297: ; preds = %while.hdr.296 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.162, label %if.merge.163 + br i1 %icmpN, label %if.then.299, label %if.merge.300 -while.exit.161: ; preds = %while.hdr.159 +while.exit.298: ; preds = %while.hdr.296 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 1 }) ret { ptr, i64 } %call -if.then.162: ; preds = %while.body.160 +if.then.299: ; preds = %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.206, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.163 + br label %if.merge.300 -if.merge.163: ; preds = %if.then.162, %while.body.160 +if.merge.300: ; preds = %if.then.299, %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2981,7 +6395,7 @@ if.merge.163: ; preds = %if.then.162, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.296 } ; Function Attrs: nounwind @@ -2991,35 +6405,35 @@ entry: %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.207, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.617, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.168 + br label %while.hdr.308 -while.hdr.168: ; preds = %if.merge.172, %entry +while.hdr.308: ; preds = %if.merge.312, %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.169, label %while.exit.170 + br i1 %icmp, label %while.body.309, label %while.exit.310 -while.body.169: ; preds = %while.hdr.168 +while.body.309: ; preds = %while.hdr.308 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.171, label %if.merge.172 + br i1 %icmpN, label %if.then.311, label %if.merge.312 -while.exit.170: ; preds = %while.hdr.168 +while.exit.310: ; preds = %while.hdr.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 1 }) ret { ptr, i64 } %call -if.then.171: ; preds = %while.body.169 +if.then.311: ; preds = %while.body.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.619, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.172 + br label %if.merge.312 -if.merge.172: ; preds = %if.then.171, %while.body.169 +if.merge.312: ; preds = %if.then.311, %while.body.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3035,7 +6449,167 @@ if.merge.172: ; preds = %if.then.171, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.168 + br label %while.hdr.308 +} + +; 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.620, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.313 + +while.hdr.313: ; preds = %if.merge.317, %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.314, label %while.exit.315 + +while.body.314: ; preds = %while.hdr.313 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.316, label %if.merge.317 + +while.exit.315: ; preds = %while.hdr.313 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 1 }) + ret { ptr, i64 } %call + +if.then.316: ; preds = %while.body.314 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.622, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.317 + +if.merge.317: ; preds = %if.then.316, %while.body.314 + %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.313 +} + +; 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.623, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.318 + +while.hdr.318: ; preds = %if.merge.322, %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.319, label %while.exit.320 + +while.body.319: ; preds = %while.hdr.318 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.321, label %if.merge.322 + +while.exit.320: ; preds = %while.hdr.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 1 }) + ret { ptr, i64 } %call + +if.then.321: ; preds = %while.body.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.625, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.322 + +if.merge.322: ; preds = %if.then.321, %while.body.319 + %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 76, 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.318 +} + +; 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.626, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.323 + +while.hdr.323: ; preds = %if.merge.327, %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.324, label %while.exit.325 + +while.body.324: ; preds = %while.hdr.323 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.326, label %if.merge.327 + +while.exit.325: ; preds = %while.hdr.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.627, i64 1 }) + ret { ptr, i64 } %call + +if.then.326: ; preds = %while.body.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.628, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.327 + +if.merge.327: ; preds = %if.then.326, %while.body.324 + %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 78, 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.323 } ; Function Attrs: nounwind @@ -3045,35 +6619,35 @@ entry: %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.210, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.629, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.173 + br label %while.hdr.328 -while.hdr.173: ; preds = %if.merge.177, %entry +while.hdr.328: ; preds = %if.merge.332, %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.174, label %while.exit.175 + br i1 %icmp, label %while.body.329, label %while.exit.330 -while.body.174: ; preds = %while.hdr.173 +while.body.329: ; preds = %while.hdr.328 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.176, label %if.merge.177 + br i1 %icmpN, label %if.then.331, label %if.merge.332 -while.exit.175: ; preds = %while.hdr.173 +while.exit.330: ; preds = %while.hdr.328 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.211, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.630, i64 1 }) ret { ptr, i64 } %call -if.then.176: ; preds = %while.body.174 +if.then.331: ; preds = %while.body.329 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.631, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.177 + br label %if.merge.332 -if.merge.177: ; preds = %if.then.176, %while.body.174 +if.merge.332: ; preds = %if.then.331, %while.body.329 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3089,7 +6663,7 @@ if.merge.177: ; preds = %if.then.176, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.173 + br label %while.hdr.328 } ; Function Attrs: nounwind @@ -3103,20 +6677,20 @@ entry: 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.198, label %if.else.199 + br i1 %icmp, label %if.then.366, label %if.else.367 -if.then.198: ; preds = %entry - br label %if.merge.200 +if.then.366: ; preds = %entry + br label %if.merge.368 -if.else.199: ; preds = %entry +if.else.367: ; 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.215, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.214, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.200 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.634, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.633, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.368 -if.merge.200: ; preds = %if.else.199, %if.then.198 - %bp = phi { ptr, i64 } [ { ptr @str.213, i64 4 }, %if.then.198 ], [ %callN, %if.else.199 ] +if.merge.368: ; preds = %if.else.367, %if.then.366 + %bp = phi { ptr, i64 } [ { ptr @str.632, i64 4 }, %if.then.366 ], [ %callN, %if.else.367 ] ret { ptr, i64 } %bp } @@ -3131,20 +6705,20 @@ entry: 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.214, label %if.else.215 + br i1 %icmp, label %if.then.382, label %if.else.383 -if.then.214: ; preds = %entry - br label %if.merge.216 +if.then.382: ; preds = %entry + br label %if.merge.384 -if.else.215: ; preds = %entry +if.else.383: ; 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.218, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.217, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.216 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.637, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.384 -if.merge.216: ; preds = %if.else.215, %if.then.214 - %bp = phi { ptr, i64 } [ { ptr @str.216, i64 4 }, %if.then.214 ], [ %callN, %if.else.215 ] +if.merge.384: ; preds = %if.else.383, %if.then.382 + %bp = phi { ptr, i64 } [ { ptr @str.635, i64 4 }, %if.then.382 ], [ %callN, %if.else.383 ] ret { ptr, i64 } %bp } @@ -3159,20 +6733,20 @@ entry: 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.217, label %if.else.218 + br i1 %icmp, label %if.then.385, label %if.else.386 -if.then.217: ; preds = %entry - br label %if.merge.219 +if.then.385: ; preds = %entry + br label %if.merge.387 -if.else.218: ; preds = %entry +if.else.386: ; 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.221, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.220, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.219 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.640, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.639, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.387 -if.merge.219: ; preds = %if.else.218, %if.then.217 - %bp = phi { ptr, i64 } [ { ptr @str.219, i64 4 }, %if.then.217 ], [ %callN, %if.else.218 ] +if.merge.387: ; preds = %if.else.386, %if.then.385 + %bp = phi { ptr, i64 } [ { ptr @str.638, i64 4 }, %if.then.385 ], [ %callN, %if.else.386 ] ret { ptr, i64 } %bp } @@ -3187,20 +6761,20 @@ entry: 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.220, label %if.else.221 + br i1 %icmp, label %if.then.388, label %if.else.389 -if.then.220: ; preds = %entry - br label %if.merge.222 +if.then.388: ; preds = %entry + br label %if.merge.390 -if.else.221: ; preds = %entry +if.else.389: ; 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.224, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.223, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.222 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.390 -if.merge.222: ; preds = %if.else.221, %if.then.220 - %bp = phi { ptr, i64 } [ { ptr @str.222, i64 4 }, %if.then.220 ], [ %callN, %if.else.221 ] +if.merge.390: ; preds = %if.else.389, %if.then.388 + %bp = phi { ptr, i64 } [ { ptr @str.641, i64 4 }, %if.then.388 ], [ %callN, %if.else.389 ] ret { ptr, i64 } %bp } @@ -3215,20 +6789,20 @@ entry: 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.223, label %if.else.224 + br i1 %icmp, label %if.then.391, label %if.else.392 -if.then.223: ; preds = %entry - br label %if.merge.225 +if.then.391: ; preds = %entry + br label %if.merge.393 -if.else.224: ; preds = %entry +if.else.392: ; 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.227, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.226, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.225 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.646, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.393 -if.merge.225: ; preds = %if.else.224, %if.then.223 - %bp = phi { ptr, i64 } [ { ptr @str.225, i64 4 }, %if.then.223 ], [ %callN, %if.else.224 ] +if.merge.393: ; preds = %if.else.392, %if.then.391 + %bp = phi { ptr, i64 } [ { ptr @str.644, i64 4 }, %if.then.391 ], [ %callN, %if.else.392 ] ret { ptr, i64 } %bp } @@ -3242,20 +6816,20 @@ entry: 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.226, label %if.else.227 + br i1 %icmp, label %if.then.394, label %if.else.395 -if.then.226: ; preds = %entry - br label %if.merge.228 +if.then.394: ; preds = %entry + br label %if.merge.396 -if.else.227: ; preds = %entry +if.else.395: ; 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.230, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.229, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.228 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.396 -if.merge.228: ; preds = %if.else.227, %if.then.226 - %bp = phi { ptr, i64 } [ { ptr @str.228, i64 4 }, %if.then.226 ], [ %callN, %if.else.227 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi { ptr, i64 } [ { ptr @str.647, i64 4 }, %if.then.394 ], [ %callN, %if.else.395 ] ret { ptr, i64 } %bp } @@ -3270,20 +6844,20 @@ entry: 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.229, label %if.else.230 + br i1 %icmp, label %if.then.397, label %if.else.398 -if.then.229: ; preds = %entry - br label %if.merge.231 +if.then.397: ; preds = %entry + br label %if.merge.399 -if.else.230: ; preds = %entry +if.else.398: ; 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.233, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.232, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.231 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.652, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.399 -if.merge.231: ; preds = %if.else.230, %if.then.229 - %bp = phi { ptr, i64 } [ { ptr @str.231, i64 4 }, %if.then.229 ], [ %callN, %if.else.230 ] +if.merge.399: ; preds = %if.else.398, %if.then.397 + %bp = phi { ptr, i64 } [ { ptr @str.650, i64 4 }, %if.then.397 ], [ %callN, %if.else.398 ] ret { ptr, i64 } %bp } @@ -3298,25 +6872,25 @@ entry: 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.232, label %if.else.233 + br i1 %icmp, label %if.then.400, label %if.else.401 -if.then.232: ; preds = %entry - br label %if.merge.234 +if.then.400: ; preds = %entry + br label %if.merge.402 -if.else.233: ; preds = %entry +if.else.401: ; 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.236, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.235, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.234 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.655, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.402 -if.merge.234: ; preds = %if.else.233, %if.then.232 - %bp = phi { ptr, i64 } [ { ptr @str.234, i64 4 }, %if.then.232 ], [ %callN, %if.else.233 ] +if.merge.402: ; preds = %if.else.401, %if.then.400 + %bp = phi { ptr, i64 } [ { ptr @str.653, i64 4 }, %if.then.400 ], [ %callN, %if.else.401 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3326,188 +6900,20 @@ entry: 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.235, label %if.else.236 + br i1 %icmp, label %if.then.403, label %if.else.404 -if.then.235: ; preds = %entry - br label %if.merge.237 +if.then.403: ; preds = %entry + br label %if.merge.405 -if.else.236: ; preds = %entry +if.else.404: ; 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.239, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.238, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.237 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.658, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.405 -if.merge.237: ; preds = %if.else.236, %if.then.235 - %bp = phi { ptr, i64 } [ { ptr @str.237, i64 4 }, %if.then.235 ], [ %callN, %if.else.236 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.238, label %if.else.239 - -if.then.238: ; preds = %entry - br label %if.merge.240 - -if.else.239: ; 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.242, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.241, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.240 - -if.merge.240: ; preds = %if.else.239, %if.then.238 - %bp = phi { ptr, i64 } [ { ptr @str.240, i64 4 }, %if.then.238 ], [ %callN, %if.else.239 ] - 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.241, label %if.else.242 - -if.then.241: ; preds = %entry - br label %if.merge.243 - -if.else.242: ; 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.245, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.244, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.243 - -if.merge.243: ; preds = %if.else.242, %if.then.241 - %bp = phi { ptr, i64 } [ { ptr @str.243, i64 4 }, %if.then.241 ], [ %callN, %if.else.242 ] - 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.244, label %if.else.245 - -if.then.244: ; preds = %entry - br label %if.merge.246 - -if.else.245: ; 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.248, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.247, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.246 - -if.merge.246: ; preds = %if.else.245, %if.then.244 - %bp = phi { ptr, i64 } [ { ptr @str.246, i64 4 }, %if.then.244 ], [ %callN, %if.else.245 ] - 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.247, label %if.else.248 - -if.then.247: ; preds = %entry - br label %if.merge.249 - -if.else.248: ; 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.251, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.250, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.249 - -if.merge.249: ; preds = %if.else.248, %if.then.247 - %bp = phi { ptr, i64 } [ { ptr @str.249, i64 4 }, %if.then.247 ], [ %callN, %if.else.248 ] - 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.250, label %if.else.251 - -if.then.250: ; preds = %entry - br label %if.merge.252 - -if.else.251: ; 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.254, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.253, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.252 - -if.merge.252: ; preds = %if.else.251, %if.then.250 - %bp = phi { ptr, i64 } [ { ptr @str.252, i64 4 }, %if.then.250 ], [ %callN, %if.else.251 ] - 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.253, label %if.else.254 - -if.then.253: ; preds = %entry - br label %if.merge.255 - -if.else.254: ; 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.257, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.256, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.255 - -if.merge.255: ; preds = %if.else.254, %if.then.253 - %bp = phi { ptr, i64 } [ { ptr @str.255, i64 4 }, %if.then.253 ], [ %callN, %if.else.254 ] +if.merge.405: ; preds = %if.else.404, %if.then.403 + %bp = phi { ptr, i64 } [ { ptr @str.656, i64 4 }, %if.then.403 ], [ %callN, %if.else.404 ] ret { ptr, i64 } %bp } @@ -3522,20 +6928,550 @@ entry: 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.256, label %if.else.257 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.256: ; preds = %entry - br label %if.merge.258 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.257: ; preds = %entry +if.else.407: ; 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.260, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.259, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.258 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.661, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.660, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.258: ; preds = %if.else.257, %if.then.256 - %bp = phi { ptr, i64 } [ { ptr @str.258, i64 4 }, %if.then.256 ], [ %callN, %if.else.257 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.659, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.409, label %if.else.410 + +if.then.409: ; preds = %entry + br label %if.merge.411 + +if.else.410: ; 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.664, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.663, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.411 + +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.662, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] + 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.412, label %if.else.413 + +if.then.412: ; preds = %entry + br label %if.merge.414 + +if.else.413: ; 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.667, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.666, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.414 + +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.665, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] + 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.415, label %if.else.416 + +if.then.415: ; preds = %entry + br label %if.merge.417 + +if.else.416: ; 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.670, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.669, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.417 + +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.668, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] + 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.418, label %if.else.419 + +if.then.418: ; preds = %entry + br label %if.merge.420 + +if.else.419: ; 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.673, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.672, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.420 + +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.671, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] + 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.421, label %if.else.422 + +if.then.421: ; preds = %entry + br label %if.merge.423 + +if.else.422: ; 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.676, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.675, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.423 + +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.674, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] + 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.424, label %if.else.425 + +if.then.424: ; preds = %entry + br label %if.merge.426 + +if.else.425: ; 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.679, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.678, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.426 + +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.677, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] + 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.427, label %if.else.428 + +if.then.427: ; preds = %entry + br label %if.merge.429 + +if.else.428: ; 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.682, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.681, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.429 + +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.680, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] + 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.430, label %if.else.431 + +if.then.430: ; preds = %entry + br label %if.merge.432 + +if.else.431: ; 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.685, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.684, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.432 + +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.683, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] + 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.433, label %if.else.434 + +if.then.433: ; preds = %entry + br label %if.merge.435 + +if.else.434: ; 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.688, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.687, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.435 + +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.686, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.436, label %if.else.437 + +if.then.436: ; preds = %entry + br label %if.merge.438 + +if.else.437: ; 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.691, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.690, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.438 + +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.689, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + 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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.694, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.693, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.692, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + 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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.697, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.696, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.695, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.700, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.699, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.698, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + 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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.703, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.702, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.701, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.706, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.705, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.704, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.709, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.708, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.707, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.712, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.711, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.710, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + 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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.715, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.714, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.713, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.718, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.717, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.716, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] ret { ptr, i64 } %bp } @@ -3550,20 +7486,20 @@ entry: 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.259, label %if.else.260 + br i1 %icmp, label %if.then.466, label %if.else.467 -if.then.259: ; preds = %entry - br label %if.merge.261 +if.then.466: ; preds = %entry + br label %if.merge.468 -if.else.260: ; preds = %entry +if.else.467: ; 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.263, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.262, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.261 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.721, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.720, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.468 -if.merge.261: ; preds = %if.else.260, %if.then.259 - %bp = phi { ptr, i64 } [ { ptr @str.261, i64 4 }, %if.then.259 ], [ %callN, %if.else.260 ] +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.719, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] ret { ptr, i64 } %bp } @@ -3578,19 +7514,115 @@ entry: 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.262, label %if.else.263 + br i1 %icmp, label %if.then.469, label %if.else.470 -if.then.262: ; preds = %entry - br label %if.merge.264 +if.then.469: ; preds = %entry + br label %if.merge.471 -if.else.263: ; preds = %entry +if.else.470: ; 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.266, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.265, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.264 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.723, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.471 -if.merge.264: ; preds = %if.else.263, %if.then.262 - %bp = phi { ptr, i64 } [ { ptr @str.264, i64 4 }, %if.then.262 ], [ %callN, %if.else.263 ] +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.722, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] 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.478, label %if.merge.479 + +if.then.478: ; preds = %entry + ret { ptr, i64 } { ptr @str.725, i64 4 } + +if.merge.479: ; 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 39, 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.480, label %if.merge.481 + +if.then.480: ; preds = %entry + ret { ptr, i64 } { ptr @str.726, i64 4 } + +if.merge.481: ; 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_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.482, label %if.merge.483 + +if.then.482: ; preds = %entry + ret { ptr, i64 } { ptr @str.727, i64 4 } + +if.merge.483: ; 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 45, 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.484, label %if.merge.485 + +if.then.484: ; preds = %entry + ret { ptr, i64 } { ptr @str.728, i64 4 } + +if.merge.485: ; 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 88, 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/0528-packs-protocol-pack-methods.ir b/examples/expected/0528-packs-protocol-pack-methods.ir index 81b4d3f..aa59c7d 100644 --- a/examples/expected/0528-packs-protocol-pack-methods.ir +++ b/examples/expected/0528-packs-protocol-pack-methods.ir @@ -1,317 +1,677 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [86 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [176 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [8 x i8] c"Greeter\00" -@tn.str.64 = private constant [18 x i8] c"__Greeter__Vtable\00" -@tn.str.65 = private constant [4 x i8] c"Dog\00" -@tn.str.66 = private constant [4 x i8] c"Cat\00" -@tn.str.67 = private constant [5 x i8] c"*Dog\00" -@tn.str.68 = private constant [5 x i8] c"*Cat\00" -@tn.str.69 = private constant [10 x i8] c"[]Greeter\00" -@tn.str.70 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.71 = private constant [5 x i8] c"*s64\00" -@tn.str.72 = private constant [7 x i8] c"**void\00" -@tn.str.73 = private constant [6 x i8] c"[]Any\00" -@tn.str.74 = private constant [5 x i8] c"*Any\00" -@tn.str.75 = private constant [7 x i8] c"[2]Any\00" -@tn.str.76 = private constant [8 x i8] c"*[2]Any\00" -@tn.str.77 = private constant [7 x i8] c"*[]Any\00" -@tn.str.78 = private constant [6 x i8] c"**Dog\00" -@tn.str.79 = private constant [6 x i8] c"**Cat\00" -@tn.str.80 = private constant [8 x i8] c"*string\00" -@tn.str.81 = private constant [7 x i8] c"[1]Any\00" -@tn.str.82 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.83 = private constant [4 x i8] c"*u8\00" -@tn.str.84 = private constant [6 x i8] c"*bool\00" -@tn.str.85 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.86 = private constant [5 x i8] c"*f64\00" -@tn.str.87 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.88 = private constant [11 x i8] c"*Allocator\00" -@tn.str.89 = private constant [9 x i8] c"*Context\00" -@tn.str.90 = private constant [9 x i8] c"*Greeter\00" -@tn.str.91 = private constant [19 x i8] c"*__Greeter__Vtable\00" -@tn.str.92 = private constant [10 x i8] c"*[]string\00" -@tn.str.93 = private constant [11 x i8] c"*[]Greeter\00" -@tn.str.94 = private constant [6 x i8] c"**GPA\00" -@tn.str.95 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.96 = private constant [8 x i8] c"**Arena\00" -@tn.str.97 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.98 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.99 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.100 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.101 = private constant [6 x i8] c"**s64\00" -@tn.str.102 = private constant [8 x i8] c"***void\00" -@tn.str.103 = private constant [6 x i8] c"**Any\00" -@tn.str.104 = private constant [9 x i8] c"**[2]Any\00" -@tn.str.105 = private constant [8 x i8] c"**[]Any\00" -@tn.str.106 = private constant [7 x i8] c"***Dog\00" -@tn.str.107 = private constant [7 x i8] c"***Cat\00" -@tn.str.108 = private constant [9 x i8] c"**string\00" -@tn.str.109 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.110 = private constant [5 x i8] c"**u8\00" -@tn.str.111 = private constant [7 x i8] c"**bool\00" -@__sx_type_names = private constant [86 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 7 }, { ptr, i64 } { ptr @tn.str.64, i64 17 }, { ptr, i64 } { ptr @tn.str.65, i64 3 }, { ptr, i64 } { ptr @tn.str.66, i64 3 }, { ptr, i64 } { ptr @tn.str.67, i64 4 }, { ptr, i64 } { ptr @tn.str.68, i64 4 }, { ptr, i64 } { ptr @tn.str.69, i64 9 }, { ptr, i64 } { ptr @tn.str.70, i64 12 }, { ptr, i64 } { ptr @tn.str.71, i64 4 }, { ptr, i64 } { ptr @tn.str.72, i64 6 }, { ptr, i64 } { ptr @tn.str.73, i64 5 }, { ptr, i64 } { ptr @tn.str.74, i64 4 }, { ptr, i64 } { ptr @tn.str.75, i64 6 }, { ptr, i64 } { ptr @tn.str.76, i64 7 }, { ptr, i64 } { ptr @tn.str.77, i64 6 }, { ptr, i64 } { ptr @tn.str.78, i64 5 }, { ptr, i64 } { ptr @tn.str.79, i64 5 }, { ptr, i64 } { ptr @tn.str.80, i64 7 }, { ptr, i64 } { ptr @tn.str.81, i64 6 }, { ptr, i64 } { ptr @tn.str.82, i64 7 }, { ptr, i64 } { ptr @tn.str.83, i64 3 }, { ptr, i64 } { ptr @tn.str.84, i64 5 }, { ptr, i64 } { ptr @tn.str.85, i64 7 }, { ptr, i64 } { ptr @tn.str.86, i64 4 }, { ptr, i64 } { ptr @tn.str.87, i64 16 }, { ptr, i64 } { ptr @tn.str.88, i64 10 }, { ptr, i64 } { ptr @tn.str.89, i64 8 }, { ptr, i64 } { ptr @tn.str.90, i64 8 }, { ptr, i64 } { ptr @tn.str.91, i64 18 }, { ptr, i64 } { ptr @tn.str.92, i64 9 }, { ptr, i64 } { ptr @tn.str.93, i64 10 }, { ptr, i64 } { ptr @tn.str.94, i64 5 }, { ptr, i64 } { ptr @tn.str.95, i64 12 }, { ptr, i64 } { ptr @tn.str.96, i64 7 }, { ptr, i64 } { ptr @tn.str.97, i64 6 }, { ptr, i64 } { ptr @tn.str.98, i64 10 }, { ptr, i64 } { ptr @tn.str.99, i64 19 }, { ptr, i64 } { ptr @tn.str.100, i64 13 }, { ptr, i64 } { ptr @tn.str.101, i64 5 }, { ptr, i64 } { ptr @tn.str.102, i64 7 }, { ptr, i64 } { ptr @tn.str.103, i64 5 }, { ptr, i64 } { ptr @tn.str.104, i64 8 }, { ptr, i64 } { ptr @tn.str.105, i64 7 }, { ptr, i64 } { ptr @tn.str.106, i64 6 }, { ptr, i64 } { ptr @tn.str.107, i64 6 }, { ptr, i64 } { ptr @tn.str.108, i64 8 }, { ptr, i64 } { ptr @tn.str.109, i64 8 }, { ptr, i64 } { ptr @tn.str.110, i64 4 }, { ptr, i64 } { ptr @tn.str.111, i64 6 }] -@str.112 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.113 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.114 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.115 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.116 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.120 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.121 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.122 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.123 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.124 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.125 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.126 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.127 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.128 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.129 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.130 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.131 = private unnamed_addr constant [12 x i8] c"dog+cat={}\0A\00", align 1 -@str.132 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.133 = private unnamed_addr constant [12 x i8] c"dog+cat={}\0A\00", align 1 -@str.134 = private unnamed_addr constant [12 x i8] c"cat+dog={}\0A\00", align 1 -@str.135 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.136 = private unnamed_addr constant [12 x i8] c"cat+dog={}\0A\00", align 1 -@str.137 = private unnamed_addr constant [12 x i8] c"dog+dog={}\0A\00", align 1 -@str.138 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.139 = private unnamed_addr constant [12 x i8] c"dog+dog={}\0A\00", align 1 -@str.140 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.141 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.142 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.143 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [8 x i8] c"Greeter\00" +@tn.str.237 = private constant [18 x i8] c"__Greeter__Vtable\00" +@tn.str.238 = private constant [4 x i8] c"Dog\00" +@tn.str.239 = private constant [4 x i8] c"Cat\00" +@tn.str.240 = private constant [5 x i8] c"*Dog\00" +@tn.str.241 = private constant [5 x i8] c"*Cat\00" +@tn.str.242 = private constant [10 x i8] c"[]Greeter\00" +@tn.str.243 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.244 = private constant [7 x i8] c"**void\00" +@tn.str.245 = private constant [6 x i8] c"[]Any\00" +@tn.str.246 = private constant [5 x i8] c"*Any\00" +@tn.str.247 = private constant [7 x i8] c"[2]Any\00" +@tn.str.248 = private constant [8 x i8] c"*[2]Any\00" +@tn.str.249 = private constant [7 x i8] c"*[]Any\00" +@tn.str.250 = private constant [6 x i8] c"**Dog\00" +@tn.str.251 = private constant [6 x i8] c"**Cat\00" +@tn.str.252 = private constant [8 x i8] c"*string\00" +@tn.str.253 = private constant [7 x i8] c"[1]Any\00" +@tn.str.254 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.255 = private constant [6 x i8] c"*bool\00" +@tn.str.256 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.257 = private constant [5 x i8] c"*f64\00" +@tn.str.258 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.259 = private constant [11 x i8] c"*Allocator\00" +@tn.str.260 = private constant [9 x i8] c"*Context\00" +@tn.str.261 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.262 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.263 = private constant [8 x i8] c"*Member\00" +@tn.str.264 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.265 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.266 = private constant [9 x i8] c"*Command\00" +@tn.str.267 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.268 = private constant [9 x i8] c"*Greeter\00" +@tn.str.269 = private constant [19 x i8] c"*__Greeter__Vtable\00" +@tn.str.270 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.271 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.272 = private constant [7 x i8] c"*Value\00" +@tn.str.273 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.274 = private constant [14 x i8] c"*Architecture\00" +@tn.str.275 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.276 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.277 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.278 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.279 = private constant [10 x i8] c"*[]string\00" +@tn.str.280 = private constant [6 x i8] c"*[]u8\00" +@tn.str.281 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.282 = private constant [11 x i8] c"*[]Command\00" +@tn.str.283 = private constant [11 x i8] c"*[]Greeter\00" +@tn.str.284 = private constant [6 x i8] c"**GPA\00" +@tn.str.285 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.286 = private constant [8 x i8] c"**Arena\00" +@tn.str.287 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.288 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.289 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.290 = private constant [7 x i8] c"**File\00" +@tn.str.291 = private constant [5 x i8] c"**u8\00" +@tn.str.292 = private constant [6 x i8] c"**s32\00" +@tn.str.293 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.294 = private constant [6 x i8] c"**u32\00" +@tn.str.295 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.296 = private constant [8 x i8] c"**Array\00" +@tn.str.297 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.298 = private constant [9 x i8] c"**Object\00" +@tn.str.299 = private constant [7 x i8] c"**Sink\00" +@tn.str.300 = private constant [9 x i8] c"**Parser\00" +@tn.str.301 = private constant [6 x i8] c"**s64\00" +@tn.str.302 = private constant [9 x i8] c"**Parsed\00" +@tn.str.303 = private constant [7 x i8] c"**Diag\00" +@tn.str.304 = private constant [9 x i8] c"**Sha256\00" +@tn.str.305 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.306 = private constant [8 x i8] c"***void\00" +@tn.str.307 = private constant [6 x i8] c"**Any\00" +@tn.str.308 = private constant [9 x i8] c"**[2]Any\00" +@tn.str.309 = private constant [8 x i8] c"**[]Any\00" +@tn.str.310 = private constant [7 x i8] c"***Dog\00" +@tn.str.311 = private constant [7 x i8] c"***Cat\00" +@tn.str.312 = private constant [9 x i8] c"**string\00" +@tn.str.313 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.314 = private constant [7 x i8] c"**bool\00" +@tn.str.315 = private constant [7 x i8] c"*?File\00" +@tn.str.316 = private constant [9 x i8] c"*?string\00" +@tn.str.317 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.318 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [176 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 7 }, { ptr, i64 } { ptr @tn.str.237, i64 17 }, { ptr, i64 } { ptr @tn.str.238, i64 3 }, { ptr, i64 } { ptr @tn.str.239, i64 3 }, { ptr, i64 } { ptr @tn.str.240, i64 4 }, { ptr, i64 } { ptr @tn.str.241, i64 4 }, { ptr, i64 } { ptr @tn.str.242, i64 9 }, { ptr, i64 } { ptr @tn.str.243, i64 12 }, { ptr, i64 } { ptr @tn.str.244, i64 6 }, { ptr, i64 } { ptr @tn.str.245, i64 5 }, { ptr, i64 } { ptr @tn.str.246, i64 4 }, { ptr, i64 } { ptr @tn.str.247, i64 6 }, { ptr, i64 } { ptr @tn.str.248, i64 7 }, { ptr, i64 } { ptr @tn.str.249, i64 6 }, { ptr, i64 } { ptr @tn.str.250, i64 5 }, { ptr, i64 } { ptr @tn.str.251, i64 5 }, { ptr, i64 } { ptr @tn.str.252, i64 7 }, { ptr, i64 } { ptr @tn.str.253, i64 6 }, { ptr, i64 } { ptr @tn.str.254, i64 7 }, { ptr, i64 } { ptr @tn.str.255, i64 5 }, { ptr, i64 } { ptr @tn.str.256, i64 7 }, { ptr, i64 } { ptr @tn.str.257, i64 4 }, { ptr, i64 } { ptr @tn.str.258, i64 16 }, { ptr, i64 } { ptr @tn.str.259, i64 10 }, { ptr, i64 } { ptr @tn.str.260, i64 8 }, { ptr, i64 } { ptr @tn.str.261, i64 11 }, { ptr, i64 } { ptr @tn.str.262, i64 14 }, { ptr, i64 } { ptr @tn.str.263, i64 7 }, { ptr, i64 } { ptr @tn.str.264, i64 13 }, { ptr, i64 } { ptr @tn.str.265, i64 9 }, { ptr, i64 } { ptr @tn.str.266, i64 8 }, { ptr, i64 } { ptr @tn.str.267, i64 10 }, { ptr, i64 } { ptr @tn.str.268, i64 8 }, { ptr, i64 } { ptr @tn.str.269, i64 18 }, { ptr, i64 } { ptr @tn.str.270, i64 9 }, { ptr, i64 } { ptr @tn.str.271, i64 9 }, { ptr, i64 } { ptr @tn.str.272, i64 6 }, { ptr, i64 } { ptr @tn.str.273, i64 16 }, { ptr, i64 } { ptr @tn.str.274, i64 13 }, { ptr, i64 } { ptr @tn.str.275, i64 14 }, { ptr, i64 } { ptr @tn.str.276, i64 7 }, { ptr, i64 } { ptr @tn.str.277, i64 7 }, { ptr, i64 } { ptr @tn.str.278, i64 8 }, { ptr, i64 } { ptr @tn.str.279, i64 9 }, { ptr, i64 } { ptr @tn.str.280, i64 5 }, { ptr, i64 } { ptr @tn.str.281, i64 11 }, { ptr, i64 } { ptr @tn.str.282, i64 10 }, { ptr, i64 } { ptr @tn.str.283, i64 10 }, { ptr, i64 } { ptr @tn.str.284, i64 5 }, { ptr, i64 } { ptr @tn.str.285, i64 12 }, { ptr, i64 } { ptr @tn.str.286, i64 7 }, { ptr, i64 } { ptr @tn.str.287, i64 6 }, { ptr, i64 } { ptr @tn.str.288, i64 10 }, { ptr, i64 } { ptr @tn.str.289, i64 19 }, { ptr, i64 } { ptr @tn.str.290, i64 6 }, { ptr, i64 } { ptr @tn.str.291, i64 4 }, { ptr, i64 } { ptr @tn.str.292, i64 5 }, { ptr, i64 } { ptr @tn.str.293, i64 10 }, { ptr, i64 } { ptr @tn.str.294, i64 5 }, { ptr, i64 } { ptr @tn.str.295, i64 9 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 10 }, { ptr, i64 } { ptr @tn.str.298, i64 8 }, { ptr, i64 } { ptr @tn.str.299, i64 6 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 5 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }, { ptr, i64 } { ptr @tn.str.303, i64 6 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }, { ptr, i64 } { ptr @tn.str.305, i64 13 }, { ptr, i64 } { ptr @tn.str.306, i64 7 }, { ptr, i64 } { ptr @tn.str.307, i64 5 }, { ptr, i64 } { ptr @tn.str.308, i64 8 }, { ptr, i64 } { ptr @tn.str.309, i64 7 }, { ptr, i64 } { ptr @tn.str.310, i64 6 }, { ptr, i64 } { ptr @tn.str.311, i64 6 }, { ptr, i64 } { ptr @tn.str.312, i64 8 }, { ptr, i64 } { ptr @tn.str.313, i64 8 }, { ptr, i64 } { ptr @tn.str.314, i64 6 }, { ptr, i64 } { ptr @tn.str.315, i64 6 }, { ptr, i64 } { ptr @tn.str.316, i64 8 }, { ptr, i64 } { ptr @tn.str.317, i64 15 }, { ptr, i64 } { ptr @tn.str.318, i64 8 }] +@str.319 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.320 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.321 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.322 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.323 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.324 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.325 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.326 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.327 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.328 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.329 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.330 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.331 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.332 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.333 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.334 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.335 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.336 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.337 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.338 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.339 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.340 = private unnamed_addr constant [12 x i8] c"dog+cat={}\0A\00", align 1 +@str.341 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.342 = private unnamed_addr constant [12 x i8] c"dog+cat={}\0A\00", align 1 +@str.343 = private unnamed_addr constant [12 x i8] c"cat+dog={}\0A\00", align 1 +@str.344 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.345 = private unnamed_addr constant [12 x i8] c"cat+dog={}\0A\00", align 1 +@str.346 = private unnamed_addr constant [12 x i8] c"dog+dog={}\0A\00", align 1 +@str.347 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.348 = private unnamed_addr constant [12 x i8] c"dog+dog={}\0A\00", align 1 +@str.349 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.350 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.352 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.144 = private constant [5 x i8] c"line\00" -@fld.str.145 = private constant [4 x i8] c"col\00" -@fld.str.146 = 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.144, i64 4 }, { ptr, i64 } { ptr @fld.str.145, i64 3 }, { ptr, i64 } { ptr @fld.str.146, i64 4 }] -@str.147 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.148 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.149 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.151 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.152 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.153 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.154 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.155 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.156 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.157 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.158 = private constant [12 x i8] c"alloc_count\00" -@field_names.159 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.158, i64 11 }] -@str.160 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.161 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.162 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.163 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.165 = private constant [5 x i8] c"next\00" -@fld.str.166 = private constant [4 x i8] c"cap\00" -@field_names.167 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.165, i64 4 }, { ptr, i64 } { ptr @fld.str.166, i64 3 }] -@str.168 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.169 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.170 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.171 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.172 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.173 = private constant [4 x i8] c"ctx\00" -@fld.str.174 = private constant [6 x i8] c"alloc\00" -@fld.str.175 = private constant [8 x i8] c"dealloc\00" -@field_names.176 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.173, i64 3 }, { ptr, i64 } { ptr @fld.str.174, i64 5 }, { ptr, i64 } { ptr @fld.str.175, i64 7 }] -@str.177 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.178 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.179 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.180 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.181 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.182 = private constant [6 x i8] c"first\00" -@fld.str.183 = private constant [10 x i8] c"end_index\00" -@fld.str.184 = private constant [7 x i8] c"parent\00" -@field_names.185 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.182, i64 5 }, { ptr, i64 } { ptr @fld.str.183, i64 9 }, { ptr, i64 } { ptr @fld.str.184, i64 6 }] -@str.186 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.187 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.188 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.189 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.190 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.191 = private constant [4 x i8] c"buf\00" -@fld.str.192 = private constant [4 x i8] c"len\00" -@fld.str.193 = private constant [4 x i8] c"pos\00" -@field_names.194 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.191, i64 3 }, { ptr, i64 } { ptr @fld.str.192, i64 3 }, { ptr, i64 } { ptr @fld.str.193, i64 3 }] -@str.195 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.196 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.197 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.198 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.199 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.200 = private constant [7 x i8] c"parent\00" -@fld.str.201 = private constant [12 x i8] c"alloc_count\00" -@fld.str.202 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.203 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.204 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.200, i64 6 }, { ptr, i64 } { ptr @fld.str.201, i64 11 }, { ptr, i64 } { ptr @fld.str.202, i64 13 }, { ptr, i64 } { ptr @fld.str.203, i64 17 }] -@str.205 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.206 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.207 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.209 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.210 = private constant [10 x i8] c"allocator\00" -@fld.str.211 = private constant [5 x i8] c"data\00" -@field_names.212 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.210, i64 9 }, { ptr, i64 } { ptr @fld.str.211, i64 4 }] -@str.213 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.214 = private unnamed_addr constant [8 x i8] c"Greeter\00", align 1 -@str.215 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.216 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.217 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.218 = private constant [4 x i8] c"ctx\00" -@fld.str.219 = private constant [9 x i8] c"__vtable\00" -@field_names.220 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.218, i64 3 }, { ptr, i64 } { ptr @fld.str.219, i64 8 }] -@str.221 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.222 = private unnamed_addr constant [18 x i8] c"__Greeter__Vtable\00", align 1 -@str.223 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.224 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.225 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.226 = private constant [6 x i8] c"greet\00" -@field_names.227 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.226, i64 5 }] -@str.228 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.229 = private unnamed_addr constant [4 x i8] c"Dog\00", align 1 -@str.230 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.231 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.232 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.233 = private constant [4 x i8] c"age\00" -@field_names.234 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.233, i64 3 }] -@str.235 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.236 = private unnamed_addr constant [4 x i8] c"Cat\00", align 1 -@str.237 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.238 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.239 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.240 = private constant [6 x i8] c"lives\00" -@field_names.241 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.240, i64 5 }] -@str.242 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.243 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.244 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.245 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.246 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.247 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.248 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.249 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.250 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.251 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.252 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.253 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.254 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.255 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.256 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.257 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.258 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.259 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.260 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.261 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.262 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.263 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.264 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.265 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.266 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.267 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.268 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.269 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.270 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.271 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.272 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.273 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.274 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.275 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.276 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.277 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.278 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.279 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.280 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.281 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.282 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.283 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.284 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.285 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.286 = private unnamed_addr constant [5 x i8] c"*Dog\00", align 1 -@str.287 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.288 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.289 = private unnamed_addr constant [5 x i8] c"*Cat\00", align 1 -@str.290 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.291 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.292 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.293 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.294 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.295 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.296 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.297 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.298 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.299 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.300 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.301 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.302 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.303 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.304 = private unnamed_addr constant [8 x i8] c"*[2]Any\00", align 1 -@str.305 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.306 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.307 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.308 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.309 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.310 = private unnamed_addr constant [6 x i8] c"**Dog\00", align 1 -@str.311 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.312 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.313 = private unnamed_addr constant [6 x i8] c"**Cat\00", align 1 -@str.314 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.315 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.316 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.317 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.318 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.319 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.320 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.321 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.322 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.323 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.324 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.325 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.326 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.353 = private constant [5 x i8] c"line\00" +@fld.str.354 = private constant [4 x i8] c"col\00" +@fld.str.355 = 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.353, i64 4 }, { ptr, i64 } { ptr @fld.str.354, i64 3 }, { ptr, i64 } { ptr @fld.str.355, i64 4 }] +@str.356 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.357 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.358 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.360 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.361 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.362 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.363 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.364 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.365 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.366 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.367 = private constant [12 x i8] c"alloc_count\00" +@field_names.368 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.367, i64 11 }] +@str.369 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.370 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.371 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.372 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.373 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.374 = private constant [5 x i8] c"next\00" +@fld.str.375 = private constant [4 x i8] c"cap\00" +@field_names.376 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.374, i64 4 }, { ptr, i64 } { ptr @fld.str.375, i64 3 }] +@str.377 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.378 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.379 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.380 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.381 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.382 = private constant [4 x i8] c"ctx\00" +@fld.str.383 = private constant [6 x i8] c"alloc\00" +@fld.str.384 = private constant [8 x i8] c"dealloc\00" +@field_names.385 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.382, i64 3 }, { ptr, i64 } { ptr @fld.str.383, i64 5 }, { ptr, i64 } { ptr @fld.str.384, i64 7 }] +@str.386 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.387 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.388 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.389 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.390 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.391 = private constant [6 x i8] c"first\00" +@fld.str.392 = private constant [10 x i8] c"end_index\00" +@fld.str.393 = private constant [7 x i8] c"parent\00" +@field_names.394 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.391, i64 5 }, { ptr, i64 } { ptr @fld.str.392, i64 9 }, { ptr, i64 } { ptr @fld.str.393, i64 6 }] +@str.395 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.396 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.397 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.398 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.399 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.400 = private constant [4 x i8] c"buf\00" +@fld.str.401 = private constant [4 x i8] c"len\00" +@fld.str.402 = private constant [4 x i8] c"pos\00" +@field_names.403 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.400, i64 3 }, { ptr, i64 } { ptr @fld.str.401, i64 3 }, { ptr, i64 } { ptr @fld.str.402, i64 3 }] +@str.404 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.405 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.406 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.407 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.408 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.409 = private constant [7 x i8] c"parent\00" +@fld.str.410 = private constant [12 x i8] c"alloc_count\00" +@fld.str.411 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.412 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.413 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.409, i64 6 }, { ptr, i64 } { ptr @fld.str.410, i64 11 }, { ptr, i64 } { ptr @fld.str.411, i64 13 }, { ptr, i64 } { ptr @fld.str.412, i64 17 }] +@str.414 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.415 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.416 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.417 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.418 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.419 = private constant [10 x i8] c"allocator\00" +@fld.str.420 = private constant [5 x i8] c"data\00" +@field_names.421 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.419, i64 9 }, { ptr, i64 } { ptr @fld.str.420, i64 4 }] +@str.422 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.423 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.424 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.425 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.426 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.427 = private constant [3 x i8] c"fd\00" +@field_names.428 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.427, i64 2 }] +@str.429 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.430 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.431 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.432 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.433 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.434 = private constant [5 x i8] c"file\00" +@fld.str.435 = private constant [5 x i8] c"line\00" +@fld.str.436 = private constant [4 x i8] c"col\00" +@fld.str.437 = private constant [5 x i8] c"func\00" +@fld.str.438 = private constant [10 x i8] c"line_text\00" +@field_names.439 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.434, i64 4 }, { ptr, i64 } { ptr @fld.str.435, i64 4 }, { ptr, i64 } { ptr @fld.str.436, i64 3 }, { ptr, i64 } { ptr @fld.str.437, i64 4 }, { ptr, i64 } { ptr @fld.str.438, i64 9 }] +@str.440 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.441 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.442 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.443 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.444 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.445 = private constant [10 x i8] c"exit_code\00" +@fld.str.446 = private constant [7 x i8] c"stdout\00" +@field_names.447 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.445, i64 9 }, { ptr, i64 } { ptr @fld.str.446, i64 6 }] +@str.448 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.449 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.450 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.451 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.452 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.453 = private constant [8 x i8] c"sin_len\00" +@fld.str.454 = private constant [11 x i8] c"sin_family\00" +@fld.str.455 = private constant [9 x i8] c"sin_port\00" +@fld.str.456 = private constant [9 x i8] c"sin_addr\00" +@fld.str.457 = private constant [9 x i8] c"sin_zero\00" +@field_names.458 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.453, i64 7 }, { ptr, i64 } { ptr @fld.str.454, i64 10 }, { ptr, i64 } { ptr @fld.str.455, i64 8 }, { ptr, i64 } { ptr @fld.str.456, i64 8 }, { ptr, i64 } { ptr @fld.str.457, i64 8 }] +@str.459 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.460 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.461 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.462 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.463 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.464 = private constant [6 x i8] c"items\00" +@fld.str.465 = private constant [4 x i8] c"len\00" +@fld.str.466 = private constant [4 x i8] c"cap\00" +@field_names.467 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.464, i64 5 }, { ptr, i64 } { ptr @fld.str.465, i64 3 }, { ptr, i64 } { ptr @fld.str.466, i64 3 }] +@str.468 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.469 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.470 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.471 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.472 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.473 = private constant [6 x i8] c"items\00" +@fld.str.474 = private constant [4 x i8] c"len\00" +@fld.str.475 = private constant [4 x i8] c"cap\00" +@field_names.476 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.473, i64 5 }, { ptr, i64 } { ptr @fld.str.474, i64 3 }, { ptr, i64 } { ptr @fld.str.475, i64 3 }] +@str.477 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.478 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.479 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.480 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.481 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.482 = private constant [4 x i8] c"key\00" +@fld.str.483 = private constant [4 x i8] c"val\00" +@field_names.484 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.482, i64 3 }, { ptr, i64 } { ptr @fld.str.483, i64 3 }] +@str.485 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.486 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.487 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.488 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.489 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.490 = private constant [4 x i8] c"dst\00" +@fld.str.491 = private constant [4 x i8] c"pos\00" +@fld.str.492 = private constant [5 x i8] c"file\00" +@field_names.493 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.490, i64 3 }, { ptr, i64 } { ptr @fld.str.491, i64 3 }, { ptr, i64 } { ptr @fld.str.492, i64 4 }] +@str.494 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.495 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.496 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.497 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.498 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.499 = private constant [4 x i8] c"src\00" +@fld.str.500 = private constant [4 x i8] c"pos\00" +@fld.str.501 = private constant [6 x i8] c"alloc\00" +@field_names.502 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.499, i64 3 }, { ptr, i64 } { ptr @fld.str.500, i64 3 }, { ptr, i64 } { ptr @fld.str.501, i64 5 }] +@str.503 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.504 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.505 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.506 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.507 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.508 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.509 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.510 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.511 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.512 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.513 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.514 = private constant [5 x i8] c"name\00" +@fld.str.515 = private constant [12 x i8] c"takes_value\00" +@fld.str.516 = private constant [9 x i8] c"required\00" +@field_names.517 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.514, i64 4 }, { ptr, i64 } { ptr @fld.str.515, i64 11 }, { ptr, i64 } { ptr @fld.str.516, i64 8 }] +@str.518 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.519 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.520 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.521 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.522 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.523 = private constant [6 x i8] c"group\00" +@fld.str.524 = private constant [8 x i8] c"command\00" +@fld.str.525 = private constant [6 x i8] c"flags\00" +@field_names.526 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.523, i64 5 }, { ptr, i64 } { ptr @fld.str.524, i64 7 }, { ptr, i64 } { ptr @fld.str.525, i64 5 }] +@str.527 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.528 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.529 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.530 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.531 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.532 = private constant [4 x i8] c"set\00" +@fld.str.533 = private constant [6 x i8] c"value\00" +@field_names.534 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.532, i64 3 }, { ptr, i64 } { ptr @fld.str.533, i64 5 }] +@str.535 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.536 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.537 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.538 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.539 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.540 = private constant [6 x i8] c"index\00" +@fld.str.541 = private constant [6 x i8] c"token\00" +@field_names.542 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.540, i64 5 }, { ptr, i64 } { ptr @fld.str.541, i64 5 }] +@str.543 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.544 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.545 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.546 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.547 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.548 = private constant [6 x i8] c"group\00" +@fld.str.549 = private constant [8 x i8] c"command\00" +@fld.str.550 = private constant [10 x i8] c"cmd_index\00" +@fld.str.551 = private constant [5 x i8] c"json\00" +@fld.str.552 = private constant [5 x i8] c"rest\00" +@fld.str.553 = private constant [5 x i8] c"spec\00" +@fld.str.554 = private constant [7 x i8] c"values\00" +@field_names.555 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.548, i64 5 }, { ptr, i64 } { ptr @fld.str.549, i64 7 }, { ptr, i64 } { ptr @fld.str.550, i64 9 }, { ptr, i64 } { ptr @fld.str.551, i64 4 }, { ptr, i64 } { ptr @fld.str.552, i64 4 }, { ptr, i64 } { ptr @fld.str.553, i64 4 }, { ptr, i64 } { ptr @fld.str.554, i64 6 }] +@str.556 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.557 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.558 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.559 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.560 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.561 = private constant [2 x i8] c"h\00" +@fld.str.562 = private constant [4 x i8] c"buf\00" +@fld.str.563 = private constant [8 x i8] c"buf_len\00" +@fld.str.564 = private constant [10 x i8] c"total_len\00" +@field_names.565 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.561, i64 1 }, { ptr, i64 } { ptr @fld.str.562, i64 3 }, { ptr, i64 } { ptr @fld.str.563, i64 7 }, { ptr, i64 } { ptr @fld.str.564, i64 9 }] +@str.566 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.567 = private unnamed_addr constant [8 x i8] c"Greeter\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.570 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.571 = private constant [4 x i8] c"ctx\00" +@fld.str.572 = private constant [9 x i8] c"__vtable\00" +@field_names.573 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.571, i64 3 }, { ptr, i64 } { ptr @fld.str.572, i64 8 }] +@str.574 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.575 = private unnamed_addr constant [18 x i8] c"__Greeter__Vtable\00", align 1 +@str.576 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.577 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.578 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.579 = private constant [6 x i8] c"greet\00" +@field_names.580 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.579, i64 5 }] +@str.581 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.582 = private unnamed_addr constant [4 x i8] c"Dog\00", align 1 +@str.583 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.584 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.585 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.586 = private constant [4 x i8] c"age\00" +@field_names.587 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.586, i64 3 }] +@str.588 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.589 = private unnamed_addr constant [4 x i8] c"Cat\00", align 1 +@str.590 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.591 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.592 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.593 = private constant [6 x i8] c"lives\00" +@field_names.594 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.593, i64 5 }] +@str.595 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.596 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.597 = private constant [5 x i8] c"read\00" +@fld.str.598 = private constant [6 x i8] c"write\00" +@fld.str.599 = private constant [7 x i8] c"append\00" +@fld.str.600 = private constant [11 x i8] c"read_write\00" +@field_names.601 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.597, i64 4 }, { ptr, i64 } { ptr @fld.str.598, i64 5 }, { ptr, i64 } { ptr @fld.str.599, i64 6 }, { ptr, i64 } { ptr @fld.str.600, i64 10 }] +@str.602 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.603 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.604 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.605 = private constant [4 x i8] c"set\00" +@fld.str.606 = private constant [8 x i8] c"current\00" +@fld.str.607 = private constant [4 x i8] c"end\00" +@field_names.608 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.605, i64 3 }, { ptr, i64 } { ptr @fld.str.606, i64 7 }, { ptr, i64 } { ptr @fld.str.607, i64 3 }] +@str.609 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.612 = private constant [6 x i8] c"null_\00" +@fld.str.613 = private constant [6 x i8] c"bool_\00" +@fld.str.614 = private constant [5 x i8] c"int_\00" +@fld.str.615 = private constant [4 x i8] c"str\00" +@fld.str.616 = private constant [6 x i8] c"array\00" +@fld.str.617 = private constant [7 x i8] c"object\00" +@field_names.618 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.612, i64 5 }, { ptr, i64 } { ptr @fld.str.613, i64 5 }, { ptr, i64 } { ptr @fld.str.614, i64 4 }, { ptr, i64 } { ptr @fld.str.615, i64 3 }, { ptr, i64 } { ptr @fld.str.616, i64 5 }, { ptr, i64 } { ptr @fld.str.617, i64 6 }] +@str.619 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.622 = private constant [6 x i8] c"macos\00" +@fld.str.623 = private constant [6 x i8] c"linux\00" +@fld.str.624 = private constant [8 x i8] c"windows\00" +@fld.str.625 = private constant [5 x i8] c"wasm\00" +@fld.str.626 = private constant [4 x i8] c"ios\00" +@fld.str.627 = private constant [8 x i8] c"android\00" +@fld.str.628 = private constant [8 x i8] c"unknown\00" +@field_names.629 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.622, i64 5 }, { ptr, i64 } { ptr @fld.str.623, i64 5 }, { ptr, i64 } { ptr @fld.str.624, i64 7 }, { ptr, i64 } { ptr @fld.str.625, i64 4 }, { ptr, i64 } { ptr @fld.str.626, i64 3 }, { ptr, i64 } { ptr @fld.str.627, i64 7 }, { ptr, i64 } { ptr @fld.str.628, i64 7 }] +@str.630 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.631 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.632 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.633 = private constant [8 x i8] c"aarch64\00" +@fld.str.634 = private constant [7 x i8] c"x86_64\00" +@fld.str.635 = private constant [7 x i8] c"wasm32\00" +@fld.str.636 = private constant [7 x i8] c"wasm64\00" +@fld.str.637 = private constant [8 x i8] c"unknown\00" +@field_names.638 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.633, i64 7 }, { ptr, i64 } { ptr @fld.str.634, i64 6 }, { ptr, i64 } { ptr @fld.str.635, i64 6 }, { ptr, i64 } { ptr @fld.str.636, i64 6 }, { ptr, i64 } { ptr @fld.str.637, i64 7 }] +@str.639 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.640 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.641 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.642 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.643 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.644 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.645 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.646 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.647 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.648 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.649 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.650 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.651 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.652 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.653 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.654 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.655 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.656 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.657 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.658 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.659 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.660 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.661 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.662 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.663 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.664 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.665 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.666 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.667 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.668 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.669 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.670 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.671 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.672 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.673 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.676 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.677 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.678 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.679 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.680 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.681 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.682 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.683 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.684 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.685 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.686 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.687 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.688 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.689 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.690 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.691 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.692 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.693 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.694 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.695 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.696 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.697 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.698 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.699 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.700 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.701 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.702 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.703 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.704 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.705 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.706 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.707 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.708 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.709 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.710 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.711 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.712 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.713 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.714 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.715 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.716 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.718 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.719 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.720 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.721 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.722 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.723 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.724 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.725 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.726 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.727 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.728 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.729 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.730 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.731 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.732 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.733 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.734 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.735 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.736 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.737 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.738 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.739 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.740 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.741 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.742 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.743 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.744 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.745 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.746 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.747 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.748 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.749 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.750 = private unnamed_addr constant [5 x i8] c"*Dog\00", align 1 +@str.751 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.752 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.753 = private unnamed_addr constant [5 x i8] c"*Cat\00", align 1 +@str.754 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.755 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.756 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.757 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.758 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.759 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.760 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.761 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.762 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.763 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.764 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.765 = private unnamed_addr constant [8 x i8] c"*[2]Any\00", align 1 +@str.766 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.767 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.768 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.769 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.770 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.771 = private unnamed_addr constant [6 x i8] c"**Dog\00", align 1 +@str.772 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.773 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.774 = private unnamed_addr constant [6 x i8] c"**Cat\00", align 1 +@str.775 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.776 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.777 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.778 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.779 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.780 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.781 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.782 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.783 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.784 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.785 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.786 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.787 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.788 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -543,7 +903,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -670,7 +1030,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -839,38 +1199,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.243 + br label %while.hdr.411 -while.hdr.243: ; preds = %if.merge.248, %entry +while.hdr.411: ; preds = %if.merge.416, %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.244, label %while.exit.245 + br i1 %icmp, label %while.body.412, label %while.exit.413 -while.body.244: ; preds = %while.hdr.243 +while.body.412: ; preds = %while.hdr.411 %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.246, label %if.else.247 + br i1 %icmpN, label %if.then.414, label %if.else.415 -while.exit.245: ; preds = %while.hdr.243 +while.exit.413: ; preds = %while.hdr.411 ret void -if.then.246: ; preds = %while.body.244 +if.then.414: ; preds = %while.body.412 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.248 + br label %if.merge.416 -if.else.247: ; preds = %while.body.244 +if.else.415: ; preds = %while.body.412 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.248 + br label %if.merge.416 -if.merge.248: ; preds = %if.else.247, %if.then.246 - %bp = phi i64 [ %addN, %if.then.246 ], [ %addN, %if.else.247 ] +if.merge.416: ; preds = %if.else.415, %if.then.414 + %bp = phi i64 [ %addN, %if.then.414 ], [ %addN, %if.else.415 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -883,7 +1243,7 @@ if.merge.248: ; preds = %if.else.247, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.243 + br label %while.hdr.411 } ; Function Attrs: nounwind @@ -1001,12 +1361,12 @@ entry: 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.241, label %if.merge.242 + br i1 %icmp, label %if.then.409, label %if.merge.410 -if.then.241: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.409: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.242: ; preds = %entry +if.merge.410: ; 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 @@ -1037,14 +1397,14 @@ if.merge.242: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.249 + br label %while.hdr.417 -while.hdr.249: ; preds = %if.merge.253, %if.merge.242 +while.hdr.417: ; preds = %if.merge.421, %if.merge.410 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.250, label %while.exit.251 + br i1 %icmpN, label %while.body.418, label %while.exit.419 -while.body.250: ; preds = %while.hdr.249 +while.body.418: ; preds = %while.hdr.417 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1052,9 +1412,9 @@ while.body.250: ; preds = %while.hdr.249 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.252, label %if.merge.253 + br i1 %icmpN, label %if.then.420, label %if.merge.421 -while.exit.251: ; preds = %if.then.252, %while.hdr.249 +while.exit.419: ; preds = %if.then.420, %while.hdr.417 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1062,14 +1422,14 @@ while.exit.251: ; preds = %if.then.252, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.252: ; preds = %while.body.250 - br label %while.exit.251 +if.then.420: ; preds = %while.body.418 + br label %while.exit.419 -if.merge.253: ; preds = %while.body.250 +if.merge.421: ; preds = %while.body.418 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.249 + br label %while.hdr.417 } ; Function Attrs: nounwind @@ -1147,11 +1507,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1184,16 +1547,47 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 - i64 37, label %match.arm.43 - i64 38, label %match.arm.43 i64 39, label %match.arm.43 - i64 40, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 93, label %match.arm.43 + i64 94, label %match.arm.43 + i64 95, label %match.arm.43 + i64 96, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 49, label %match.arm.47 - i64 55, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 104, label %match.arm.47 + i64 110, label %match.arm.47 i64 36, label %match.arm.48 - i64 43, label %match.arm.48 - i64 47, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 99, label %match.arm.48 + i64 102, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1202,29 +1596,46 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 41, label %match.arm.49 - i64 42, label %match.arm.49 + i64 40, label %match.arm.49 i64 44, label %match.arm.49 - i64 45, label %match.arm.49 - i64 46, label %match.arm.49 - i64 48, label %match.arm.49 + i64 47, label %match.arm.49 + i64 49, label %match.arm.49 i64 50, label %match.arm.49 - i64 51, label %match.arm.49 - i64 52, label %match.arm.49 - i64 53, label %match.arm.49 - i64 54, label %match.arm.49 i64 56, label %match.arm.49 i64 57, label %match.arm.49 i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 97, label %match.arm.49 + i64 98, label %match.arm.49 + i64 100, label %match.arm.49 + i64 101, label %match.arm.49 + i64 103, label %match.arm.49 + i64 105, label %match.arm.49 + i64 106, label %match.arm.49 + i64 107, label %match.arm.49 + i64 108, label %match.arm.49 + i64 109, label %match.arm.49 + i64 111, label %match.arm.49 + i64 112, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.214, %dispatch.merge.194, %dispatch.merge.174, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.524, %dispatch.merge.369, %dispatch.merge.331, %dispatch.merge.287, %dispatch.merge.270, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1233,7 +1644,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [86 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [176 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1261,7 +1672,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1275,80 +1686,142 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 - i64 37, label %dispatch.case.105 - i64 38, label %dispatch.case.106 - i64 39, label %dispatch.case.107 - i64 40, label %dispatch.case.108 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 93, label %dispatch.case.121 + i64 94, label %dispatch.case.122 + i64 95, label %dispatch.case.123 + i64 96, label %dispatch.case.124 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.271 [ + i64 37, label %dispatch.case.272 + i64 38, label %dispatch.case.273 + i64 54, label %dispatch.case.274 + i64 70, label %dispatch.case.275 + i64 71, label %dispatch.case.276 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.175 [ - i64 35, label %dispatch.case.176 - i64 49, label %dispatch.case.177 - i64 55, label %dispatch.case.178 + switch i64 %ua.raw29, label %dispatch.default.288 [ + i64 35, label %dispatch.case.289 + i64 81, label %dispatch.case.290 + i64 87, label %dispatch.case.291 + i64 88, label %dispatch.case.292 + i64 92, label %dispatch.case.293 + i64 104, label %dispatch.case.294 + i64 110, label %dispatch.case.295 ] -match.arm.48: ; preds = %entry, %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.195 [ - i64 36, label %dispatch.case.196 - i64 43, label %dispatch.case.197 - i64 47, label %dispatch.case.198 + switch i64 %ua.raw33, label %dispatch.default.332 [ + i64 36, label %dispatch.case.333 + i64 60, label %dispatch.case.334 + i64 77, label %dispatch.case.335 + i64 85, label %dispatch.case.336 + i64 99, label %dispatch.case.337 + i64 102, label %dispatch.case.338 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.215 [ - i64 18, label %dispatch.case.216 - i64 21, label %dispatch.case.217 - i64 23, label %dispatch.case.218 - i64 25, label %dispatch.case.219 - i64 28, label %dispatch.case.220 - i64 29, label %dispatch.case.221 - i64 31, label %dispatch.case.222 - i64 33, label %dispatch.case.223 - i64 41, label %dispatch.case.224 - i64 42, label %dispatch.case.225 - i64 44, label %dispatch.case.226 - i64 45, label %dispatch.case.227 - i64 46, label %dispatch.case.228 - i64 48, label %dispatch.case.229 - i64 50, label %dispatch.case.230 - i64 51, label %dispatch.case.231 - i64 52, label %dispatch.case.232 - i64 53, label %dispatch.case.233 - i64 54, label %dispatch.case.234 - i64 56, label %dispatch.case.235 - i64 57, label %dispatch.case.236 - i64 58, label %dispatch.case.237 + switch i64 %ua.raw37, label %dispatch.default.370 [ + i64 18, label %dispatch.case.371 + i64 21, label %dispatch.case.372 + i64 23, label %dispatch.case.373 + i64 25, label %dispatch.case.374 + i64 28, label %dispatch.case.375 + i64 29, label %dispatch.case.376 + i64 31, label %dispatch.case.377 + i64 33, label %dispatch.case.378 + i64 40, label %dispatch.case.379 + i64 44, label %dispatch.case.380 + i64 47, label %dispatch.case.381 + i64 49, label %dispatch.case.382 + i64 50, label %dispatch.case.383 + i64 56, label %dispatch.case.384 + i64 57, label %dispatch.case.385 + i64 58, label %dispatch.case.386 + i64 59, label %dispatch.case.387 + i64 62, label %dispatch.case.388 + i64 67, label %dispatch.case.389 + i64 74, label %dispatch.case.390 + i64 83, label %dispatch.case.391 + i64 86, label %dispatch.case.392 + i64 90, label %dispatch.case.393 + i64 97, label %dispatch.case.394 + i64 98, label %dispatch.case.395 + i64 100, label %dispatch.case.396 + i64 101, label %dispatch.case.397 + i64 103, label %dispatch.case.398 + i64 105, label %dispatch.case.399 + i64 106, label %dispatch.case.400 + i64 107, label %dispatch.case.401 + i64 108, label %dispatch.case.402 + i64 109, label %dispatch.case.403 + i64 111, label %dispatch.case.404 + i64 112, label %dispatch.case.405 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.525 [ + i64 41, label %dispatch.case.526 + i64 42, label %dispatch.case.527 + i64 46, label %dispatch.case.528 + i64 91, label %dispatch.case.529 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag32 = extractvalue { i64, i64 } %loadN, 0 - %refl.val33 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype34 = icmp eq i64 %refl.tag32, 13 - %refl.tid35 = select i1 %refl.istype34, i64 %refl.val33, i64 %refl.tag32 - %tn.gep = getelementptr inbounds [86 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid35 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [176 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1358,15 +1831,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw37) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw40 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw40) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1374,16 +1847,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw42 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw43 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw43 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1393,347 +1866,704 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.112, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.319, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr48 = inttoptr i64 %ua.raw47 to ptr - %ua.load49 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr48, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load49) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load {}, ptr %ua.ptr52, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load53) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load { i64 }, ptr %ua.ptr56, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load57) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { ptr, i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load61) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, ptr, ptr }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load65) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load69) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, i64 }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load73) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load77) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load81) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { ptr, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Greeter(ptr %0, { ptr, ptr } %ua.load85) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.106: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load { ptr }, ptr %ua.ptr88, align 8 - %callN = call { ptr, i64 } @struct_to_string____Greeter__Vtable(ptr %0, { ptr } %ua.load89) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.107: ; preds = %match.arm.43 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load { i64 }, ptr %ua.ptr92, align 8 - %callN = call { ptr, i64 } @struct_to_string__Dog(ptr %0, { i64 } %ua.load93) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.108: ; preds = %match.arm.43 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load { i64 }, ptr %ua.ptr96, align 8 - %callN = call { ptr, i64 } @struct_to_string__Cat(ptr %0, { i64 } %ua.load97) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.174: ; preds = %dispatch.case.178, %dispatch.case.177, %dispatch.case.176, %dispatch.default.175 +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { ptr, ptr }, ptr %ua.ptr161, align 8 + %callN = call { ptr, i64 } @struct_to_string__Greeter(ptr %0, { ptr, ptr } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.122: ; preds = %match.arm.43 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load { ptr }, ptr %ua.ptr165, align 8 + %callN = call { ptr, i64 } @struct_to_string____Greeter__Vtable(ptr %0, { ptr } %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.123: ; preds = %match.arm.43 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load { i64 }, ptr %ua.ptr169, align 8 + %callN = call { ptr, i64 } @struct_to_string__Dog(ptr %0, { i64 } %ua.load170) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.124: ; preds = %match.arm.43 + %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr173 = inttoptr i64 %ua.raw172 to ptr + %ua.load174 = load { i64 }, ptr %ua.ptr173, align 8 + %callN = call { ptr, i64 } @struct_to_string__Cat(ptr %0, { i64 } %ua.load174) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.270: ; preds = %dispatch.case.276, %dispatch.case.275, %dispatch.case.274, %dispatch.case.273, %dispatch.case.272, %dispatch.default.271 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.175: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.113, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.174 +dispatch.default.271: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.320, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.270 -dispatch.case.176: ; preds = %match.arm.47 - %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr - %ua.load102 = load [4 x i64], ptr %ua.ptr101, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load102) +dispatch.case.272: ; preds = %match.arm.44 + %ua.raw177 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw177) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.174 + br label %dispatch.merge.270 -dispatch.case.177: ; preds = %match.arm.47 - %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr - %ua.load106 = load [2 x { i64, i64 }], ptr %ua.ptr105, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load106) +dispatch.case.273: ; preds = %match.arm.44 + %ua.raw179 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw179) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.174 + br label %dispatch.merge.270 -dispatch.case.178: ; preds = %match.arm.47 - %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr - %ua.load110 = load [1 x { i64, i64 }], ptr %ua.ptr109, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load110) +dispatch.case.274: ; preds = %match.arm.44 + %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr182 = inttoptr i64 %ua.raw181 to ptr + %ua.load183 = load { i64, [24 x i8] }, ptr %ua.ptr182, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load183) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.174 + br label %dispatch.merge.270 -dispatch.merge.194: ; preds = %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.default.195 +dispatch.case.275: ; preds = %match.arm.44 + %ua.raw185 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw185) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.270 + +dispatch.case.276: ; preds = %match.arm.44 + %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw187) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.270 + +dispatch.merge.287: ; preds = %dispatch.case.295, %dispatch.case.294, %dispatch.case.293, %dispatch.case.292, %dispatch.case.291, %dispatch.case.290, %dispatch.case.289, %dispatch.default.288 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.195: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.114, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.194 +dispatch.default.288: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.321, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.287 -dispatch.case.196: ; preds = %match.arm.48 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr114 = inttoptr i64 %ua.raw113 to ptr - %ua.load115 = load { ptr, i64 }, ptr %ua.ptr114, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load115) +dispatch.case.289: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [4 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load192) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.194 + br label %dispatch.merge.287 -dispatch.case.197: ; preds = %match.arm.48 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr118 = inttoptr i64 %ua.raw117 to ptr - %ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8 - %callN = call { ptr, i64 } @slice_to_string__Greeter(ptr %0, { ptr, i64 } %ua.load119) +dispatch.case.290: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load196) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.194 + br label %dispatch.merge.287 -dispatch.case.198: ; preds = %match.arm.48 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr122 = inttoptr i64 %ua.raw121 to ptr - %ua.load123 = load { ptr, i64 }, ptr %ua.ptr122, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load123) +dispatch.case.291: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [8 x i64], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load200) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.194 + br label %dispatch.merge.287 -dispatch.merge.214: ; preds = %dispatch.case.237, %dispatch.case.236, %dispatch.case.235, %dispatch.case.234, %dispatch.case.233, %dispatch.case.232, %dispatch.case.231, %dispatch.case.230, %dispatch.case.229, %dispatch.case.228, %dispatch.case.227, %dispatch.case.226, %dispatch.case.225, %dispatch.case.224, %dispatch.case.223, %dispatch.case.222, %dispatch.case.221, %dispatch.case.220, %dispatch.case.219, %dispatch.case.218, %dispatch.case.217, %dispatch.case.216, %dispatch.default.215 +dispatch.case.292: ; preds = %match.arm.47 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [64 x i8], ptr %ua.ptr203, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load204) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.287 + +dispatch.case.293: ; preds = %match.arm.47 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [64 x i64], ptr %ua.ptr207, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load208) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.287 + +dispatch.case.294: ; preds = %match.arm.47 + %ua.raw210 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr211 = inttoptr i64 %ua.raw210 to ptr + %ua.load212 = load [2 x { i64, i64 }], ptr %ua.ptr211, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_2_Any(ptr %0, [2 x { i64, i64 }] %ua.load212) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.287 + +dispatch.case.295: ; preds = %match.arm.47 + %ua.raw214 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr215 = inttoptr i64 %ua.raw214 to ptr + %ua.load216 = load [1 x { i64, i64 }], ptr %ua.ptr215, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load216) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.287 + +dispatch.merge.331: ; preds = %dispatch.case.338, %dispatch.case.337, %dispatch.case.336, %dispatch.case.335, %dispatch.case.334, %dispatch.case.333, %dispatch.default.332 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.215: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.115, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.214 +dispatch.default.332: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.322, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.331 -dispatch.case.216: ; preds = %match.arm.49 - %ua.raw126 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw126 to ptr +dispatch.case.333: ; preds = %match.arm.48 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.334: ; preds = %match.arm.48 + %ua.raw223 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr224 = inttoptr i64 %ua.raw223 to ptr + %ua.load225 = load { ptr, i64 }, ptr %ua.ptr224, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load225) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.335: ; preds = %match.arm.48 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.336: ; preds = %match.arm.48 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr232 = inttoptr i64 %ua.raw231 to ptr + %ua.load233 = load { ptr, i64 }, ptr %ua.ptr232, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load233) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.337: ; preds = %match.arm.48 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr236 = inttoptr i64 %ua.raw235 to ptr + %ua.load237 = load { ptr, i64 }, ptr %ua.ptr236, align 8 + %callN = call { ptr, i64 } @slice_to_string__Greeter(ptr %0, { ptr, i64 } %ua.load237) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.338: ; preds = %match.arm.48 + %ua.raw239 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr240 = inttoptr i64 %ua.raw239 to ptr + %ua.load241 = load { ptr, i64 }, ptr %ua.ptr240, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load241) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.merge.369: ; preds = %dispatch.case.405, %dispatch.case.404, %dispatch.case.403, %dispatch.case.402, %dispatch.case.401, %dispatch.case.400, %dispatch.case.399, %dispatch.case.398, %dispatch.case.397, %dispatch.case.396, %dispatch.case.395, %dispatch.case.394, %dispatch.case.393, %dispatch.case.392, %dispatch.case.391, %dispatch.case.390, %dispatch.case.389, %dispatch.case.388, %dispatch.case.387, %dispatch.case.386, %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.default.370 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.370: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.323, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw244 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.217: ; preds = %match.arm.49 - %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 - %iNp129 = inttoptr i64 %ua.raw128 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp129) +dispatch.case.372: ; preds = %match.arm.49 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.218: ; preds = %match.arm.49 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp132 = inttoptr i64 %ua.raw131 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp132) +dispatch.case.373: ; preds = %match.arm.49 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.219: ; preds = %match.arm.49 - %ua.raw134 = extractvalue { i64, i64 } %loadN, 1 - %iNp135 = inttoptr i64 %ua.raw134 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp135) +dispatch.case.374: ; preds = %match.arm.49 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.220: ; preds = %match.arm.49 - %ua.raw137 = extractvalue { i64, i64 } %loadN, 1 - %iNp138 = inttoptr i64 %ua.raw137 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp138) +dispatch.case.375: ; preds = %match.arm.49 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.221: ; preds = %match.arm.49 - %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 - %iNp141 = inttoptr i64 %ua.raw140 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp141) +dispatch.case.376: ; preds = %match.arm.49 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.222: ; preds = %match.arm.49 - %ua.raw143 = extractvalue { i64, i64 } %loadN, 1 - %iNp144 = inttoptr i64 %ua.raw143 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp144) +dispatch.case.377: ; preds = %match.arm.49 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.223: ; preds = %match.arm.49 - %ua.raw146 = extractvalue { i64, i64 } %loadN, 1 - %iNp147 = inttoptr i64 %ua.raw146 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp147) +dispatch.case.378: ; preds = %match.arm.49 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.224: ; preds = %match.arm.49 - %ua.raw149 = extractvalue { i64, i64 } %loadN, 1 - %iNp150 = inttoptr i64 %ua.raw149 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Dog(ptr %0, ptr %iNp150) +dispatch.case.379: ; preds = %match.arm.49 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.225: ; preds = %match.arm.49 - %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 - %iNp153 = inttoptr i64 %ua.raw152 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Cat(ptr %0, ptr %iNp153) +dispatch.case.380: ; preds = %match.arm.49 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.226: ; preds = %match.arm.49 - %ua.raw155 = extractvalue { i64, i64 } %loadN, 1 - %iNp156 = inttoptr i64 %ua.raw155 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp156) +dispatch.case.381: ; preds = %match.arm.49 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.227: ; preds = %match.arm.49 - %ua.raw158 = extractvalue { i64, i64 } %loadN, 1 - %iNp159 = inttoptr i64 %ua.raw158 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp159) +dispatch.case.382: ; preds = %match.arm.49 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp277) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.228: ; preds = %match.arm.49 - %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 - %iNp162 = inttoptr i64 %ua.raw161 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp162) +dispatch.case.383: ; preds = %match.arm.49 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp280) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.229: ; preds = %match.arm.49 - %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 - %iNp165 = inttoptr i64 %ua.raw164 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp165) +dispatch.case.384: ; preds = %match.arm.49 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp283) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.230: ; preds = %match.arm.49 - %ua.raw167 = extractvalue { i64, i64 } %loadN, 1 - %iNp168 = inttoptr i64 %ua.raw167 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp168) +dispatch.case.385: ; preds = %match.arm.49 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp286) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.231: ; preds = %match.arm.49 - %ua.raw170 = extractvalue { i64, i64 } %loadN, 1 - %iNp171 = inttoptr i64 %ua.raw170 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp171) +dispatch.case.386: ; preds = %match.arm.49 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp289) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.232: ; preds = %match.arm.49 - %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 - %iNp174 = inttoptr i64 %ua.raw173 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Dog(ptr %0, ptr %iNp174) +dispatch.case.387: ; preds = %match.arm.49 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp292) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.233: ; preds = %match.arm.49 - %ua.raw176 = extractvalue { i64, i64 } %loadN, 1 - %iNp177 = inttoptr i64 %ua.raw176 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Cat(ptr %0, ptr %iNp177) +dispatch.case.388: ; preds = %match.arm.49 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp295) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.234: ; preds = %match.arm.49 - %ua.raw179 = extractvalue { i64, i64 } %loadN, 1 - %iNp180 = inttoptr i64 %ua.raw179 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp180) +dispatch.case.389: ; preds = %match.arm.49 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp298) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.235: ; preds = %match.arm.49 - %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 - %iNp183 = inttoptr i64 %ua.raw182 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp183) +dispatch.case.390: ; preds = %match.arm.49 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp301) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.236: ; preds = %match.arm.49 - %ua.raw185 = extractvalue { i64, i64 } %loadN, 1 - %iNp186 = inttoptr i64 %ua.raw185 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp186) +dispatch.case.391: ; preds = %match.arm.49 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp304) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 -dispatch.case.237: ; preds = %match.arm.49 - %ua.raw188 = extractvalue { i64, i64 } %loadN, 1 - %iNp189 = inttoptr i64 %ua.raw188 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp189) +dispatch.case.392: ; preds = %match.arm.49 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp307) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.369 + +dispatch.case.393: ; preds = %match.arm.49 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.394: ; preds = %match.arm.49 + %ua.raw312 = extractvalue { i64, i64 } %loadN, 1 + %iNp313 = inttoptr i64 %ua.raw312 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Dog(ptr %0, ptr %iNp313) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.395: ; preds = %match.arm.49 + %ua.raw315 = extractvalue { i64, i64 } %loadN, 1 + %iNp316 = inttoptr i64 %ua.raw315 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Cat(ptr %0, ptr %iNp316) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.396: ; preds = %match.arm.49 + %ua.raw318 = extractvalue { i64, i64 } %loadN, 1 + %iNp319 = inttoptr i64 %ua.raw318 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.397: ; preds = %match.arm.49 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %iNp322 = inttoptr i64 %ua.raw321 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp322) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.398: ; preds = %match.arm.49 + %ua.raw324 = extractvalue { i64, i64 } %loadN, 1 + %iNp325 = inttoptr i64 %ua.raw324 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp325) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.399: ; preds = %match.arm.49 + %ua.raw327 = extractvalue { i64, i64 } %loadN, 1 + %iNp328 = inttoptr i64 %ua.raw327 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_2_Any(ptr %0, ptr %iNp328) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.400: ; preds = %match.arm.49 + %ua.raw330 = extractvalue { i64, i64 } %loadN, 1 + %iNp331 = inttoptr i64 %ua.raw330 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp331) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.401: ; preds = %match.arm.49 + %ua.raw333 = extractvalue { i64, i64 } %loadN, 1 + %iNp334 = inttoptr i64 %ua.raw333 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Dog(ptr %0, ptr %iNp334) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.402: ; preds = %match.arm.49 + %ua.raw336 = extractvalue { i64, i64 } %loadN, 1 + %iNp337 = inttoptr i64 %ua.raw336 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Cat(ptr %0, ptr %iNp337) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.403: ; preds = %match.arm.49 + %ua.raw339 = extractvalue { i64, i64 } %loadN, 1 + %iNp340 = inttoptr i64 %ua.raw339 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp340) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.404: ; preds = %match.arm.49 + %ua.raw342 = extractvalue { i64, i64 } %loadN, 1 + %iNp343 = inttoptr i64 %ua.raw342 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp343) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.405: ; preds = %match.arm.49 + %ua.raw345 = extractvalue { i64, i64 } %loadN, 1 + %iNp346 = inttoptr i64 %ua.raw345 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp346) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.merge.524: ; preds = %dispatch.case.529, %dispatch.case.528, %dispatch.case.527, %dispatch.case.526, %dispatch.default.525 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.525: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.324, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.524 + +dispatch.case.526: ; preds = %match.arm.50 + %ua.raw349 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr350 = inttoptr i64 %ua.raw349 to ptr + %ua.load351 = load { { i32 }, i1 }, ptr %ua.ptr350, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load351) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.524 + +dispatch.case.527: ; preds = %match.arm.50 + %ua.raw353 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr354 = inttoptr i64 %ua.raw353 to ptr + %ua.load355 = load { { ptr, i64 }, i1 }, ptr %ua.ptr354, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load355) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.524 + +dispatch.case.528: ; preds = %match.arm.50 + %ua.raw357 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr358 = inttoptr i64 %ua.raw357 to ptr + %ua.load359 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr358, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load359) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.524 + +dispatch.case.529: ; preds = %match.arm.50 + %ua.raw361 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr362 = inttoptr i64 %ua.raw361 to ptr + %ua.load363 = load { [64 x i8], i1 }, ptr %ua.ptr362, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load363) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.524 } ; Function Attrs: nounwind @@ -1742,7 +2572,7 @@ 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.116, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.325, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1838,7 +2668,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, 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 @@ -1846,7 +2676,7 @@ if.then.12: ; preds = %if.then.9 %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.118, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, 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 @@ -1856,13 +2686,13 @@ if.then.12: ; preds = %if.then.9 %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.119, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.328, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.329, 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 @@ -1870,7 +2700,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.121, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.330, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1884,7 +2714,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.331, 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 @@ -1892,7 +2722,7 @@ if.then.23: ; preds = %if.else.10 %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.123, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.332, 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 @@ -1903,7 +2733,7 @@ if.then.23: ; preds = %if.else.10 %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.124, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.333, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1960,7 +2790,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.125, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.334, 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 @@ -1968,7 +2798,7 @@ if.then.32: ; preds = %if.then.29 %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.126, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.335, 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 @@ -1979,7 +2809,7 @@ if.then.32: ; preds = %if.then.29 %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.127, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.336, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1999,7 +2829,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.337, 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 @@ -2007,7 +2837,7 @@ if.then.35: ; preds = %while.exit.2 %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.129, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, 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 @@ -2018,7 +2848,7 @@ if.then.35: ; preds = %while.exit.2 %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.130, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2095,6 +2925,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i64 @Dog.greet(ptr %0, ptr %1) #0 { entry: @@ -2168,14 +3736,14 @@ entry: %ba.tmp = alloca { i64 }, align 8 store { i64 } %load, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 39, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 95, 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 { i64 }, ptr %allocaN, align 8 %ba.tmp4 = alloca { i64 }, align 8 store { i64 } %loadN, ptr %ba.tmp4, align 8 %ba.p2i5 = ptrtoint ptr %ba.tmp4 to i64 - %ba.val6 = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i5, 1 + %ba.val6 = insertvalue { i64, i64 } { i64 96, i64 undef }, i64 %ba.p2i5, 1 %igp.ptr7 = getelementptr { i64, i64 }, ptr %allocaN, i64 1 store { i64, i64 } %ba.val6, ptr %igp.ptr7, align 8 %allocaN = alloca { ptr, i64 }, align 8 @@ -2200,7 +3768,7 @@ entry: define internal void @print__ct_sa93836785e55c522__pack_s64(ptr %0, i64 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.131, i64 11 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.340, i64 11 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2215,7 +3783,7 @@ entry: %gepN = getelementptr inbounds { 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.132, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.341, 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 8) @@ -2242,7 +3810,7 @@ entry: ; 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.133, i64 11 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.342, i64 11 }) ret { ptr, i64 } %call } @@ -2258,14 +3826,14 @@ entry: %ba.tmp = alloca { i64 }, align 8 store { i64 } %load, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 96, 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 { i64 }, ptr %allocaN, align 8 %ba.tmp4 = alloca { i64 }, align 8 store { i64 } %loadN, ptr %ba.tmp4, align 8 %ba.p2i5 = ptrtoint ptr %ba.tmp4 to i64 - %ba.val6 = insertvalue { i64, i64 } { i64 39, i64 undef }, i64 %ba.p2i5, 1 + %ba.val6 = insertvalue { i64, i64 } { i64 95, i64 undef }, i64 %ba.p2i5, 1 %igp.ptr7 = getelementptr { i64, i64 }, ptr %allocaN, i64 1 store { i64, i64 } %ba.val6, ptr %igp.ptr7, align 8 %allocaN = alloca { ptr, i64 }, align 8 @@ -2290,7 +3858,7 @@ entry: define internal void @print__ct_sdcda2f2aa37cf168__pack_s64(ptr %0, i64 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.134, i64 11 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.343, i64 11 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2305,7 +3873,7 @@ entry: %gepN = getelementptr inbounds { 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.135, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.344, 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 8) @@ -2332,7 +3900,7 @@ entry: ; 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.136, i64 11 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.345, i64 11 }) ret { ptr, i64 } %call } @@ -2348,14 +3916,14 @@ entry: %ba.tmp = alloca { i64 }, align 8 store { i64 } %load, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 39, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 95, 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 { i64 }, ptr %allocaN, align 8 %ba.tmp4 = alloca { i64 }, align 8 store { i64 } %loadN, ptr %ba.tmp4, align 8 %ba.p2i5 = ptrtoint ptr %ba.tmp4 to i64 - %ba.val6 = insertvalue { i64, i64 } { i64 39, i64 undef }, i64 %ba.p2i5, 1 + %ba.val6 = insertvalue { i64, i64 } { i64 95, i64 undef }, i64 %ba.p2i5, 1 %igp.ptr7 = getelementptr { i64, i64 }, ptr %allocaN, i64 1 store { i64, i64 } %ba.val6, ptr %igp.ptr7, align 8 %allocaN = alloca { ptr, i64 }, align 8 @@ -2380,7 +3948,7 @@ entry: define internal void @print__ct_s1a602d8c97d1af91__pack_s64(ptr %0, i64 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.137, i64 11 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.346, i64 11 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2395,7 +3963,7 @@ entry: %gepN = getelementptr inbounds { 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.138, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.347, 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 8) @@ -2422,7 +3990,7 @@ entry: ; 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.139, i64 11 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.348, i64 11 }) ret { ptr, i64 } %call } @@ -2433,35 +4001,35 @@ entry: %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.140, i64 15 }, { ptr, i64 } { ptr @str.141, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.349, i64 15 }, { ptr, i64 } { ptr @str.350, 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.109 + br label %while.hdr.125 -while.hdr.109: ; preds = %fv.merge, %entry +while.hdr.125: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.110, label %while.exit.111 + br i1 %icmp, label %while.body.126, label %while.exit.127 -while.body.110: ; preds = %while.hdr.109 +while.body.126: ; preds = %while.hdr.125 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.112, label %if.merge.113 + br i1 %icmpN, label %if.then.128, label %if.merge.129 -while.exit.111: ; preds = %while.hdr.109 +while.exit.127: ; preds = %while.hdr.125 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.142, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.351, i64 1 }) ret { ptr, i64 } %callN -if.then.112: ; preds = %while.body.110 +if.then.128: ; preds = %while.body.126 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.143, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.113 + br label %if.merge.129 -if.merge.113: ; preds = %if.then.112, %while.body.110 +if.merge.129: ; preds = %if.then.128, %while.body.126 %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 @@ -2469,7 +4037,7 @@ if.merge.113: ; preds = %if.then.112, %while %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.147, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.356, 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 @@ -2489,31 +4057,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.109 + br label %while.hdr.125 -fv.default: ; preds = %if.merge.113 +fv.default: ; preds = %if.merge.129 br label %fv.merge -fv.case: ; preds = %if.merge.113 +fv.case: ; preds = %if.merge.129 %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.113 +fv.case17: ; preds = %if.merge.129 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.113 +fv.case20: ; preds = %if.merge.129 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.113 +fv.case24: ; preds = %if.merge.129 %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 @@ -2526,43 +4094,43 @@ 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.148, i64 10 }, { ptr, i64 } { ptr @str.149, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.357, i64 10 }, { ptr, i64 } { ptr @str.358, 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.114 + br label %while.hdr.130 -while.hdr.114: ; preds = %if.merge.118, %entry +while.hdr.130: ; preds = %if.merge.134, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.115, label %while.exit.116 + br i1 %icmp, label %while.body.131, label %while.exit.132 -while.body.115: ; preds = %while.hdr.114 +while.body.131: ; preds = %while.hdr.130 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.117, label %if.merge.118 + br i1 %icmpN, label %if.then.133, label %if.merge.134 -while.exit.116: ; preds = %while.hdr.114 +while.exit.132: ; preds = %while.hdr.130 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.150, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, i64 1 }) ret { ptr, i64 } %callN -if.then.117: ; preds = %while.body.115 +if.then.133: ; preds = %while.body.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.118 + br label %if.merge.134 -if.merge.118: ; preds = %if.then.117, %while.body.115 +if.merge.134: ; preds = %if.then.133, %while.body.131 %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.152, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.361, 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.153, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.362, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2573,7 +4141,7 @@ if.merge.118: ; preds = %if.then.117, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.114 + br label %while.hdr.130 } ; Function Attrs: nounwind @@ -2581,43 +4149,43 @@ 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.154, i64 3 }, { ptr, i64 } { ptr @str.155, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.363, i64 3 }, { ptr, i64 } { ptr @str.364, 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.119 + br label %while.hdr.135 -while.hdr.119: ; preds = %fv.merge, %entry +while.hdr.135: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.120, label %while.exit.121 + br i1 %icmp, label %while.body.136, label %while.exit.137 -while.body.120: ; preds = %while.hdr.119 +while.body.136: ; preds = %while.hdr.135 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.122, label %if.merge.123 + br i1 %icmpN, label %if.then.138, label %if.merge.139 -while.exit.121: ; preds = %while.hdr.119 +while.exit.137: ; preds = %while.hdr.135 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.156, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.365, i64 1 }) ret { ptr, i64 } %callN -if.then.122: ; preds = %while.body.120 +if.then.138: ; preds = %while.body.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.157, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.123 + br label %if.merge.139 -if.merge.123: ; preds = %if.then.122, %while.body.120 +if.merge.139: ; preds = %if.then.138, %while.body.136 %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.159, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.368, 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.160, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.369, 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 @@ -2634,12 +4202,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.119 + br label %while.hdr.135 -fv.default: ; preds = %if.merge.123 +fv.default: ; preds = %if.merge.139 br label %fv.merge -fv.case: ; preds = %if.merge.123 +fv.case: ; preds = %if.merge.139 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2650,43 +4218,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.161, i64 10 }, { ptr, i64 } { ptr @str.162, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.370, i64 10 }, { ptr, i64 } { ptr @str.371, 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.124 + br label %while.hdr.140 -while.hdr.124: ; preds = %fv.merge, %entry +while.hdr.140: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.125, label %while.exit.126 + br i1 %icmp, label %while.body.141, label %while.exit.142 -while.body.125: ; preds = %while.hdr.124 +while.body.141: ; preds = %while.hdr.140 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.127, label %if.merge.128 + br i1 %icmpN, label %if.then.143, label %if.merge.144 -while.exit.126: ; preds = %while.hdr.124 +while.exit.142: ; preds = %while.hdr.140 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.372, i64 1 }) ret { ptr, i64 } %callN -if.then.127: ; preds = %while.body.125 +if.then.143: ; preds = %while.body.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.128 + br label %if.merge.144 -if.merge.128: ; preds = %if.then.127, %while.body.125 +if.merge.144: ; preds = %if.then.143, %while.body.141 %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.167, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.376, 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.168, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.377, 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 @@ -2704,18 +4272,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.124 + br label %while.hdr.140 -fv.default: ; preds = %if.merge.128 +fv.default: ; preds = %if.merge.144 br label %fv.merge -fv.case: ; preds = %if.merge.128 +fv.case: ; preds = %if.merge.144 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.128 +fv.case17: ; preds = %if.merge.144 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2726,43 +4294,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.169, i64 9 }, { ptr, i64 } { ptr @str.170, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.378, i64 9 }, { ptr, i64 } { ptr @str.379, 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.129 + br label %while.hdr.145 -while.hdr.129: ; preds = %fv.merge, %entry +while.hdr.145: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.130, label %while.exit.131 + br i1 %icmp, label %while.body.146, label %while.exit.147 -while.body.130: ; preds = %while.hdr.129 +while.body.146: ; preds = %while.hdr.145 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.132, label %if.merge.133 + br i1 %icmpN, label %if.then.148, label %if.merge.149 -while.exit.131: ; preds = %while.hdr.129 +while.exit.147: ; preds = %while.hdr.145 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.380, i64 1 }) ret { ptr, i64 } %callN -if.then.132: ; preds = %while.body.130 +if.then.148: ; preds = %while.body.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.381, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.133 + br label %if.merge.149 -if.merge.133: ; preds = %if.then.132, %while.body.130 +if.merge.149: ; preds = %if.then.148, %while.body.146 %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.176, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.385, 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.177, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.386, 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 @@ -2781,24 +4349,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.129 + br label %while.hdr.145 -fv.default: ; preds = %if.merge.133 +fv.default: ; preds = %if.merge.149 br label %fv.merge -fv.case: ; preds = %if.merge.133 +fv.case: ; preds = %if.merge.149 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.133 +fv.case17: ; preds = %if.merge.149 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.133 +fv.case21: ; preds = %if.merge.149 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2811,43 +4379,43 @@ 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.178, i64 5 }, { ptr, i64 } { ptr @str.179, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.387, i64 5 }, { ptr, i64 } { ptr @str.388, 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.134 + br label %while.hdr.150 -while.hdr.134: ; preds = %fv.merge, %entry +while.hdr.150: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.135, label %while.exit.136 + br i1 %icmp, label %while.body.151, label %while.exit.152 -while.body.135: ; preds = %while.hdr.134 +while.body.151: ; preds = %while.hdr.150 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.137, label %if.merge.138 + br i1 %icmpN, label %if.then.153, label %if.merge.154 -while.exit.136: ; preds = %while.hdr.134 +while.exit.152: ; preds = %while.hdr.150 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.180, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.389, i64 1 }) ret { ptr, i64 } %callN -if.then.137: ; preds = %while.body.135 +if.then.153: ; preds = %while.body.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.181, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.390, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.138 + br label %if.merge.154 -if.merge.138: ; preds = %if.then.137, %while.body.135 +if.merge.154: ; preds = %if.then.153, %while.body.151 %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.185, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.394, 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.186, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.395, 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 @@ -2866,23 +4434,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.134 + br label %while.hdr.150 -fv.default: ; preds = %if.merge.138 +fv.default: ; preds = %if.merge.154 br label %fv.merge -fv.case: ; preds = %if.merge.138 +fv.case: ; preds = %if.merge.154 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.138 +fv.case17: ; preds = %if.merge.154 %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.138 +fv.case20: ; preds = %if.merge.154 %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 @@ -2895,43 +4463,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.187, i64 8 }, { ptr, i64 } { ptr @str.188, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.396, i64 8 }, { ptr, i64 } { ptr @str.397, 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.139 + br label %while.hdr.155 -while.hdr.139: ; preds = %fv.merge, %entry +while.hdr.155: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.140, label %while.exit.141 + br i1 %icmp, label %while.body.156, label %while.exit.157 -while.body.140: ; preds = %while.hdr.139 +while.body.156: ; preds = %while.hdr.155 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.142, label %if.merge.143 + br i1 %icmpN, label %if.then.158, label %if.merge.159 -while.exit.141: ; preds = %while.hdr.139 +while.exit.157: ; preds = %while.hdr.155 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.189, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.398, i64 1 }) ret { ptr, i64 } %callN -if.then.142: ; preds = %while.body.140 +if.then.158: ; preds = %while.body.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.190, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.399, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.143 + br label %if.merge.159 -if.merge.143: ; preds = %if.then.142, %while.body.140 +if.merge.159: ; preds = %if.then.158, %while.body.156 %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.194, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.403, 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.195, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.404, 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 @@ -2950,23 +4518,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.139 + br label %while.hdr.155 -fv.default: ; preds = %if.merge.143 +fv.default: ; preds = %if.merge.159 br label %fv.merge -fv.case: ; preds = %if.merge.143 +fv.case: ; preds = %if.merge.159 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.143 +fv.case17: ; preds = %if.merge.159 %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.143 +fv.case20: ; preds = %if.merge.159 %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 @@ -2978,43 +4546,43 @@ 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.196, i64 17 }, { ptr, i64 } { ptr @str.197, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.405, i64 17 }, { ptr, i64 } { ptr @str.406, 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.144 + br label %while.hdr.160 -while.hdr.144: ; preds = %fv.merge, %entry +while.hdr.160: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.145, label %while.exit.146 + br i1 %icmp, label %while.body.161, label %while.exit.162 -while.body.145: ; preds = %while.hdr.144 +while.body.161: ; preds = %while.hdr.160 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.147, label %if.merge.148 + br i1 %icmpN, label %if.then.163, label %if.merge.164 -while.exit.146: ; preds = %while.hdr.144 +while.exit.162: ; preds = %while.hdr.160 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.198, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.407, i64 1 }) ret { ptr, i64 } %callN -if.then.147: ; preds = %while.body.145 +if.then.163: ; preds = %while.body.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.199, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.148 + br label %if.merge.164 -if.merge.148: ; preds = %if.then.147, %while.body.145 +if.merge.164: ; preds = %if.then.163, %while.body.161 %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.204, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.413, 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.205, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.414, 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 @@ -3034,29 +4602,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.144 + br label %while.hdr.160 -fv.default: ; preds = %if.merge.148 +fv.default: ; preds = %if.merge.164 br label %fv.merge -fv.case: ; preds = %if.merge.148 +fv.case: ; preds = %if.merge.164 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.148 +fv.case17: ; preds = %if.merge.164 %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.148 +fv.case20: ; preds = %if.merge.164 %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.148 +fv.case23: ; preds = %if.merge.164 %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 @@ -3068,43 +4636,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.206, i64 7 }, { ptr, i64 } { ptr @str.207, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.415, i64 7 }, { ptr, i64 } { ptr @str.416, 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.149 + br label %while.hdr.165 -while.hdr.149: ; preds = %fv.merge, %entry +while.hdr.165: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.150, label %while.exit.151 + br i1 %icmp, label %while.body.166, label %while.exit.167 -while.body.150: ; preds = %while.hdr.149 +while.body.166: ; preds = %while.hdr.165 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.152, label %if.merge.153 + br i1 %icmpN, label %if.then.168, label %if.merge.169 -while.exit.151: ; preds = %while.hdr.149 +while.exit.167: ; preds = %while.hdr.165 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.417, i64 1 }) ret { ptr, i64 } %callN -if.then.152: ; preds = %while.body.150 +if.then.168: ; preds = %while.body.166 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.418, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.153 + br label %if.merge.169 -if.merge.153: ; preds = %if.then.152, %while.body.150 +if.merge.169: ; preds = %if.then.168, %while.body.166 %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.212, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.421, 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.213, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.422, 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 %alloca, align 8 @@ -3122,67 +4690,1436 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.149 + br label %while.hdr.165 -fv.default: ; preds = %if.merge.153 +fv.default: ; preds = %if.merge.169 br label %fv.merge -fv.case: ; preds = %if.merge.153 +fv.case: ; preds = %if.merge.169 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.153 +fv.case17: ; preds = %if.merge.169 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.423, i64 4 }, { ptr, i64 } { ptr @str.424, 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.170 + +while.hdr.170: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.171, label %while.exit.172 + +while.body.171: ; preds = %while.hdr.170 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.173, label %if.merge.174 + +while.exit.172: ; preds = %while.hdr.170 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.425, i64 1 }) + ret { ptr, i64 } %callN + +if.then.173: ; preds = %while.body.171 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.426, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.174 + +if.merge.174: ; preds = %if.then.173, %while.body.171 + %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.428, 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.429, 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.170 + +fv.default: ; preds = %if.merge.174 + br label %fv.merge + +fv.case: ; preds = %if.merge.174 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.430, i64 10 }, { ptr, i64 } { ptr @str.431, 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.175 + +while.hdr.175: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.176, label %while.exit.177 + +while.body.176: ; preds = %while.hdr.175 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.178, label %if.merge.179 + +while.exit.177: ; preds = %while.hdr.175 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.432, i64 1 }) + ret { ptr, i64 } %callN + +if.then.178: ; preds = %while.body.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.433, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.179 + +if.merge.179: ; preds = %if.then.178, %while.body.176 + %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.439, 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.440, 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.175 + +fv.default: ; preds = %if.merge.179 + br label %fv.merge + +fv.case: ; preds = %if.merge.179 + %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.179 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.179 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.179 + %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.179 + %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.441, i64 13 }, { ptr, i64 } { ptr @str.442, 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.180 + +while.hdr.180: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.181, label %while.exit.182 + +while.body.181: ; preds = %while.hdr.180 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.183, label %if.merge.184 + +while.exit.182: ; preds = %while.hdr.180 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.443, i64 1 }) + ret { ptr, i64 } %callN + +if.then.183: ; preds = %while.body.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.444, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.184 + +if.merge.184: ; preds = %if.then.183, %while.body.181 + %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.447, 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.448, 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.180 + +fv.default: ; preds = %if.merge.184 + br label %fv.merge + +fv.case: ; preds = %if.merge.184 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.184 + %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.449, i64 8 }, { ptr, i64 } { ptr @str.450, 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.185 + +while.hdr.185: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.186, label %while.exit.187 + +while.body.186: ; preds = %while.hdr.185 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.188, label %if.merge.189 + +while.exit.187: ; preds = %while.hdr.185 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.451, i64 1 }) + ret { ptr, i64 } %callN + +if.then.188: ; preds = %while.body.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.452, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.189 + +if.merge.189: ; preds = %if.then.188, %while.body.186 + %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.458, 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.459, 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.185 + +fv.default: ; preds = %if.merge.189 + br label %fv.merge + +fv.case: ; preds = %if.merge.189 + %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.189 + %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.189 + %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.189 + %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.189 + %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.460, i64 5 }, { ptr, i64 } { ptr @str.461, 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.190 + +while.hdr.190: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.191, label %while.exit.192 + +while.body.191: ; preds = %while.hdr.190 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.193, label %if.merge.194 + +while.exit.192: ; preds = %while.hdr.190 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.462, i64 1 }) + ret { ptr, i64 } %callN + +if.then.193: ; preds = %while.body.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.463, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.194 + +if.merge.194: ; preds = %if.then.193, %while.body.191 + %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.467, 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.468, 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.190 + +fv.default: ; preds = %if.merge.194 + br label %fv.merge + +fv.case: ; preds = %if.merge.194 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.194 + %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.194 + %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.469, i64 6 }, { ptr, i64 } { ptr @str.470, 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.195 + +while.hdr.195: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.196, label %while.exit.197 + +while.body.196: ; preds = %while.hdr.195 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.198, label %if.merge.199 + +while.exit.197: ; preds = %while.hdr.195 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.471, i64 1 }) + ret { ptr, i64 } %callN + +if.then.198: ; preds = %while.body.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.472, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.199 + +if.merge.199: ; preds = %if.then.198, %while.body.196 + %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.476, 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.477, 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.195 + +fv.default: ; preds = %if.merge.199 + br label %fv.merge + +fv.case: ; preds = %if.merge.199 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.199 + %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.199 + %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.478, i64 6 }, { ptr, i64 } { ptr @str.479, 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.200 + +while.hdr.200: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.201, label %while.exit.202 + +while.body.201: ; preds = %while.hdr.200 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.203, label %if.merge.204 + +while.exit.202: ; preds = %while.hdr.200 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.480, i64 1 }) + ret { ptr, i64 } %callN + +if.then.203: ; preds = %while.body.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.481, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.204 + +if.merge.204: ; preds = %if.then.203, %while.body.201 + %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.484, 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.485, 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.200 + +fv.default: ; preds = %if.merge.204 + br label %fv.merge + +fv.case: ; preds = %if.merge.204 + %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.204 + %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 54, 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.486, i64 4 }, { ptr, i64 } { ptr @str.487, 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.205 + +while.hdr.205: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.206, label %while.exit.207 + +while.body.206: ; preds = %while.hdr.205 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.208, label %if.merge.209 + +while.exit.207: ; preds = %while.hdr.205 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.488, i64 1 }) + ret { ptr, i64 } %callN + +if.then.208: ; preds = %while.body.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.489, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.209 + +if.merge.209: ; preds = %if.then.208, %while.body.206 + %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.493, 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.494, 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.205 + +fv.default: ; preds = %if.merge.209 + br label %fv.merge + +fv.case: ; preds = %if.merge.209 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.209 + %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.209 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.495, i64 6 }, { ptr, i64 } { ptr @str.496, 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.210 + +while.hdr.210: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.211, label %while.exit.212 + +while.body.211: ; preds = %while.hdr.210 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.213, label %if.merge.214 + +while.exit.212: ; preds = %while.hdr.210 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.497, i64 1 }) + ret { ptr, i64 } %callN + +if.then.213: ; preds = %while.body.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.498, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.214 + +if.merge.214: ; preds = %if.then.213, %while.body.211 + %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.502, 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.503, 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.210 + +fv.default: ; preds = %if.merge.214 + br label %fv.merge + +fv.case: ; preds = %if.merge.214 + %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.214 + %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.214 + %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 26, i64 undef }, i64 %ba.p2i23, 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.504, i64 12 }, { ptr, i64 } { ptr @str.505, 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.215 + +while.hdr.215: ; preds = %if.merge.219, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.216, label %while.exit.217 + +while.body.216: ; preds = %while.hdr.215 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.218, label %if.merge.219 + +while.exit.217: ; preds = %while.hdr.215 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.506, i64 1 }) + ret { ptr, i64 } %callN + +if.then.218: ; preds = %while.body.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.507, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.219 + +if.merge.219: ; preds = %if.then.218, %while.body.216 + %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.508, 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.509, 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.215 +} + +; 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.510, i64 8 }, { ptr, i64 } { ptr @str.511, 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.220 + +while.hdr.220: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.221, label %while.exit.222 + +while.body.221: ; preds = %while.hdr.220 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.223, label %if.merge.224 + +while.exit.222: ; preds = %while.hdr.220 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.512, i64 1 }) + ret { ptr, i64 } %callN + +if.then.223: ; preds = %while.body.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.513, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.224 + +if.merge.224: ; preds = %if.then.223, %while.body.221 + %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.517, 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.518, 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.220 + +fv.default: ; preds = %if.merge.224 + br label %fv.merge + +fv.case: ; preds = %if.merge.224 + %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.224 + %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.224 + %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.519, i64 7 }, { ptr, i64 } { ptr @str.520, 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.225 + +while.hdr.225: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.226, label %while.exit.227 + +while.body.226: ; preds = %while.hdr.225 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.228, label %if.merge.229 + +while.exit.227: ; preds = %while.hdr.225 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.521, i64 1 }) + ret { ptr, i64 } %callN + +if.then.228: ; preds = %while.body.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.522, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.229 + +if.merge.229: ; preds = %if.then.228, %while.body.226 + %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.526, 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.527, 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.225 + +fv.default: ; preds = %if.merge.229 + br label %fv.merge + +fv.case: ; preds = %if.merge.229 + %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.229 + %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.229 + %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 77, 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.528, i64 9 }, { ptr, i64 } { ptr @str.529, 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.230 + +while.hdr.230: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.231, label %while.exit.232 + +while.body.231: ; preds = %while.hdr.230 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.233, label %if.merge.234 + +while.exit.232: ; preds = %while.hdr.230 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.530, i64 1 }) + ret { ptr, i64 } %callN + +if.then.233: ; preds = %while.body.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.531, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.234 + +if.merge.234: ; preds = %if.then.233, %while.body.231 + %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.534, 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.535, 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.230 + +fv.default: ; preds = %if.merge.234 + br label %fv.merge + +fv.case: ; preds = %if.merge.234 + %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.234 + %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.536, i64 4 }, { ptr, i64 } { ptr @str.537, 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.235 + +while.hdr.235: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.236, label %while.exit.237 + +while.body.236: ; preds = %while.hdr.235 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.238, label %if.merge.239 + +while.exit.237: ; preds = %while.hdr.235 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.538, i64 1 }) + ret { ptr, i64 } %callN + +if.then.238: ; preds = %while.body.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.539, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.239 + +if.merge.239: ; preds = %if.then.238, %while.body.236 + %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.542, 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.543, 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.235 + +fv.default: ; preds = %if.merge.239 + br label %fv.merge + +fv.case: ; preds = %if.merge.239 + %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.239 + %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.544, i64 6 }, { ptr, i64 } { ptr @str.545, 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.240 + +while.hdr.240: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.241, label %while.exit.242 + +while.body.241: ; preds = %while.hdr.240 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.243, label %if.merge.244 + +while.exit.242: ; preds = %while.hdr.240 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.546, i64 1 }) + ret { ptr, i64 } %callN + +if.then.243: ; preds = %while.body.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.547, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.244 + +if.merge.244: ; preds = %if.then.243, %while.body.241 + %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.555, 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.556, 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.240 + +fv.default: ; preds = %if.merge.244 + br label %fv.merge + +fv.case: ; preds = %if.merge.244 + %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.244 + %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.244 + %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.244 + %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.244 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.244 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.244 + %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 81, 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.557, i64 6 }, { ptr, i64 } { ptr @str.558, 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.245 + +while.hdr.245: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.246, label %while.exit.247 + +while.body.246: ; preds = %while.hdr.245 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.248, label %if.merge.249 + +while.exit.247: ; preds = %while.hdr.245 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.559, i64 1 }) + ret { ptr, i64 } %callN + +if.then.248: ; preds = %while.body.246 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.560, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.249 + +if.merge.249: ; preds = %if.then.248, %while.body.246 + %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.565, 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.566, 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.245 + +fv.default: ; preds = %if.merge.249 + br label %fv.merge + +fv.case: ; preds = %if.merge.249 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.249 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.249 + %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.249 + %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__Greeter(ptr %0, { ptr, ptr } %1) #0 { entry: %alloca = alloca { ptr, ptr }, align 8 store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.214, i64 7 }, { ptr, i64 } { ptr @str.215, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.567, i64 7 }, { ptr, i64 } { ptr @str.568, 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.154 + br label %while.hdr.250 -while.hdr.154: ; preds = %fv.merge, %entry +while.hdr.250: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.155, label %while.exit.156 + br i1 %icmp, label %while.body.251, label %while.exit.252 -while.body.155: ; preds = %while.hdr.154 +while.body.251: ; preds = %while.hdr.250 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.157, label %if.merge.158 + br i1 %icmpN, label %if.then.253, label %if.merge.254 -while.exit.156: ; preds = %while.hdr.154 +while.exit.252: ; preds = %while.hdr.250 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.216, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.569, i64 1 }) ret { ptr, i64 } %callN -if.then.157: ; preds = %while.body.155 +if.then.253: ; preds = %while.body.251 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.217, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.570, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.158 + br label %if.merge.254 -if.merge.158: ; preds = %if.then.157, %while.body.155 +if.merge.254: ; preds = %if.then.253, %while.body.251 %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.220, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.573, 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.221, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.574, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, ptr }, ptr %alloca, align 8 @@ -3200,18 +6137,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.154 + br label %while.hdr.250 -fv.default: ; preds = %if.merge.158 +fv.default: ; preds = %if.merge.254 br label %fv.merge -fv.case: ; preds = %if.merge.158 +fv.case: ; preds = %if.merge.254 %fv.field = extractvalue { ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.158 +fv.case17: ; preds = %if.merge.254 %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 @@ -3223,43 +6160,43 @@ define internal { ptr, i64 } @struct_to_string____Greeter__Vtable(ptr %0, { ptr entry: %alloca = alloca { ptr }, align 8 store { ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.222, i64 17 }, { ptr, i64 } { ptr @str.223, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.575, i64 17 }, { ptr, i64 } { ptr @str.576, 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.159 + br label %while.hdr.255 -while.hdr.159: ; preds = %fv.merge, %entry +while.hdr.255: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.160, label %while.exit.161 + br i1 %icmp, label %while.body.256, label %while.exit.257 -while.body.160: ; preds = %while.hdr.159 +while.body.256: ; preds = %while.hdr.255 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.162, label %if.merge.163 + br i1 %icmpN, label %if.then.258, label %if.merge.259 -while.exit.161: ; preds = %while.hdr.159 +while.exit.257: ; preds = %while.hdr.255 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.224, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.577, i64 1 }) ret { ptr, i64 } %callN -if.then.162: ; preds = %while.body.160 +if.then.258: ; preds = %while.body.256 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.225, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.578, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.163 + br label %if.merge.259 -if.merge.163: ; preds = %if.then.162, %while.body.160 +if.merge.259: ; preds = %if.then.258, %while.body.256 %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.227, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.580, 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.228, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.581, 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 @@ -3276,12 +6213,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.159 + br label %while.hdr.255 -fv.default: ; preds = %if.merge.163 +fv.default: ; preds = %if.merge.259 br label %fv.merge -fv.case: ; preds = %if.merge.163 +fv.case: ; preds = %if.merge.259 %fv.field = extractvalue { ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 @@ -3293,43 +6230,43 @@ define internal { ptr, i64 } @struct_to_string__Dog(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.229, i64 3 }, { ptr, i64 } { ptr @str.230, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.582, i64 3 }, { ptr, i64 } { ptr @str.583, 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.164 + br label %while.hdr.260 -while.hdr.164: ; preds = %fv.merge, %entry +while.hdr.260: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.165, label %while.exit.166 + br i1 %icmp, label %while.body.261, label %while.exit.262 -while.body.165: ; preds = %while.hdr.164 +while.body.261: ; preds = %while.hdr.260 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.167, label %if.merge.168 + br i1 %icmpN, label %if.then.263, label %if.merge.264 -while.exit.166: ; preds = %while.hdr.164 +while.exit.262: ; preds = %while.hdr.260 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.231, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.584, i64 1 }) ret { ptr, i64 } %callN -if.then.167: ; preds = %while.body.165 +if.then.263: ; preds = %while.body.261 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.232, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.585, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.168 + br label %if.merge.264 -if.merge.168: ; preds = %if.then.167, %while.body.165 +if.merge.264: ; preds = %if.then.263, %while.body.261 %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.234, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.587, 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.235, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.588, 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 @@ -3346,12 +6283,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.164 + br label %while.hdr.260 -fv.default: ; preds = %if.merge.168 +fv.default: ; preds = %if.merge.264 br label %fv.merge -fv.case: ; preds = %if.merge.168 +fv.case: ; preds = %if.merge.264 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -3362,43 +6299,43 @@ define internal { ptr, i64 } @struct_to_string__Cat(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.236, i64 3 }, { ptr, i64 } { ptr @str.237, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.589, i64 3 }, { ptr, i64 } { ptr @str.590, 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.169 + br label %while.hdr.265 -while.hdr.169: ; preds = %fv.merge, %entry +while.hdr.265: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.170, label %while.exit.171 + br i1 %icmp, label %while.body.266, label %while.exit.267 -while.body.170: ; preds = %while.hdr.169 +while.body.266: ; preds = %while.hdr.265 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.172, label %if.merge.173 + br i1 %icmpN, label %if.then.268, label %if.merge.269 -while.exit.171: ; preds = %while.hdr.169 +while.exit.267: ; preds = %while.hdr.265 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.238, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.591, i64 1 }) ret { ptr, i64 } %callN -if.then.172: ; preds = %while.body.170 +if.then.268: ; preds = %while.body.266 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.239, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.592, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.173 + br label %if.merge.269 -if.merge.173: ; preds = %if.then.172, %while.body.170 +if.merge.269: ; preds = %if.then.268, %while.body.266 %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.241, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.594, 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.242, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.595, 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 @@ -3415,17 +6352,290 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.169 + br label %while.hdr.265 -fv.default: ; preds = %if.merge.173 +fv.default: ; preds = %if.merge.269 br label %fv.merge -fv.case: ; preds = %if.merge.173 +fv.case: ; preds = %if.merge.269 %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 } @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.601, 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.596, 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.277, label %if.merge.278 + +if.then.277: ; 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.603, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.602, 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.278 + +if.merge.278: ; preds = %if.then.277, %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.608, 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.604, 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.279, label %if.merge.280 + +if.then.279: ; 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.610, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.609, 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.280 + +if.merge.280: ; preds = %if.then.279, %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.618, 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.611, 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.281: ; 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.620, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.619, 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.282 + +if.merge.282: ; preds = %if.then.281, %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.281, label %if.merge.282 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.629, 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.621, 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.283, label %if.merge.284 + +if.then.283: ; 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.631, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.630, 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.284 + +if.merge.284: ; preds = %if.then.283, %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.638, 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.632, 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.285, label %if.merge.286 + +if.then.285: ; 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.640, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.639, 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.286 + +if.merge.286: ; preds = %if.then.285, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -3433,33 +6643,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.243, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.641, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.296 -while.hdr.179: ; preds = %if.merge.183, %entry +while.hdr.296: ; preds = %if.merge.300, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.180, label %while.exit.181 + br i1 %icmp, label %while.body.297, label %while.exit.298 -while.body.180: ; preds = %while.hdr.179 +while.body.297: ; preds = %while.hdr.296 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.182, label %if.merge.183 + br i1 %icmpN, label %if.then.299, label %if.merge.300 -while.exit.181: ; preds = %while.hdr.179 +while.exit.298: ; preds = %while.hdr.296 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.244, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.642, i64 1 }) ret { ptr, i64 } %call -if.then.182: ; preds = %while.body.180 +if.then.299: ; preds = %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.245, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.643, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.183 + br label %if.merge.300 -if.merge.183: ; preds = %if.then.182, %while.body.180 +if.merge.300: ; preds = %if.then.299, %while.body.297 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3473,7 +6683,211 @@ if.merge.183: ; preds = %if.then.182, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.296 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.644, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.301 + +while.hdr.301: ; preds = %if.merge.305, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.302, label %while.exit.303 + +while.body.302: ; preds = %while.hdr.301 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.304, label %if.merge.305 + +while.exit.303: ; preds = %while.hdr.301 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.645, i64 1 }) + ret { ptr, i64 } %call + +if.then.304: ; preds = %while.body.302 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.646, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.305 + +if.merge.305: ; preds = %if.then.304, %while.body.302 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.301 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.647, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.306 + +while.hdr.306: ; preds = %if.merge.310, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.307, label %while.exit.308 + +while.body.307: ; preds = %while.hdr.306 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.309, label %if.merge.310 + +while.exit.308: ; preds = %while.hdr.306 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.648, i64 1 }) + ret { ptr, i64 } %call + +if.then.309: ; preds = %while.body.307 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.649, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.310 + +if.merge.310: ; preds = %if.then.309, %while.body.307 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.306 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.650, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.311 + +while.hdr.311: ; preds = %if.merge.315, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.312, label %while.exit.313 + +while.body.312: ; preds = %while.hdr.311 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.314, label %if.merge.315 + +while.exit.313: ; preds = %while.hdr.311 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.651, i64 1 }) + ret { ptr, i64 } %call + +if.then.314: ; preds = %while.body.312 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.652, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.315 + +if.merge.315: ; preds = %if.then.314, %while.body.312 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.311 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.653, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.316 + +while.hdr.316: ; preds = %if.merge.320, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.317, label %while.exit.318 + +while.body.317: ; preds = %while.hdr.316 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.319, label %if.merge.320 + +while.exit.318: ; preds = %while.hdr.316 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.654, i64 1 }) + ret { ptr, i64 } %call + +if.then.319: ; preds = %while.body.317 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.655, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.320 + +if.merge.320: ; preds = %if.then.319, %while.body.317 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.316 } ; Function Attrs: nounwind @@ -3484,33 +6898,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [2 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.246, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.656, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.184 + br label %while.hdr.321 -while.hdr.184: ; preds = %if.merge.188, %entry +while.hdr.321: ; preds = %if.merge.325, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.185, label %while.exit.186 + br i1 %icmp, label %while.body.322, label %while.exit.323 -while.body.185: ; preds = %while.hdr.184 +while.body.322: ; preds = %while.hdr.321 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.187, label %if.merge.188 + br i1 %icmpN, label %if.then.324, label %if.merge.325 -while.exit.186: ; preds = %while.hdr.184 +while.exit.323: ; preds = %while.hdr.321 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.247, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.657, i64 1 }) ret { ptr, i64 } %call -if.then.187: ; preds = %while.body.185 +if.then.324: ; preds = %while.body.322 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.248, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.658, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.188 + br label %if.merge.325 -if.merge.188: ; preds = %if.then.187, %while.body.185 +if.merge.325: ; preds = %if.then.324, %while.body.322 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [2 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3526,7 +6940,7 @@ if.merge.188: ; preds = %if.then.187, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.184 + br label %while.hdr.321 } ; Function Attrs: nounwind @@ -3537,33 +6951,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.249, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.659, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.189 + br label %while.hdr.326 -while.hdr.189: ; preds = %if.merge.193, %entry +while.hdr.326: ; preds = %if.merge.330, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.190, label %while.exit.191 + br i1 %icmp, label %while.body.327, label %while.exit.328 -while.body.190: ; preds = %while.hdr.189 +while.body.327: ; preds = %while.hdr.326 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.192, label %if.merge.193 + br i1 %icmpN, label %if.then.329, label %if.merge.330 -while.exit.191: ; preds = %while.hdr.189 +while.exit.328: ; preds = %while.hdr.326 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.250, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.660, i64 1 }) ret { ptr, i64 } %call -if.then.192: ; preds = %while.body.190 +if.then.329: ; preds = %while.body.327 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.251, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.661, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.193 + br label %if.merge.330 -if.merge.193: ; preds = %if.then.192, %while.body.190 +if.merge.330: ; preds = %if.then.329, %while.body.327 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3579,7 +6993,7 @@ if.merge.193: ; preds = %if.then.192, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.189 + br label %while.hdr.326 } ; Function Attrs: nounwind @@ -3589,35 +7003,35 @@ entry: %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.252, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.662, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.199 + br label %while.hdr.339 -while.hdr.199: ; preds = %if.merge.203, %entry +while.hdr.339: ; preds = %if.merge.343, %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.200, label %while.exit.201 + br i1 %icmp, label %while.body.340, label %while.exit.341 -while.body.200: ; preds = %while.hdr.199 +while.body.340: ; preds = %while.hdr.339 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.202, label %if.merge.203 + br i1 %icmpN, label %if.then.342, label %if.merge.343 -while.exit.201: ; preds = %while.hdr.199 +while.exit.341: ; preds = %while.hdr.339 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.253, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.663, i64 1 }) ret { ptr, i64 } %call -if.then.202: ; preds = %while.body.200 +if.then.342: ; preds = %while.body.340 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.254, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.664, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.203 + br label %if.merge.343 -if.merge.203: ; preds = %if.then.202, %while.body.200 +if.merge.343: ; preds = %if.then.342, %while.body.340 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3633,7 +7047,167 @@ if.merge.203: ; preds = %if.then.202, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.199 + br label %while.hdr.339 +} + +; 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.665, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.344 + +while.hdr.344: ; preds = %if.merge.348, %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.345, label %while.exit.346 + +while.body.345: ; preds = %while.hdr.344 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.347, label %if.merge.348 + +while.exit.346: ; preds = %while.hdr.344 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.666, i64 1 }) + ret { ptr, i64 } %call + +if.then.347: ; preds = %while.body.345 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.667, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.348 + +if.merge.348: ; preds = %if.then.347, %while.body.345 + %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.344 +} + +; 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.668, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.349 + +while.hdr.349: ; preds = %if.merge.353, %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.350, label %while.exit.351 + +while.body.350: ; preds = %while.hdr.349 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.352, label %if.merge.353 + +while.exit.351: ; preds = %while.hdr.349 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.669, i64 1 }) + ret { ptr, i64 } %call + +if.then.352: ; preds = %while.body.350 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.670, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.353 + +if.merge.353: ; preds = %if.then.352, %while.body.350 + %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 76, 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.349 +} + +; 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.671, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.354 + +while.hdr.354: ; preds = %if.merge.358, %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.355, label %while.exit.356 + +while.body.355: ; preds = %while.hdr.354 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.357, label %if.merge.358 + +while.exit.356: ; preds = %while.hdr.354 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.672, i64 1 }) + ret { ptr, i64 } %call + +if.then.357: ; preds = %while.body.355 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.673, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.358 + +if.merge.358: ; preds = %if.then.357, %while.body.355 + %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 78, 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.354 } ; Function Attrs: nounwind @@ -3643,35 +7217,35 @@ entry: %ba.tmp = alloca { ptr, ptr }, align 8 store { ptr, i64 } %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.255, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.674, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.204 + br label %while.hdr.359 -while.hdr.204: ; preds = %if.merge.208, %entry +while.hdr.359: ; preds = %if.merge.363, %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.205, label %while.exit.206 + br i1 %icmp, label %while.body.360, label %while.exit.361 -while.body.205: ; preds = %while.hdr.204 +while.body.360: ; preds = %while.hdr.359 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.207, label %if.merge.208 + br i1 %icmpN, label %if.then.362, label %if.merge.363 -while.exit.206: ; preds = %while.hdr.204 +while.exit.361: ; preds = %while.hdr.359 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.256, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.675, i64 1 }) ret { ptr, i64 } %call -if.then.207: ; preds = %while.body.205 +if.then.362: ; preds = %while.body.360 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.257, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.676, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.208 + br label %if.merge.363 -if.merge.208: ; preds = %if.then.207, %while.body.205 +if.merge.363: ; preds = %if.then.362, %while.body.360 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3680,14 +7254,14 @@ if.merge.208: ; preds = %if.then.207, %while %ig.val = load { ptr, ptr }, ptr %ig.ptr, align 8 store { ptr, ptr } %ig.val, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 93, 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.204 + br label %while.hdr.359 } ; Function Attrs: nounwind @@ -3697,35 +7271,35 @@ entry: %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.258, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.677, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.364 -while.hdr.209: ; preds = %if.merge.213, %entry +while.hdr.364: ; preds = %if.merge.368, %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.210, label %while.exit.211 + br i1 %icmp, label %while.body.365, label %while.exit.366 -while.body.210: ; preds = %while.hdr.209 +while.body.365: ; preds = %while.hdr.364 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.212, label %if.merge.213 + br i1 %icmpN, label %if.then.367, label %if.merge.368 -while.exit.211: ; preds = %while.hdr.209 +while.exit.366: ; preds = %while.hdr.364 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.259, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.678, i64 1 }) ret { ptr, i64 } %call -if.then.212: ; preds = %while.body.210 +if.then.367: ; preds = %while.body.365 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.260, i64 2 }) + %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 - br label %if.merge.213 + br label %if.merge.368 -if.merge.213: ; preds = %if.then.212, %while.body.210 +if.merge.368: ; preds = %if.then.367, %while.body.365 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3741,7 +7315,7 @@ if.merge.213: ; preds = %if.then.212, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.364 } ; Function Attrs: nounwind @@ -3755,20 +7329,20 @@ entry: 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.238, label %if.else.239 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.238: ; preds = %entry - br label %if.merge.240 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.239: ; preds = %entry +if.else.407: ; 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.263, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.262, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.240 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.682, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.681, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.240: ; preds = %if.else.239, %if.then.238 - %bp = phi { ptr, i64 } [ { ptr @str.261, i64 4 }, %if.then.238 ], [ %callN, %if.else.239 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.680, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] ret { ptr, i64 } %bp } @@ -3783,20 +7357,20 @@ entry: 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.254, label %if.else.255 + br i1 %icmp, label %if.then.422, label %if.else.423 -if.then.254: ; preds = %entry - br label %if.merge.256 +if.then.422: ; preds = %entry + br label %if.merge.424 -if.else.255: ; preds = %entry +if.else.423: ; 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.266, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.265, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.256 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.685, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.684, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.424 -if.merge.256: ; preds = %if.else.255, %if.then.254 - %bp = phi { ptr, i64 } [ { ptr @str.264, i64 4 }, %if.then.254 ], [ %callN, %if.else.255 ] +if.merge.424: ; preds = %if.else.423, %if.then.422 + %bp = phi { ptr, i64 } [ { ptr @str.683, i64 4 }, %if.then.422 ], [ %callN, %if.else.423 ] ret { ptr, i64 } %bp } @@ -3811,20 +7385,20 @@ entry: 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.257, label %if.else.258 + br i1 %icmp, label %if.then.425, label %if.else.426 -if.then.257: ; preds = %entry - br label %if.merge.259 +if.then.425: ; preds = %entry + br label %if.merge.427 -if.else.258: ; preds = %entry +if.else.426: ; 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.269, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.268, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.259 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.688, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.687, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.427 -if.merge.259: ; preds = %if.else.258, %if.then.257 - %bp = phi { ptr, i64 } [ { ptr @str.267, i64 4 }, %if.then.257 ], [ %callN, %if.else.258 ] +if.merge.427: ; preds = %if.else.426, %if.then.425 + %bp = phi { ptr, i64 } [ { ptr @str.686, i64 4 }, %if.then.425 ], [ %callN, %if.else.426 ] ret { ptr, i64 } %bp } @@ -3839,20 +7413,20 @@ entry: 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.260, label %if.else.261 + br i1 %icmp, label %if.then.428, label %if.else.429 -if.then.260: ; preds = %entry - br label %if.merge.262 +if.then.428: ; preds = %entry + br label %if.merge.430 -if.else.261: ; preds = %entry +if.else.429: ; 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.272, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.271, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.262 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.691, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.690, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.430 -if.merge.262: ; preds = %if.else.261, %if.then.260 - %bp = phi { ptr, i64 } [ { ptr @str.270, i64 4 }, %if.then.260 ], [ %callN, %if.else.261 ] +if.merge.430: ; preds = %if.else.429, %if.then.428 + %bp = phi { ptr, i64 } [ { ptr @str.689, i64 4 }, %if.then.428 ], [ %callN, %if.else.429 ] ret { ptr, i64 } %bp } @@ -3867,20 +7441,20 @@ entry: 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.263, label %if.else.264 + br i1 %icmp, label %if.then.431, label %if.else.432 -if.then.263: ; preds = %entry - br label %if.merge.265 +if.then.431: ; preds = %entry + br label %if.merge.433 -if.else.264: ; preds = %entry +if.else.432: ; 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.275, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.274, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.265 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.694, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.693, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.433 -if.merge.265: ; preds = %if.else.264, %if.then.263 - %bp = phi { ptr, i64 } [ { ptr @str.273, i64 4 }, %if.then.263 ], [ %callN, %if.else.264 ] +if.merge.433: ; preds = %if.else.432, %if.then.431 + %bp = phi { ptr, i64 } [ { ptr @str.692, i64 4 }, %if.then.431 ], [ %callN, %if.else.432 ] ret { ptr, i64 } %bp } @@ -3894,20 +7468,20 @@ entry: 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.266, label %if.else.267 + br i1 %icmp, label %if.then.434, label %if.else.435 -if.then.266: ; preds = %entry - br label %if.merge.268 +if.then.434: ; preds = %entry + br label %if.merge.436 -if.else.267: ; preds = %entry +if.else.435: ; 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.278, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.277, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.268 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.697, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.696, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.436 -if.merge.268: ; preds = %if.else.267, %if.then.266 - %bp = phi { ptr, i64 } [ { ptr @str.276, i64 4 }, %if.then.266 ], [ %callN, %if.else.267 ] +if.merge.436: ; preds = %if.else.435, %if.then.434 + %bp = phi { ptr, i64 } [ { ptr @str.695, i64 4 }, %if.then.434 ], [ %callN, %if.else.435 ] ret { ptr, i64 } %bp } @@ -3922,20 +7496,20 @@ entry: 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.269, label %if.else.270 + br i1 %icmp, label %if.then.437, label %if.else.438 -if.then.269: ; preds = %entry - br label %if.merge.271 +if.then.437: ; preds = %entry + br label %if.merge.439 -if.else.270: ; preds = %entry +if.else.438: ; 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.281, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.280, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.271 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.700, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.699, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.439 -if.merge.271: ; preds = %if.else.270, %if.then.269 - %bp = phi { ptr, i64 } [ { ptr @str.279, i64 4 }, %if.then.269 ], [ %callN, %if.else.270 ] +if.merge.439: ; preds = %if.else.438, %if.then.437 + %bp = phi { ptr, i64 } [ { ptr @str.698, i64 4 }, %if.then.437 ], [ %callN, %if.else.438 ] ret { ptr, i64 } %bp } @@ -3950,25 +7524,25 @@ entry: 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.272, label %if.else.273 + br i1 %icmp, label %if.then.440, label %if.else.441 -if.then.272: ; preds = %entry - br label %if.merge.274 +if.then.440: ; preds = %entry + br label %if.merge.442 -if.else.273: ; preds = %entry +if.else.441: ; 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.284, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.283, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.274 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.702, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.442 -if.merge.274: ; preds = %if.else.273, %if.then.272 - %bp = phi { ptr, i64 } [ { ptr @str.282, i64 4 }, %if.then.272 ], [ %callN, %if.else.273 ] +if.merge.442: ; preds = %if.else.441, %if.then.440 + %bp = phi { ptr, i64 } [ { ptr @str.701, i64 4 }, %if.then.440 ], [ %callN, %if.else.441 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Dog(ptr %0, ptr %1) #0 { +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 @@ -3978,328 +7552,20 @@ entry: 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.275, label %if.else.276 + br i1 %icmp, label %if.then.443, label %if.else.444 -if.then.275: ; preds = %entry - br label %if.merge.277 +if.then.443: ; preds = %entry + br label %if.merge.445 -if.else.276: ; preds = %entry +if.else.444: ; 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.287, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.286, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.277 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.706, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.705, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.445 -if.merge.277: ; preds = %if.else.276, %if.then.275 - %bp = phi { ptr, i64 } [ { ptr @str.285, i64 4 }, %if.then.275 ], [ %callN, %if.else.276 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Cat(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.278, label %if.else.279 - -if.then.278: ; preds = %entry - br label %if.merge.280 - -if.else.279: ; 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.290, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.289, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.280 - -if.merge.280: ; preds = %if.else.279, %if.then.278 - %bp = phi { ptr, i64 } [ { ptr @str.288, i64 4 }, %if.then.278 ], [ %callN, %if.else.279 ] - 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.281, label %if.else.282 - -if.then.281: ; preds = %entry - br label %if.merge.283 - -if.else.282: ; 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.293, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.292, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.283 - -if.merge.283: ; preds = %if.else.282, %if.then.281 - %bp = phi { ptr, i64 } [ { ptr @str.291, i64 4 }, %if.then.281 ], [ %callN, %if.else.282 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.284, label %if.else.285 - -if.then.284: ; preds = %entry - br label %if.merge.286 - -if.else.285: ; 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.296, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.295, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.286 - -if.merge.286: ; preds = %if.else.285, %if.then.284 - %bp = phi { ptr, i64 } [ { ptr @str.294, i64 4 }, %if.then.284 ], [ %callN, %if.else.285 ] - 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.287, label %if.else.288 - -if.then.287: ; preds = %entry - br label %if.merge.289 - -if.else.288: ; 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.299, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.298, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.289 - -if.merge.289: ; preds = %if.else.288, %if.then.287 - %bp = phi { ptr, i64 } [ { ptr @str.297, i64 4 }, %if.then.287 ], [ %callN, %if.else.288 ] - 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.290, label %if.else.291 - -if.then.290: ; preds = %entry - br label %if.merge.292 - -if.else.291: ; 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.302, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.301, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.292 - -if.merge.292: ; preds = %if.else.291, %if.then.290 - %bp = phi { ptr, i64 } [ { ptr @str.300, i64 4 }, %if.then.290 ], [ %callN, %if.else.291 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_AR_2_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.293, label %if.else.294 - -if.then.293: ; preds = %entry - br label %if.merge.295 - -if.else.294: ; 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.305, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.304, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.295 - -if.merge.295: ; preds = %if.else.294, %if.then.293 - %bp = phi { ptr, i64 } [ { ptr @str.303, i64 4 }, %if.then.293 ], [ %callN, %if.else.294 ] - 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.296, label %if.else.297 - -if.then.296: ; preds = %entry - br label %if.merge.298 - -if.else.297: ; 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.308, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.307, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.298 - -if.merge.298: ; preds = %if.else.297, %if.then.296 - %bp = phi { ptr, i64 } [ { ptr @str.306, i64 4 }, %if.then.296 ], [ %callN, %if.else.297 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Dog(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.299, label %if.else.300 - -if.then.299: ; preds = %entry - br label %if.merge.301 - -if.else.300: ; 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.311, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.310, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.301 - -if.merge.301: ; preds = %if.else.300, %if.then.299 - %bp = phi { ptr, i64 } [ { ptr @str.309, i64 4 }, %if.then.299 ], [ %callN, %if.else.300 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Cat(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.302, label %if.else.303 - -if.then.302: ; preds = %entry - br label %if.merge.304 - -if.else.303: ; 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.314, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.313, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.304 - -if.merge.304: ; preds = %if.else.303, %if.then.302 - %bp = phi { ptr, i64 } [ { ptr @str.312, i64 4 }, %if.then.302 ], [ %callN, %if.else.303 ] - 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.305, label %if.else.306 - -if.then.305: ; preds = %entry - br label %if.merge.307 - -if.else.306: ; 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.317, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.316, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.307 - -if.merge.307: ; preds = %if.else.306, %if.then.305 - %bp = phi { ptr, i64 } [ { ptr @str.315, i64 4 }, %if.then.305 ], [ %callN, %if.else.306 ] - 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.308, label %if.else.309 - -if.then.308: ; preds = %entry - br label %if.merge.310 - -if.else.309: ; 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.320, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.319, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.310 - -if.merge.310: ; preds = %if.else.309, %if.then.308 - %bp = phi { ptr, i64 } [ { ptr @str.318, i64 4 }, %if.then.308 ], [ %callN, %if.else.309 ] +if.merge.445: ; preds = %if.else.444, %if.then.443 + %bp = phi { ptr, i64 } [ { ptr @str.704, i64 4 }, %if.then.443 ], [ %callN, %if.else.444 ] ret { ptr, i64 } %bp } @@ -4314,20 +7580,690 @@ entry: 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.311, label %if.else.312 + br i1 %icmp, label %if.then.446, label %if.else.447 -if.then.311: ; preds = %entry - br label %if.merge.313 +if.then.446: ; preds = %entry + br label %if.merge.448 -if.else.312: ; preds = %entry +if.else.447: ; 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.323, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.322, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.313 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.709, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.708, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.448 -if.merge.313: ; preds = %if.else.312, %if.then.311 - %bp = phi { ptr, i64 } [ { ptr @str.321, i64 4 }, %if.then.311 ], [ %callN, %if.else.312 ] +if.merge.448: ; preds = %if.else.447, %if.then.446 + %bp = phi { ptr, i64 } [ { ptr @str.707, i64 4 }, %if.then.446 ], [ %callN, %if.else.447 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.449, label %if.else.450 + +if.then.449: ; preds = %entry + br label %if.merge.451 + +if.else.450: ; 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.712, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.711, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.451 + +if.merge.451: ; preds = %if.else.450, %if.then.449 + %bp = phi { ptr, i64 } [ { ptr @str.710, i64 4 }, %if.then.449 ], [ %callN, %if.else.450 ] + 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.452, label %if.else.453 + +if.then.452: ; preds = %entry + br label %if.merge.454 + +if.else.453: ; 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.715, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.714, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.454 + +if.merge.454: ; preds = %if.else.453, %if.then.452 + %bp = phi { ptr, i64 } [ { ptr @str.713, i64 4 }, %if.then.452 ], [ %callN, %if.else.453 ] + 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.455, label %if.else.456 + +if.then.455: ; preds = %entry + br label %if.merge.457 + +if.else.456: ; 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.718, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.717, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.457 + +if.merge.457: ; preds = %if.else.456, %if.then.455 + %bp = phi { ptr, i64 } [ { ptr @str.716, i64 4 }, %if.then.455 ], [ %callN, %if.else.456 ] + 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.458, label %if.else.459 + +if.then.458: ; preds = %entry + br label %if.merge.460 + +if.else.459: ; 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.721, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.720, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.460 + +if.merge.460: ; preds = %if.else.459, %if.then.458 + %bp = phi { ptr, i64 } [ { ptr @str.719, i64 4 }, %if.then.458 ], [ %callN, %if.else.459 ] + 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.461, label %if.else.462 + +if.then.461: ; preds = %entry + br label %if.merge.463 + +if.else.462: ; 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.724, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.723, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.463 + +if.merge.463: ; preds = %if.else.462, %if.then.461 + %bp = phi { ptr, i64 } [ { ptr @str.722, i64 4 }, %if.then.461 ], [ %callN, %if.else.462 ] + 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.464, label %if.else.465 + +if.then.464: ; preds = %entry + br label %if.merge.466 + +if.else.465: ; 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.727, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.726, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.466 + +if.merge.466: ; preds = %if.else.465, %if.then.464 + %bp = phi { ptr, i64 } [ { ptr @str.725, i64 4 }, %if.then.464 ], [ %callN, %if.else.465 ] + 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.467, label %if.else.468 + +if.then.467: ; preds = %entry + br label %if.merge.469 + +if.else.468: ; 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.730, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.729, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.469 + +if.merge.469: ; preds = %if.else.468, %if.then.467 + %bp = phi { ptr, i64 } [ { ptr @str.728, i64 4 }, %if.then.467 ], [ %callN, %if.else.468 ] + 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.470, label %if.else.471 + +if.then.470: ; preds = %entry + br label %if.merge.472 + +if.else.471: ; 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.733, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.732, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.472 + +if.merge.472: ; preds = %if.else.471, %if.then.470 + %bp = phi { ptr, i64 } [ { ptr @str.731, i64 4 }, %if.then.470 ], [ %callN, %if.else.471 ] + 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.473, label %if.else.474 + +if.then.473: ; preds = %entry + br label %if.merge.475 + +if.else.474: ; 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.736, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.735, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.475 + +if.merge.475: ; preds = %if.else.474, %if.then.473 + %bp = phi { ptr, i64 } [ { ptr @str.734, i64 4 }, %if.then.473 ], [ %callN, %if.else.474 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.476, label %if.else.477 + +if.then.476: ; preds = %entry + br label %if.merge.478 + +if.else.477: ; 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.739, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.738, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.478 + +if.merge.478: ; preds = %if.else.477, %if.then.476 + %bp = phi { ptr, i64 } [ { ptr @str.737, i64 4 }, %if.then.476 ], [ %callN, %if.else.477 ] + 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.479, label %if.else.480 + +if.then.479: ; preds = %entry + br label %if.merge.481 + +if.else.480: ; 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.742, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.741, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.481 + +if.merge.481: ; preds = %if.else.480, %if.then.479 + %bp = phi { ptr, i64 } [ { ptr @str.740, i64 4 }, %if.then.479 ], [ %callN, %if.else.480 ] + 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.482, label %if.else.483 + +if.then.482: ; preds = %entry + br label %if.merge.484 + +if.else.483: ; 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.745, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.744, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.484 + +if.merge.484: ; preds = %if.else.483, %if.then.482 + %bp = phi { ptr, i64 } [ { ptr @str.743, i64 4 }, %if.then.482 ], [ %callN, %if.else.483 ] + 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.485, label %if.else.486 + +if.then.485: ; preds = %entry + br label %if.merge.487 + +if.else.486: ; 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.748, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.747, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.487 + +if.merge.487: ; preds = %if.else.486, %if.then.485 + %bp = phi { ptr, i64 } [ { ptr @str.746, i64 4 }, %if.then.485 ], [ %callN, %if.else.486 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Dog(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.488, label %if.else.489 + +if.then.488: ; preds = %entry + br label %if.merge.490 + +if.else.489: ; 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.751, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.750, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.490 + +if.merge.490: ; preds = %if.else.489, %if.then.488 + %bp = phi { ptr, i64 } [ { ptr @str.749, i64 4 }, %if.then.488 ], [ %callN, %if.else.489 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Cat(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.491, label %if.else.492 + +if.then.491: ; preds = %entry + br label %if.merge.493 + +if.else.492: ; 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.754, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.753, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.493 + +if.merge.493: ; preds = %if.else.492, %if.then.491 + %bp = phi { ptr, i64 } [ { ptr @str.752, i64 4 }, %if.then.491 ], [ %callN, %if.else.492 ] + 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.494, label %if.else.495 + +if.then.494: ; preds = %entry + br label %if.merge.496 + +if.else.495: ; 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.757, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.756, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.496 + +if.merge.496: ; preds = %if.else.495, %if.then.494 + %bp = phi { ptr, i64 } [ { ptr @str.755, i64 4 }, %if.then.494 ], [ %callN, %if.else.495 ] + 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.497, label %if.else.498 + +if.then.497: ; preds = %entry + br label %if.merge.499 + +if.else.498: ; 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.760, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.759, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.499 + +if.merge.499: ; preds = %if.else.498, %if.then.497 + %bp = phi { ptr, i64 } [ { ptr @str.758, i64 4 }, %if.then.497 ], [ %callN, %if.else.498 ] + 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.500, label %if.else.501 + +if.then.500: ; preds = %entry + br label %if.merge.502 + +if.else.501: ; 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.763, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.762, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.502 + +if.merge.502: ; preds = %if.else.501, %if.then.500 + %bp = phi { ptr, i64 } [ { ptr @str.761, i64 4 }, %if.then.500 ], [ %callN, %if.else.501 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_AR_2_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.503, label %if.else.504 + +if.then.503: ; preds = %entry + br label %if.merge.505 + +if.else.504: ; 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.766, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.765, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.505 + +if.merge.505: ; preds = %if.else.504, %if.then.503 + %bp = phi { ptr, i64 } [ { ptr @str.764, i64 4 }, %if.then.503 ], [ %callN, %if.else.504 ] + 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.506, label %if.else.507 + +if.then.506: ; preds = %entry + br label %if.merge.508 + +if.else.507: ; 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.769, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.768, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.508 + +if.merge.508: ; preds = %if.else.507, %if.then.506 + %bp = phi { ptr, i64 } [ { ptr @str.767, i64 4 }, %if.then.506 ], [ %callN, %if.else.507 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Dog(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.509, label %if.else.510 + +if.then.509: ; preds = %entry + br label %if.merge.511 + +if.else.510: ; 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.772, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.771, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.511 + +if.merge.511: ; preds = %if.else.510, %if.then.509 + %bp = phi { ptr, i64 } [ { ptr @str.770, i64 4 }, %if.then.509 ], [ %callN, %if.else.510 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_Cat(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.512, label %if.else.513 + +if.then.512: ; preds = %entry + br label %if.merge.514 + +if.else.513: ; 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.775, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.774, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.514 + +if.merge.514: ; preds = %if.else.513, %if.then.512 + %bp = phi { ptr, i64 } [ { ptr @str.773, i64 4 }, %if.then.512 ], [ %callN, %if.else.513 ] + 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.515, label %if.else.516 + +if.then.515: ; preds = %entry + br label %if.merge.517 + +if.else.516: ; 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.778, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.777, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.517 + +if.merge.517: ; preds = %if.else.516, %if.then.515 + %bp = phi { ptr, i64 } [ { ptr @str.776, i64 4 }, %if.then.515 ], [ %callN, %if.else.516 ] + 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.518, label %if.else.519 + +if.then.518: ; preds = %entry + br label %if.merge.520 + +if.else.519: ; 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.781, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.780, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.520 + +if.merge.520: ; preds = %if.else.519, %if.then.518 + %bp = phi { ptr, i64 } [ { ptr @str.779, i64 4 }, %if.then.518 ], [ %callN, %if.else.519 ] ret { ptr, i64 } %bp } @@ -4342,19 +8278,115 @@ entry: 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.314, label %if.else.315 + br i1 %icmp, label %if.then.521, label %if.else.522 -if.then.314: ; preds = %entry - br label %if.merge.316 +if.then.521: ; preds = %entry + br label %if.merge.523 -if.else.315: ; preds = %entry +if.else.522: ; 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.326, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.325, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.316 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.784, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.783, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.523 -if.merge.316: ; preds = %if.else.315, %if.then.314 - %bp = phi { ptr, i64 } [ { ptr @str.324, i64 4 }, %if.then.314 ], [ %callN, %if.else.315 ] +if.merge.523: ; preds = %if.else.522, %if.then.521 + %bp = phi { ptr, i64 } [ { ptr @str.782, i64 4 }, %if.then.521 ], [ %callN, %if.else.522 ] 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.530, label %if.merge.531 + +if.then.530: ; preds = %entry + ret { ptr, i64 } { ptr @str.785, i64 4 } + +if.merge.531: ; 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 39, 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.532, label %if.merge.533 + +if.then.532: ; preds = %entry + ret { ptr, i64 } { ptr @str.786, i64 4 } + +if.merge.533: ; 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_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.534, label %if.merge.535 + +if.then.534: ; preds = %entry + ret { ptr, i64 } { ptr @str.787, i64 4 } + +if.merge.535: ; 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 45, 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.536, label %if.merge.537 + +if.then.536: ; preds = %entry + ret { ptr, i64 } { ptr @str.788, i64 4 } + +if.merge.537: ; 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 88, 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/0903-optionals-optional-roundtrip.ir b/examples/expected/0903-optionals-optional-roundtrip.ir index 68e4593..aeb1ccc 100644 --- a/examples/expected/0903-optionals-optional-roundtrip.ir +++ b/examples/expected/0903-optionals-optional-roundtrip.ir @@ -2,341 +2,700 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @__Sizable__Widget__vtable = internal constant { ptr } { ptr @__thunk_Widget_Sizable_size } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [87 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [177 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [5 x i8] c"?f32\00" -@tn.str.64 = private constant [13 x i8] c"ProposedSize\00" -@tn.str.65 = private constant [8 x i8] c"Sizable\00" -@tn.str.66 = private constant [18 x i8] c"__Sizable__Vtable\00" -@tn.str.67 = private constant [7 x i8] c"Widget\00" -@tn.str.68 = private constant [8 x i8] c"*Widget\00" -@tn.str.69 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.70 = private constant [5 x i8] c"*s64\00" -@tn.str.71 = private constant [7 x i8] c"**void\00" -@tn.str.72 = private constant [8 x i8] c"*string\00" -@tn.str.73 = private constant [6 x i8] c"[]Any\00" -@tn.str.74 = private constant [5 x i8] c"*Any\00" -@tn.str.75 = private constant [7 x i8] c"*[]Any\00" -@tn.str.76 = private constant [4 x i8] c"*u8\00" -@tn.str.77 = private constant [6 x i8] c"*bool\00" -@tn.str.78 = private constant [14 x i8] c"*ProposedSize\00" -@tn.str.79 = private constant [5 x i8] c"*f32\00" -@tn.str.80 = private constant [5 x i8] c"*f64\00" -@tn.str.81 = private constant [7 x i8] c"[1]Any\00" -@tn.str.82 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.83 = private constant [9 x i8] c"*Sizable\00" -@tn.str.84 = private constant [9 x i8] c"**Widget\00" -@tn.str.85 = private constant [19 x i8] c"*__Sizable__Vtable\00" -@tn.str.86 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.87 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.88 = private constant [11 x i8] c"*Allocator\00" -@tn.str.89 = private constant [9 x i8] c"*Context\00" -@tn.str.90 = private constant [10 x i8] c"*[]string\00" -@tn.str.91 = private constant [6 x i8] c"**GPA\00" -@tn.str.92 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.93 = private constant [8 x i8] c"**Arena\00" -@tn.str.94 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.95 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.96 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.97 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.98 = private constant [6 x i8] c"**s64\00" -@tn.str.99 = private constant [8 x i8] c"***void\00" -@tn.str.100 = private constant [9 x i8] c"**string\00" -@tn.str.101 = private constant [6 x i8] c"**Any\00" -@tn.str.102 = private constant [8 x i8] c"**[]Any\00" -@tn.str.103 = private constant [5 x i8] c"**u8\00" -@tn.str.104 = private constant [7 x i8] c"**bool\00" -@tn.str.105 = private constant [15 x i8] c"**ProposedSize\00" -@tn.str.106 = private constant [6 x i8] c"**f32\00" -@tn.str.107 = private constant [6 x i8] c"**f64\00" -@tn.str.108 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.109 = private constant [10 x i8] c"**Sizable\00" -@tn.str.110 = private constant [10 x i8] c"***Widget\00" -@tn.str.111 = private constant [20 x i8] c"**__Sizable__Vtable\00" -@tn.str.112 = private constant [6 x i8] c"*?f32\00" -@__sx_type_names = private constant [87 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 4 }, { ptr, i64 } { ptr @tn.str.64, i64 12 }, { ptr, i64 } { ptr @tn.str.65, i64 7 }, { ptr, i64 } { ptr @tn.str.66, i64 17 }, { ptr, i64 } { ptr @tn.str.67, i64 6 }, { ptr, i64 } { ptr @tn.str.68, i64 7 }, { ptr, i64 } { ptr @tn.str.69, i64 12 }, { ptr, i64 } { ptr @tn.str.70, i64 4 }, { ptr, i64 } { ptr @tn.str.71, i64 6 }, { ptr, i64 } { ptr @tn.str.72, i64 7 }, { ptr, i64 } { ptr @tn.str.73, i64 5 }, { ptr, i64 } { ptr @tn.str.74, i64 4 }, { ptr, i64 } { ptr @tn.str.75, i64 6 }, { ptr, i64 } { ptr @tn.str.76, i64 3 }, { ptr, i64 } { ptr @tn.str.77, i64 5 }, { ptr, i64 } { ptr @tn.str.78, i64 13 }, { ptr, i64 } { ptr @tn.str.79, i64 4 }, { ptr, i64 } { ptr @tn.str.80, i64 4 }, { ptr, i64 } { ptr @tn.str.81, i64 6 }, { ptr, i64 } { ptr @tn.str.82, i64 7 }, { ptr, i64 } { ptr @tn.str.83, i64 8 }, { ptr, i64 } { ptr @tn.str.84, i64 8 }, { ptr, i64 } { ptr @tn.str.85, i64 18 }, { ptr, i64 } { ptr @tn.str.86, i64 7 }, { ptr, i64 } { ptr @tn.str.87, i64 16 }, { ptr, i64 } { ptr @tn.str.88, i64 10 }, { ptr, i64 } { ptr @tn.str.89, i64 8 }, { ptr, i64 } { ptr @tn.str.90, i64 9 }, { ptr, i64 } { ptr @tn.str.91, i64 5 }, { ptr, i64 } { ptr @tn.str.92, i64 12 }, { ptr, i64 } { ptr @tn.str.93, i64 7 }, { ptr, i64 } { ptr @tn.str.94, i64 6 }, { ptr, i64 } { ptr @tn.str.95, i64 10 }, { ptr, i64 } { ptr @tn.str.96, i64 19 }, { ptr, i64 } { ptr @tn.str.97, i64 13 }, { ptr, i64 } { ptr @tn.str.98, i64 5 }, { ptr, i64 } { ptr @tn.str.99, i64 7 }, { ptr, i64 } { ptr @tn.str.100, i64 8 }, { ptr, i64 } { ptr @tn.str.101, i64 5 }, { ptr, i64 } { ptr @tn.str.102, i64 7 }, { ptr, i64 } { ptr @tn.str.103, i64 4 }, { ptr, i64 } { ptr @tn.str.104, i64 6 }, { ptr, i64 } { ptr @tn.str.105, i64 14 }, { ptr, i64 } { ptr @tn.str.106, i64 5 }, { ptr, i64 } { ptr @tn.str.107, i64 5 }, { ptr, i64 } { ptr @tn.str.108, i64 8 }, { ptr, i64 } { ptr @tn.str.109, i64 9 }, { ptr, i64 } { ptr @tn.str.110, i64 9 }, { ptr, i64 } { ptr @tn.str.111, i64 19 }, { ptr, i64 } { ptr @tn.str.112, i64 5 }] -@str.113 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.114 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.115 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.116 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.117 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.118 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.119 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.120 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.121 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.122 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.123 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.124 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.125 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.126 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.127 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.128 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.129 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.130 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.132 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.133 = private unnamed_addr constant [22 x i8] c"=== Direct calls ===\0A\00", align 1 -@str.134 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.135 = private unnamed_addr constant [22 x i8] c"=== Direct calls ===\0A\00", align 1 -@str.136 = private unnamed_addr constant [9 x i8] c"d1 = {}\0A\00", align 1 -@str.137 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.138 = private unnamed_addr constant [9 x i8] c"d1 = {}\0A\00", align 1 -@str.139 = private unnamed_addr constant [9 x i8] c"d2 = {}\0A\00", align 1 -@str.140 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.141 = private unnamed_addr constant [9 x i8] c"d2 = {}\0A\00", align 1 -@str.142 = private unnamed_addr constant [9 x i8] c"d3 = {}\0A\00", align 1 -@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.144 = private unnamed_addr constant [9 x i8] c"d3 = {}\0A\00", align 1 -@str.145 = private unnamed_addr constant [9 x i8] c"d4 = {}\0A\00", align 1 -@str.146 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.147 = private unnamed_addr constant [9 x i8] c"d4 = {}\0A\00", align 1 -@str.148 = private unnamed_addr constant [27 x i8] c"=== Protocol dispatch ===\0A\00", align 1 -@str.149 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.150 = private unnamed_addr constant [27 x i8] c"=== Protocol dispatch ===\0A\00", align 1 -@str.151 = private unnamed_addr constant [9 x i8] c"r1 = {}\0A\00", align 1 -@str.152 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.153 = private unnamed_addr constant [9 x i8] c"r1 = {}\0A\00", align 1 -@str.154 = private unnamed_addr constant [9 x i8] c"r2 = {}\0A\00", align 1 -@str.155 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.156 = private unnamed_addr constant [9 x i8] c"r2 = {}\0A\00", align 1 -@str.157 = private unnamed_addr constant [9 x i8] c"r3 = {}\0A\00", align 1 -@str.158 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.159 = private unnamed_addr constant [9 x i8] c"r3 = {}\0A\00", align 1 -@str.160 = private unnamed_addr constant [9 x i8] c"r4 = {}\0A\00", align 1 -@str.161 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.162 = private unnamed_addr constant [9 x i8] c"r4 = {}\0A\00", align 1 -@str.163 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.164 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.165 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.166 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [5 x i8] c"?f32\00" +@tn.str.237 = private constant [13 x i8] c"ProposedSize\00" +@tn.str.238 = private constant [8 x i8] c"Sizable\00" +@tn.str.239 = private constant [18 x i8] c"__Sizable__Vtable\00" +@tn.str.240 = private constant [7 x i8] c"Widget\00" +@tn.str.241 = private constant [8 x i8] c"*Widget\00" +@tn.str.242 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.243 = private constant [7 x i8] c"**void\00" +@tn.str.244 = private constant [8 x i8] c"*string\00" +@tn.str.245 = private constant [6 x i8] c"[]Any\00" +@tn.str.246 = private constant [5 x i8] c"*Any\00" +@tn.str.247 = private constant [7 x i8] c"*[]Any\00" +@tn.str.248 = private constant [6 x i8] c"*bool\00" +@tn.str.249 = private constant [14 x i8] c"*ProposedSize\00" +@tn.str.250 = private constant [5 x i8] c"*f32\00" +@tn.str.251 = private constant [5 x i8] c"*f64\00" +@tn.str.252 = private constant [7 x i8] c"[1]Any\00" +@tn.str.253 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.254 = private constant [9 x i8] c"*Sizable\00" +@tn.str.255 = private constant [9 x i8] c"**Widget\00" +@tn.str.256 = private constant [19 x i8] c"*__Sizable__Vtable\00" +@tn.str.257 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.258 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.259 = private constant [11 x i8] c"*Allocator\00" +@tn.str.260 = private constant [9 x i8] c"*Context\00" +@tn.str.261 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.262 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.263 = private constant [8 x i8] c"*Member\00" +@tn.str.264 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.265 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.266 = private constant [9 x i8] c"*Command\00" +@tn.str.267 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.268 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.269 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.270 = private constant [7 x i8] c"*Value\00" +@tn.str.271 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.272 = private constant [14 x i8] c"*Architecture\00" +@tn.str.273 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.274 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.275 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.276 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.277 = private constant [10 x i8] c"*[]string\00" +@tn.str.278 = private constant [6 x i8] c"*[]u8\00" +@tn.str.279 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.280 = private constant [11 x i8] c"*[]Command\00" +@tn.str.281 = private constant [6 x i8] c"**GPA\00" +@tn.str.282 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.283 = private constant [8 x i8] c"**Arena\00" +@tn.str.284 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.285 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.286 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.287 = private constant [7 x i8] c"**File\00" +@tn.str.288 = private constant [5 x i8] c"**u8\00" +@tn.str.289 = private constant [6 x i8] c"**s32\00" +@tn.str.290 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.291 = private constant [6 x i8] c"**u32\00" +@tn.str.292 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.293 = private constant [8 x i8] c"**Array\00" +@tn.str.294 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.295 = private constant [9 x i8] c"**Object\00" +@tn.str.296 = private constant [7 x i8] c"**Sink\00" +@tn.str.297 = private constant [9 x i8] c"**Parser\00" +@tn.str.298 = private constant [6 x i8] c"**s64\00" +@tn.str.299 = private constant [9 x i8] c"**Parsed\00" +@tn.str.300 = private constant [7 x i8] c"**Diag\00" +@tn.str.301 = private constant [9 x i8] c"**Sha256\00" +@tn.str.302 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.303 = private constant [8 x i8] c"***void\00" +@tn.str.304 = private constant [9 x i8] c"**string\00" +@tn.str.305 = private constant [6 x i8] c"**Any\00" +@tn.str.306 = private constant [8 x i8] c"**[]Any\00" +@tn.str.307 = private constant [7 x i8] c"**bool\00" +@tn.str.308 = private constant [15 x i8] c"**ProposedSize\00" +@tn.str.309 = private constant [6 x i8] c"**f32\00" +@tn.str.310 = private constant [6 x i8] c"**f64\00" +@tn.str.311 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.312 = private constant [10 x i8] c"**Sizable\00" +@tn.str.313 = private constant [10 x i8] c"***Widget\00" +@tn.str.314 = private constant [20 x i8] c"**__Sizable__Vtable\00" +@tn.str.315 = private constant [7 x i8] c"*?File\00" +@tn.str.316 = private constant [9 x i8] c"*?string\00" +@tn.str.317 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.318 = private constant [9 x i8] c"*?[64]u8\00" +@tn.str.319 = private constant [6 x i8] c"*?f32\00" +@__sx_type_names = private constant [177 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 4 }, { ptr, i64 } { ptr @tn.str.237, i64 12 }, { ptr, i64 } { ptr @tn.str.238, i64 7 }, { ptr, i64 } { ptr @tn.str.239, i64 17 }, { ptr, i64 } { ptr @tn.str.240, i64 6 }, { ptr, i64 } { ptr @tn.str.241, i64 7 }, { ptr, i64 } { ptr @tn.str.242, i64 12 }, { ptr, i64 } { ptr @tn.str.243, i64 6 }, { ptr, i64 } { ptr @tn.str.244, i64 7 }, { ptr, i64 } { ptr @tn.str.245, i64 5 }, { ptr, i64 } { ptr @tn.str.246, i64 4 }, { ptr, i64 } { ptr @tn.str.247, i64 6 }, { ptr, i64 } { ptr @tn.str.248, i64 5 }, { ptr, i64 } { ptr @tn.str.249, i64 13 }, { ptr, i64 } { ptr @tn.str.250, i64 4 }, { ptr, i64 } { ptr @tn.str.251, i64 4 }, { ptr, i64 } { ptr @tn.str.252, i64 6 }, { ptr, i64 } { ptr @tn.str.253, i64 7 }, { ptr, i64 } { ptr @tn.str.254, i64 8 }, { ptr, i64 } { ptr @tn.str.255, i64 8 }, { ptr, i64 } { ptr @tn.str.256, i64 18 }, { ptr, i64 } { ptr @tn.str.257, i64 7 }, { ptr, i64 } { ptr @tn.str.258, i64 16 }, { ptr, i64 } { ptr @tn.str.259, i64 10 }, { ptr, i64 } { ptr @tn.str.260, i64 8 }, { ptr, i64 } { ptr @tn.str.261, i64 11 }, { ptr, i64 } { ptr @tn.str.262, i64 14 }, { ptr, i64 } { ptr @tn.str.263, i64 7 }, { ptr, i64 } { ptr @tn.str.264, i64 13 }, { ptr, i64 } { ptr @tn.str.265, i64 9 }, { ptr, i64 } { ptr @tn.str.266, i64 8 }, { ptr, i64 } { ptr @tn.str.267, i64 10 }, { ptr, i64 } { ptr @tn.str.268, i64 9 }, { ptr, i64 } { ptr @tn.str.269, i64 9 }, { ptr, i64 } { ptr @tn.str.270, i64 6 }, { ptr, i64 } { ptr @tn.str.271, i64 16 }, { ptr, i64 } { ptr @tn.str.272, i64 13 }, { ptr, i64 } { ptr @tn.str.273, i64 14 }, { ptr, i64 } { ptr @tn.str.274, i64 7 }, { ptr, i64 } { ptr @tn.str.275, i64 7 }, { ptr, i64 } { ptr @tn.str.276, i64 8 }, { ptr, i64 } { ptr @tn.str.277, i64 9 }, { ptr, i64 } { ptr @tn.str.278, i64 5 }, { ptr, i64 } { ptr @tn.str.279, i64 11 }, { ptr, i64 } { ptr @tn.str.280, i64 10 }, { ptr, i64 } { ptr @tn.str.281, i64 5 }, { ptr, i64 } { ptr @tn.str.282, i64 12 }, { ptr, i64 } { ptr @tn.str.283, i64 7 }, { ptr, i64 } { ptr @tn.str.284, i64 6 }, { ptr, i64 } { ptr @tn.str.285, i64 10 }, { ptr, i64 } { ptr @tn.str.286, i64 19 }, { ptr, i64 } { ptr @tn.str.287, i64 6 }, { ptr, i64 } { ptr @tn.str.288, i64 4 }, { ptr, i64 } { ptr @tn.str.289, i64 5 }, { ptr, i64 } { ptr @tn.str.290, i64 10 }, { ptr, i64 } { ptr @tn.str.291, i64 5 }, { ptr, i64 } { ptr @tn.str.292, i64 9 }, { ptr, i64 } { ptr @tn.str.293, i64 7 }, { ptr, i64 } { ptr @tn.str.294, i64 10 }, { ptr, i64 } { ptr @tn.str.295, i64 8 }, { ptr, i64 } { ptr @tn.str.296, i64 6 }, { ptr, i64 } { ptr @tn.str.297, i64 8 }, { ptr, i64 } { ptr @tn.str.298, i64 5 }, { ptr, i64 } { ptr @tn.str.299, i64 8 }, { ptr, i64 } { ptr @tn.str.300, i64 6 }, { ptr, i64 } { ptr @tn.str.301, i64 8 }, { ptr, i64 } { ptr @tn.str.302, i64 13 }, { ptr, i64 } { ptr @tn.str.303, i64 7 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }, { ptr, i64 } { ptr @tn.str.305, i64 5 }, { ptr, i64 } { ptr @tn.str.306, i64 7 }, { ptr, i64 } { ptr @tn.str.307, i64 6 }, { ptr, i64 } { ptr @tn.str.308, i64 14 }, { ptr, i64 } { ptr @tn.str.309, i64 5 }, { ptr, i64 } { ptr @tn.str.310, i64 5 }, { ptr, i64 } { ptr @tn.str.311, i64 8 }, { ptr, i64 } { ptr @tn.str.312, i64 9 }, { ptr, i64 } { ptr @tn.str.313, i64 9 }, { ptr, i64 } { ptr @tn.str.314, i64 19 }, { ptr, i64 } { ptr @tn.str.315, i64 6 }, { ptr, i64 } { ptr @tn.str.316, i64 8 }, { ptr, i64 } { ptr @tn.str.317, i64 15 }, { ptr, i64 } { ptr @tn.str.318, i64 8 }, { ptr, i64 } { ptr @tn.str.319, i64 5 }] +@str.320 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.321 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.322 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.323 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.324 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.325 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.326 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.327 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.328 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.329 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.330 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.331 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.332 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.333 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.334 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.335 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.336 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.337 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.338 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.339 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.340 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.341 = private unnamed_addr constant [22 x i8] c"=== Direct calls ===\0A\00", align 1 +@str.342 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.343 = private unnamed_addr constant [22 x i8] c"=== Direct calls ===\0A\00", align 1 +@str.344 = private unnamed_addr constant [9 x i8] c"d1 = {}\0A\00", align 1 +@str.345 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.346 = private unnamed_addr constant [9 x i8] c"d1 = {}\0A\00", align 1 +@str.347 = private unnamed_addr constant [9 x i8] c"d2 = {}\0A\00", align 1 +@str.348 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.349 = private unnamed_addr constant [9 x i8] c"d2 = {}\0A\00", align 1 +@str.350 = private unnamed_addr constant [9 x i8] c"d3 = {}\0A\00", align 1 +@str.351 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.352 = private unnamed_addr constant [9 x i8] c"d3 = {}\0A\00", align 1 +@str.353 = private unnamed_addr constant [9 x i8] c"d4 = {}\0A\00", align 1 +@str.354 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.355 = private unnamed_addr constant [9 x i8] c"d4 = {}\0A\00", align 1 +@str.356 = private unnamed_addr constant [27 x i8] c"=== Protocol dispatch ===\0A\00", align 1 +@str.357 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.358 = private unnamed_addr constant [27 x i8] c"=== Protocol dispatch ===\0A\00", align 1 +@str.359 = private unnamed_addr constant [9 x i8] c"r1 = {}\0A\00", align 1 +@str.360 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.361 = private unnamed_addr constant [9 x i8] c"r1 = {}\0A\00", align 1 +@str.362 = private unnamed_addr constant [9 x i8] c"r2 = {}\0A\00", align 1 +@str.363 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.364 = private unnamed_addr constant [9 x i8] c"r2 = {}\0A\00", align 1 +@str.365 = private unnamed_addr constant [9 x i8] c"r3 = {}\0A\00", align 1 +@str.366 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.367 = private unnamed_addr constant [9 x i8] c"r3 = {}\0A\00", align 1 +@str.368 = private unnamed_addr constant [9 x i8] c"r4 = {}\0A\00", align 1 +@str.369 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.370 = private unnamed_addr constant [9 x i8] c"r4 = {}\0A\00", align 1 +@str.371 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.372 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.373 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.374 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.167 = private constant [5 x i8] c"line\00" -@fld.str.168 = private constant [4 x i8] c"col\00" -@fld.str.169 = 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.167, i64 4 }, { ptr, i64 } { ptr @fld.str.168, i64 3 }, { ptr, i64 } { ptr @fld.str.169, i64 4 }] -@str.170 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.171 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.172 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.173 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.174 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.175 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.176 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.177 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.178 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.179 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.180 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.181 = private constant [12 x i8] c"alloc_count\00" -@field_names.182 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.181, i64 11 }] -@str.183 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.184 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.185 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.186 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.187 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.188 = private constant [5 x i8] c"next\00" -@fld.str.189 = private constant [4 x i8] c"cap\00" -@field_names.190 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.188, i64 4 }, { ptr, i64 } { ptr @fld.str.189, i64 3 }] -@str.191 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.192 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.193 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.194 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.195 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.196 = private constant [4 x i8] c"ctx\00" -@fld.str.197 = private constant [6 x i8] c"alloc\00" -@fld.str.198 = private constant [8 x i8] c"dealloc\00" -@field_names.199 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.196, i64 3 }, { ptr, i64 } { ptr @fld.str.197, i64 5 }, { ptr, i64 } { ptr @fld.str.198, i64 7 }] -@str.200 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.201 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.203 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.204 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.205 = private constant [6 x i8] c"first\00" -@fld.str.206 = private constant [10 x i8] c"end_index\00" -@fld.str.207 = private constant [7 x i8] c"parent\00" -@field_names.208 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.205, i64 5 }, { ptr, i64 } { ptr @fld.str.206, i64 9 }, { ptr, i64 } { ptr @fld.str.207, i64 6 }] -@str.209 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.210 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.212 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.213 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.214 = private constant [4 x i8] c"buf\00" -@fld.str.215 = private constant [4 x i8] c"len\00" -@fld.str.216 = private constant [4 x i8] c"pos\00" -@field_names.217 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.214, i64 3 }, { ptr, i64 } { ptr @fld.str.215, i64 3 }, { ptr, i64 } { ptr @fld.str.216, i64 3 }] -@str.218 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.219 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.220 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.221 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.222 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.223 = private constant [7 x i8] c"parent\00" -@fld.str.224 = private constant [12 x i8] c"alloc_count\00" -@fld.str.225 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.226 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.227 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.223, i64 6 }, { ptr, i64 } { ptr @fld.str.224, i64 11 }, { ptr, i64 } { ptr @fld.str.225, i64 13 }, { ptr, i64 } { ptr @fld.str.226, i64 17 }] -@str.228 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.229 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.230 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.231 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.232 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.233 = private constant [10 x i8] c"allocator\00" -@fld.str.234 = private constant [5 x i8] c"data\00" -@field_names.235 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.233, i64 9 }, { ptr, i64 } { ptr @fld.str.234, i64 4 }] -@str.236 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.237 = private unnamed_addr constant [13 x i8] c"ProposedSize\00", align 1 -@str.238 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.239 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.240 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.241 = private constant [6 x i8] c"width\00" -@fld.str.242 = private constant [7 x i8] c"height\00" -@field_names.243 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.241, i64 5 }, { ptr, i64 } { ptr @fld.str.242, i64 6 }] -@str.244 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.245 = private unnamed_addr constant [8 x i8] c"Sizable\00", align 1 -@str.246 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.247 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.248 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.249 = private constant [4 x i8] c"ctx\00" -@fld.str.250 = private constant [9 x i8] c"__vtable\00" -@field_names.251 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.249, i64 3 }, { ptr, i64 } { ptr @fld.str.250, i64 8 }] -@str.252 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.253 = private unnamed_addr constant [18 x i8] c"__Sizable__Vtable\00", align 1 -@str.254 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.255 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.256 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.257 = private constant [5 x i8] c"size\00" -@field_names.258 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.257, i64 4 }] -@str.259 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.260 = private unnamed_addr constant [7 x i8] c"Widget\00", align 1 -@str.261 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.262 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.263 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.264 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.265 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.266 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.267 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.268 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.269 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.270 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.271 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.272 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.273 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.274 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.275 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.276 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.277 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.278 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.279 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.280 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.281 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.282 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.283 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.284 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.285 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.286 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.287 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.288 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.289 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.290 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.291 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.292 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.293 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.294 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.295 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.296 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.297 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.298 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.299 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.300 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.301 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.302 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.303 = private unnamed_addr constant [8 x i8] c"*Widget\00", align 1 -@str.304 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.305 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.306 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.307 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.308 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.309 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.310 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.311 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.312 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.313 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.314 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.315 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.316 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.317 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.318 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.319 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.320 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.321 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.322 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.323 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.324 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.325 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.326 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.327 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.328 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.329 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.330 = private unnamed_addr constant [14 x i8] c"*ProposedSize\00", align 1 -@str.331 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.332 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.333 = private unnamed_addr constant [5 x i8] c"*f32\00", align 1 -@str.334 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.335 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.336 = private unnamed_addr constant [5 x i8] c"*f64\00", align 1 -@str.337 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.338 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.339 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.340 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.341 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.342 = private unnamed_addr constant [9 x i8] c"*Sizable\00", align 1 -@str.343 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.344 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.345 = private unnamed_addr constant [9 x i8] c"**Widget\00", align 1 -@str.346 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.347 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.348 = private unnamed_addr constant [19 x i8] c"*__Sizable__Vtable\00", align 1 -@str.349 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.350 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@fld.str.375 = private constant [5 x i8] c"line\00" +@fld.str.376 = private constant [4 x i8] c"col\00" +@fld.str.377 = 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.375, i64 4 }, { ptr, i64 } { ptr @fld.str.376, i64 3 }, { ptr, i64 } { ptr @fld.str.377, i64 4 }] +@str.378 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.379 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.380 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.381 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.382 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.383 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.384 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.385 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.386 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.387 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.388 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.389 = private constant [12 x i8] c"alloc_count\00" +@field_names.390 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.389, i64 11 }] +@str.391 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.392 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.393 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.394 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.395 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.396 = private constant [5 x i8] c"next\00" +@fld.str.397 = private constant [4 x i8] c"cap\00" +@field_names.398 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.396, i64 4 }, { ptr, i64 } { ptr @fld.str.397, i64 3 }] +@str.399 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.400 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.401 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.402 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.403 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.404 = private constant [4 x i8] c"ctx\00" +@fld.str.405 = private constant [6 x i8] c"alloc\00" +@fld.str.406 = private constant [8 x i8] c"dealloc\00" +@field_names.407 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.404, i64 3 }, { ptr, i64 } { ptr @fld.str.405, i64 5 }, { ptr, i64 } { ptr @fld.str.406, i64 7 }] +@str.408 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.409 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.410 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.412 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.413 = private constant [6 x i8] c"first\00" +@fld.str.414 = private constant [10 x i8] c"end_index\00" +@fld.str.415 = private constant [7 x i8] c"parent\00" +@field_names.416 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.413, i64 5 }, { ptr, i64 } { ptr @fld.str.414, i64 9 }, { ptr, i64 } { ptr @fld.str.415, i64 6 }] +@str.417 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.418 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.420 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.421 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.422 = private constant [4 x i8] c"buf\00" +@fld.str.423 = private constant [4 x i8] c"len\00" +@fld.str.424 = private constant [4 x i8] c"pos\00" +@field_names.425 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.422, i64 3 }, { ptr, i64 } { ptr @fld.str.423, i64 3 }, { ptr, i64 } { ptr @fld.str.424, i64 3 }] +@str.426 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.427 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.428 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.429 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.430 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.431 = private constant [7 x i8] c"parent\00" +@fld.str.432 = private constant [12 x i8] c"alloc_count\00" +@fld.str.433 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.434 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.435 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.431, i64 6 }, { ptr, i64 } { ptr @fld.str.432, i64 11 }, { ptr, i64 } { ptr @fld.str.433, i64 13 }, { ptr, i64 } { ptr @fld.str.434, i64 17 }] +@str.436 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.437 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.438 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.439 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.440 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.441 = private constant [10 x i8] c"allocator\00" +@fld.str.442 = private constant [5 x i8] c"data\00" +@field_names.443 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.441, i64 9 }, { ptr, i64 } { ptr @fld.str.442, i64 4 }] +@str.444 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.445 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.446 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.447 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.448 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.449 = private constant [3 x i8] c"fd\00" +@field_names.450 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.449, i64 2 }] +@str.451 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.452 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.453 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.454 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.455 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.456 = private constant [5 x i8] c"file\00" +@fld.str.457 = private constant [5 x i8] c"line\00" +@fld.str.458 = private constant [4 x i8] c"col\00" +@fld.str.459 = private constant [5 x i8] c"func\00" +@fld.str.460 = private constant [10 x i8] c"line_text\00" +@field_names.461 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.456, i64 4 }, { ptr, i64 } { ptr @fld.str.457, i64 4 }, { ptr, i64 } { ptr @fld.str.458, i64 3 }, { ptr, i64 } { ptr @fld.str.459, i64 4 }, { ptr, i64 } { ptr @fld.str.460, i64 9 }] +@str.462 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.463 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.464 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.465 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.466 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.467 = private constant [10 x i8] c"exit_code\00" +@fld.str.468 = private constant [7 x i8] c"stdout\00" +@field_names.469 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.467, i64 9 }, { ptr, i64 } { ptr @fld.str.468, i64 6 }] +@str.470 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.471 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.472 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.473 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.474 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.475 = private constant [8 x i8] c"sin_len\00" +@fld.str.476 = private constant [11 x i8] c"sin_family\00" +@fld.str.477 = private constant [9 x i8] c"sin_port\00" +@fld.str.478 = private constant [9 x i8] c"sin_addr\00" +@fld.str.479 = private constant [9 x i8] c"sin_zero\00" +@field_names.480 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.475, i64 7 }, { ptr, i64 } { ptr @fld.str.476, i64 10 }, { ptr, i64 } { ptr @fld.str.477, i64 8 }, { ptr, i64 } { ptr @fld.str.478, i64 8 }, { ptr, i64 } { ptr @fld.str.479, i64 8 }] +@str.481 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.482 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.483 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.484 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.485 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.486 = private constant [6 x i8] c"items\00" +@fld.str.487 = private constant [4 x i8] c"len\00" +@fld.str.488 = private constant [4 x i8] c"cap\00" +@field_names.489 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.486, i64 5 }, { ptr, i64 } { ptr @fld.str.487, i64 3 }, { ptr, i64 } { ptr @fld.str.488, i64 3 }] +@str.490 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.491 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.493 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.494 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.495 = private constant [6 x i8] c"items\00" +@fld.str.496 = private constant [4 x i8] c"len\00" +@fld.str.497 = private constant [4 x i8] c"cap\00" +@field_names.498 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.495, i64 5 }, { ptr, i64 } { ptr @fld.str.496, i64 3 }, { ptr, i64 } { ptr @fld.str.497, i64 3 }] +@str.499 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.500 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.501 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.502 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.503 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.504 = private constant [4 x i8] c"key\00" +@fld.str.505 = private constant [4 x i8] c"val\00" +@field_names.506 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.504, i64 3 }, { ptr, i64 } { ptr @fld.str.505, i64 3 }] +@str.507 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.508 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.509 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.510 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.511 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.512 = private constant [4 x i8] c"dst\00" +@fld.str.513 = private constant [4 x i8] c"pos\00" +@fld.str.514 = private constant [5 x i8] c"file\00" +@field_names.515 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.512, i64 3 }, { ptr, i64 } { ptr @fld.str.513, i64 3 }, { ptr, i64 } { ptr @fld.str.514, i64 4 }] +@str.516 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.517 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.518 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.519 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.520 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.521 = private constant [4 x i8] c"src\00" +@fld.str.522 = private constant [4 x i8] c"pos\00" +@fld.str.523 = private constant [6 x i8] c"alloc\00" +@field_names.524 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.521, i64 3 }, { ptr, i64 } { ptr @fld.str.522, i64 3 }, { ptr, i64 } { ptr @fld.str.523, i64 5 }] +@str.525 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.526 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.527 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.528 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.529 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.530 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.531 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.532 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.533 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.534 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.535 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.536 = private constant [5 x i8] c"name\00" +@fld.str.537 = private constant [12 x i8] c"takes_value\00" +@fld.str.538 = private constant [9 x i8] c"required\00" +@field_names.539 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.536, i64 4 }, { ptr, i64 } { ptr @fld.str.537, i64 11 }, { ptr, i64 } { ptr @fld.str.538, i64 8 }] +@str.540 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.541 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.542 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.543 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.544 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.545 = private constant [6 x i8] c"group\00" +@fld.str.546 = private constant [8 x i8] c"command\00" +@fld.str.547 = private constant [6 x i8] c"flags\00" +@field_names.548 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.545, i64 5 }, { ptr, i64 } { ptr @fld.str.546, i64 7 }, { ptr, i64 } { ptr @fld.str.547, i64 5 }] +@str.549 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.550 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.551 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.552 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.553 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.554 = private constant [4 x i8] c"set\00" +@fld.str.555 = private constant [6 x i8] c"value\00" +@field_names.556 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.554, i64 3 }, { ptr, i64 } { ptr @fld.str.555, i64 5 }] +@str.557 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.558 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.559 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.560 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.561 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.562 = private constant [6 x i8] c"index\00" +@fld.str.563 = private constant [6 x i8] c"token\00" +@field_names.564 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.562, i64 5 }, { ptr, i64 } { ptr @fld.str.563, i64 5 }] +@str.565 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.566 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.567 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.569 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.570 = private constant [6 x i8] c"group\00" +@fld.str.571 = private constant [8 x i8] c"command\00" +@fld.str.572 = private constant [10 x i8] c"cmd_index\00" +@fld.str.573 = private constant [5 x i8] c"json\00" +@fld.str.574 = private constant [5 x i8] c"rest\00" +@fld.str.575 = private constant [5 x i8] c"spec\00" +@fld.str.576 = private constant [7 x i8] c"values\00" +@field_names.577 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.570, i64 5 }, { ptr, i64 } { ptr @fld.str.571, i64 7 }, { ptr, i64 } { ptr @fld.str.572, i64 9 }, { ptr, i64 } { ptr @fld.str.573, i64 4 }, { ptr, i64 } { ptr @fld.str.574, i64 4 }, { ptr, i64 } { ptr @fld.str.575, i64 4 }, { ptr, i64 } { ptr @fld.str.576, i64 6 }] +@str.578 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.579 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.580 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.581 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.582 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.583 = private constant [2 x i8] c"h\00" +@fld.str.584 = private constant [4 x i8] c"buf\00" +@fld.str.585 = private constant [8 x i8] c"buf_len\00" +@fld.str.586 = private constant [10 x i8] c"total_len\00" +@field_names.587 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.583, i64 1 }, { ptr, i64 } { ptr @fld.str.584, i64 3 }, { ptr, i64 } { ptr @fld.str.585, i64 7 }, { ptr, i64 } { ptr @fld.str.586, i64 9 }] +@str.588 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.589 = private unnamed_addr constant [13 x i8] c"ProposedSize\00", align 1 +@str.590 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.591 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.592 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.593 = private constant [6 x i8] c"width\00" +@fld.str.594 = private constant [7 x i8] c"height\00" +@field_names.595 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.593, i64 5 }, { ptr, i64 } { ptr @fld.str.594, i64 6 }] +@str.596 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.597 = private unnamed_addr constant [8 x i8] c"Sizable\00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.600 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.601 = private constant [4 x i8] c"ctx\00" +@fld.str.602 = private constant [9 x i8] c"__vtable\00" +@field_names.603 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.601, i64 3 }, { ptr, i64 } { ptr @fld.str.602, i64 8 }] +@str.604 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.605 = private unnamed_addr constant [18 x i8] c"__Sizable__Vtable\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.608 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.609 = private constant [5 x i8] c"size\00" +@field_names.610 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.609, i64 4 }] +@str.611 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.612 = private unnamed_addr constant [7 x i8] c"Widget\00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.615 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.616 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.617 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.618 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.619 = private constant [5 x i8] c"read\00" +@fld.str.620 = private constant [6 x i8] c"write\00" +@fld.str.621 = private constant [7 x i8] c"append\00" +@fld.str.622 = private constant [11 x i8] c"read_write\00" +@field_names.623 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.619, i64 4 }, { ptr, i64 } { ptr @fld.str.620, i64 5 }, { ptr, i64 } { ptr @fld.str.621, i64 6 }, { ptr, i64 } { ptr @fld.str.622, i64 10 }] +@str.624 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.627 = private constant [4 x i8] c"set\00" +@fld.str.628 = private constant [8 x i8] c"current\00" +@fld.str.629 = private constant [4 x i8] c"end\00" +@field_names.630 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.627, i64 3 }, { ptr, i64 } { ptr @fld.str.628, i64 7 }, { ptr, i64 } { ptr @fld.str.629, i64 3 }] +@str.631 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.632 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.633 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.634 = private constant [6 x i8] c"null_\00" +@fld.str.635 = private constant [6 x i8] c"bool_\00" +@fld.str.636 = private constant [5 x i8] c"int_\00" +@fld.str.637 = private constant [4 x i8] c"str\00" +@fld.str.638 = private constant [6 x i8] c"array\00" +@fld.str.639 = private constant [7 x i8] c"object\00" +@field_names.640 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.634, i64 5 }, { ptr, i64 } { ptr @fld.str.635, i64 5 }, { ptr, i64 } { ptr @fld.str.636, i64 4 }, { ptr, i64 } { ptr @fld.str.637, i64 3 }, { ptr, i64 } { ptr @fld.str.638, i64 5 }, { ptr, i64 } { ptr @fld.str.639, i64 6 }] +@str.641 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.642 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.643 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.644 = private constant [6 x i8] c"macos\00" +@fld.str.645 = private constant [6 x i8] c"linux\00" +@fld.str.646 = private constant [8 x i8] c"windows\00" +@fld.str.647 = private constant [5 x i8] c"wasm\00" +@fld.str.648 = private constant [4 x i8] c"ios\00" +@fld.str.649 = private constant [8 x i8] c"android\00" +@fld.str.650 = private constant [8 x i8] c"unknown\00" +@field_names.651 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.644, i64 5 }, { ptr, i64 } { ptr @fld.str.645, i64 5 }, { ptr, i64 } { ptr @fld.str.646, i64 7 }, { ptr, i64 } { ptr @fld.str.647, i64 4 }, { ptr, i64 } { ptr @fld.str.648, i64 3 }, { ptr, i64 } { ptr @fld.str.649, i64 7 }, { ptr, i64 } { ptr @fld.str.650, i64 7 }] +@str.652 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.653 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.654 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.655 = private constant [8 x i8] c"aarch64\00" +@fld.str.656 = private constant [7 x i8] c"x86_64\00" +@fld.str.657 = private constant [7 x i8] c"wasm32\00" +@fld.str.658 = private constant [7 x i8] c"wasm64\00" +@fld.str.659 = private constant [8 x i8] c"unknown\00" +@field_names.660 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.655, i64 7 }, { ptr, i64 } { ptr @fld.str.656, i64 6 }, { ptr, i64 } { ptr @fld.str.657, i64 6 }, { ptr, i64 } { ptr @fld.str.658, i64 6 }, { ptr, i64 } { ptr @fld.str.659, i64 7 }] +@str.661 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.662 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.663 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.664 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.665 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.666 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.667 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.668 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.669 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.670 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.671 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.672 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.673 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.674 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.675 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.676 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.677 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.678 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.679 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.680 = private unnamed_addr constant [3 x i8] c", \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 +@str.684 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.685 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.686 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.687 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.688 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.689 = private unnamed_addr constant [3 x i8] c", \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 +@str.693 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.694 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.695 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.696 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.697 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.698 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.699 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.700 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.701 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.702 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.703 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.704 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.705 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.706 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.707 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.708 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.709 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.710 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.711 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.712 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.713 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.714 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.715 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.716 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.718 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.719 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.721 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.722 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.723 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.724 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.725 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.728 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.729 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.730 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.731 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.732 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.733 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.734 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.735 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.736 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.737 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.738 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.739 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.740 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.741 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.742 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.743 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.744 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.745 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.746 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.747 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.748 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.749 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.750 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.751 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.752 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.753 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.754 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.755 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.756 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.757 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.758 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.759 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.760 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.761 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.762 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.763 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.764 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.765 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.766 = private unnamed_addr constant [8 x i8] c"*Widget\00", align 1 +@str.767 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.768 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.769 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.770 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.771 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.772 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.773 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.774 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.775 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.776 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.777 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.778 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.779 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.780 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.781 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.782 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.783 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.784 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.785 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.786 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.787 = private unnamed_addr constant [14 x i8] c"*ProposedSize\00", align 1 +@str.788 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.789 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.790 = private unnamed_addr constant [5 x i8] c"*f32\00", align 1 +@str.791 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.792 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.793 = private unnamed_addr constant [5 x i8] c"*f64\00", align 1 +@str.794 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.795 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.796 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.797 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.798 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.799 = private unnamed_addr constant [9 x i8] c"*Sizable\00", align 1 +@str.800 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.801 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.802 = private unnamed_addr constant [9 x i8] c"**Widget\00", align 1 +@str.803 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.804 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.805 = private unnamed_addr constant [19 x i8] c"*__Sizable__Vtable\00", align 1 +@str.806 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.807 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.808 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.809 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.810 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.811 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -568,7 +927,7 @@ entry: br i1 %icmp, label %if.then.68, label %if.merge.69 if.then.68: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.69: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -695,7 +1054,7 @@ if.else.91: ; preds = %entry br label %if.merge.92 if.merge.92: ; preds = %if.else.91, %if.then.90 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.90 ], [ { ptr @str.23, i64 5 }, %if.else.91 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.90 ], [ { ptr @str.127, i64 5 }, %if.else.91 ] ret { ptr, i64 } %bp } @@ -864,38 +1223,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.245 + br label %while.hdr.413 -while.hdr.245: ; preds = %if.merge.250, %entry +while.hdr.413: ; preds = %if.merge.418, %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.246, label %while.exit.247 + br i1 %icmp, label %while.body.414, label %while.exit.415 -while.body.246: ; preds = %while.hdr.245 +while.body.414: ; preds = %while.hdr.413 %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.248, label %if.else.249 + br i1 %icmpN, label %if.then.416, label %if.else.417 -while.exit.247: ; preds = %while.hdr.245 +while.exit.415: ; preds = %while.hdr.413 ret void -if.then.248: ; preds = %while.body.246 +if.then.416: ; preds = %while.body.414 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.250 + br label %if.merge.418 -if.else.249: ; preds = %while.body.246 +if.else.417: ; preds = %while.body.414 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.250 + br label %if.merge.418 -if.merge.250: ; preds = %if.else.249, %if.then.248 - %bp = phi i64 [ %addN, %if.then.248 ], [ %addN, %if.else.249 ] +if.merge.418: ; preds = %if.else.417, %if.then.416 + %bp = phi i64 [ %addN, %if.then.416 ], [ %addN, %if.else.417 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -908,7 +1267,7 @@ if.merge.250: ; preds = %if.else.249, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.245 + br label %while.hdr.413 } ; Function Attrs: nounwind @@ -1026,12 +1385,12 @@ entry: 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.243, label %if.merge.244 + br i1 %icmp, label %if.then.411, label %if.merge.412 -if.then.243: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.411: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.244: ; preds = %entry +if.merge.412: ; 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 @@ -1062,14 +1421,14 @@ if.merge.244: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.251 + br label %while.hdr.419 -while.hdr.251: ; preds = %if.merge.255, %if.merge.244 +while.hdr.419: ; preds = %if.merge.423, %if.merge.412 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.252, label %while.exit.253 + br i1 %icmpN, label %while.body.420, label %while.exit.421 -while.body.252: ; preds = %while.hdr.251 +while.body.420: ; preds = %while.hdr.419 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1077,9 +1436,9 @@ while.body.252: ; preds = %while.hdr.251 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.254, label %if.merge.255 + br i1 %icmpN, label %if.then.422, label %if.merge.423 -while.exit.253: ; preds = %if.then.254, %while.hdr.251 +while.exit.421: ; preds = %if.then.422, %while.hdr.419 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1087,14 +1446,14 @@ while.exit.253: ; preds = %if.then.254, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.254: ; preds = %while.body.252 - br label %while.exit.253 +if.then.422: ; preds = %while.body.420 + br label %while.exit.421 -if.merge.255: ; preds = %while.body.252 +if.merge.423: ; preds = %while.body.420 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.251 + br label %while.hdr.419 } ; Function Attrs: nounwind @@ -1172,12 +1531,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1210,14 +1571,45 @@ entry: i64 30, label %match.arm.55 i64 32, label %match.arm.55 i64 34, label %match.arm.55 - i64 38, label %match.arm.55 i64 39, label %match.arm.55 - i64 40, label %match.arm.55 - i64 41, label %match.arm.55 + i64 43, label %match.arm.55 + i64 45, label %match.arm.55 + i64 48, label %match.arm.55 + i64 52, label %match.arm.55 + i64 53, label %match.arm.55 + i64 55, label %match.arm.55 + i64 61, label %match.arm.55 + i64 66, label %match.arm.55 + i64 72, label %match.arm.55 + i64 76, label %match.arm.55 + i64 78, label %match.arm.55 + i64 79, label %match.arm.55 + i64 80, label %match.arm.55 + i64 82, label %match.arm.55 + i64 89, label %match.arm.55 + i64 94, label %match.arm.55 + i64 95, label %match.arm.55 + i64 96, label %match.arm.55 + i64 97, label %match.arm.55 + i64 37, label %match.arm.56 + i64 38, label %match.arm.56 + i64 54, label %match.arm.56 + i64 70, label %match.arm.56 + i64 71, label %match.arm.56 + i64 51, label %match.arm.57 + i64 64, label %match.arm.57 + i64 75, label %match.arm.57 i64 35, label %match.arm.59 - i64 55, label %match.arm.59 + i64 81, label %match.arm.59 + i64 87, label %match.arm.59 + i64 88, label %match.arm.59 + i64 92, label %match.arm.59 + i64 109, label %match.arm.59 i64 36, label %match.arm.60 - i64 47, label %match.arm.60 + i64 60, label %match.arm.60 + i64 77, label %match.arm.60 + i64 85, label %match.arm.60 + i64 102, label %match.arm.60 i64 18, label %match.arm.61 i64 21, label %match.arm.61 i64 23, label %match.arm.61 @@ -1226,32 +1618,49 @@ entry: i64 29, label %match.arm.61 i64 31, label %match.arm.61 i64 33, label %match.arm.61 - i64 42, label %match.arm.61 - i64 43, label %match.arm.61 + i64 40, label %match.arm.61 i64 44, label %match.arm.61 - i64 45, label %match.arm.61 - i64 46, label %match.arm.61 - i64 48, label %match.arm.61 + i64 47, label %match.arm.61 i64 49, label %match.arm.61 i64 50, label %match.arm.61 - i64 51, label %match.arm.61 - i64 52, label %match.arm.61 - i64 53, label %match.arm.61 - i64 54, label %match.arm.61 i64 56, label %match.arm.61 i64 57, label %match.arm.61 i64 58, label %match.arm.61 i64 59, label %match.arm.61 - i64 37, label %match.arm.62 + i64 62, label %match.arm.61 + i64 67, label %match.arm.61 + i64 74, label %match.arm.61 + i64 83, label %match.arm.61 + i64 86, label %match.arm.61 + i64 90, label %match.arm.61 + i64 98, label %match.arm.61 + i64 99, label %match.arm.61 + i64 100, label %match.arm.61 + i64 101, label %match.arm.61 + i64 103, label %match.arm.61 + i64 104, label %match.arm.61 + i64 105, label %match.arm.61 + i64 106, label %match.arm.61 + i64 107, label %match.arm.61 + i64 108, label %match.arm.61 + i64 110, label %match.arm.61 + i64 111, label %match.arm.61 + i64 112, label %match.arm.61 + i64 113, label %match.arm.61 + i64 41, label %match.arm.62 + i64 42, label %match.arm.62 + i64 46, label %match.arm.62 + i64 91, label %match.arm.62 + i64 93, label %match.arm.62 i64 13, label %match.arm.63 ] -match.merge.49: ; preds = %dispatch.merge.325, %dispatch.merge.214, %dispatch.merge.200, %dispatch.merge.186, %dispatch.merge.106, %float.merge.95, %if.merge.67, %match.unr.64, %match.arm.63, %match.arm.53, %match.arm.52, %match.arm.50 +match.merge.49: ; preds = %dispatch.merge.532, %dispatch.merge.369, %dispatch.merge.337, %dispatch.merge.299, %dispatch.merge.282, %dispatch.merge.106, %float.merge.95, %if.merge.67, %match.unr.64, %match.arm.63, %match.arm.57, %match.arm.53, %match.arm.52, %match.arm.50 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.50: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.49 match.arm.51: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1260,7 +1669,7 @@ match.arm.51: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [87 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [177 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.65, label %if.else.66 @@ -1288,7 +1697,7 @@ match.arm.54: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.93, label %fN.unbox.94 -match.arm.55: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.55: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1302,85 +1711,143 @@ match.arm.55: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.114 i64 32, label %dispatch.case.115 i64 34, label %dispatch.case.116 - i64 38, label %dispatch.case.117 - i64 39, label %dispatch.case.118 - i64 40, label %dispatch.case.119 - i64 41, label %dispatch.case.120 + i64 39, label %dispatch.case.117 + i64 43, label %dispatch.case.118 + i64 45, label %dispatch.case.119 + i64 48, label %dispatch.case.120 + i64 52, label %dispatch.case.121 + i64 53, label %dispatch.case.122 + i64 55, label %dispatch.case.123 + i64 61, label %dispatch.case.124 + i64 66, label %dispatch.case.125 + i64 72, label %dispatch.case.126 + i64 76, label %dispatch.case.127 + i64 78, label %dispatch.case.128 + i64 79, label %dispatch.case.129 + i64 80, label %dispatch.case.130 + i64 82, label %dispatch.case.131 + i64 89, label %dispatch.case.132 + i64 94, label %dispatch.case.133 + i64 95, label %dispatch.case.134 + i64 96, label %dispatch.case.135 + i64 97, label %dispatch.case.136 ] -match.arm.56: ; No predecessors! - unreachable +match.arm.56: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.283 [ + i64 37, label %dispatch.case.284 + i64 38, label %dispatch.case.285 + i64 54, label %dispatch.case.286 + i64 70, label %dispatch.case.287 + i64 71, label %dispatch.case.288 + ] -match.arm.57: ; No predecessors! - unreachable +match.arm.57: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.49 match.arm.58: ; No predecessors! unreachable -match.arm.59: ; preds = %entry, %entry +match.arm.59: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.187 [ - i64 35, label %dispatch.case.188 - i64 55, label %dispatch.case.189 + switch i64 %ua.raw29, label %dispatch.default.300 [ + i64 35, label %dispatch.case.301 + i64 81, label %dispatch.case.302 + i64 87, label %dispatch.case.303 + i64 88, label %dispatch.case.304 + i64 92, label %dispatch.case.305 + i64 109, label %dispatch.case.306 ] -match.arm.60: ; preds = %entry, %entry +match.arm.60: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.201 [ - i64 36, label %dispatch.case.202 - i64 47, label %dispatch.case.203 + switch i64 %ua.raw33, label %dispatch.default.338 [ + i64 36, label %dispatch.case.339 + i64 60, label %dispatch.case.340 + i64 77, label %dispatch.case.341 + i64 85, label %dispatch.case.342 + i64 102, label %dispatch.case.343 ] -match.arm.61: ; 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 +match.arm.61: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.215 [ - i64 18, label %dispatch.case.216 - i64 21, label %dispatch.case.217 - i64 23, label %dispatch.case.218 - i64 25, label %dispatch.case.219 - i64 28, label %dispatch.case.220 - i64 29, label %dispatch.case.221 - i64 31, label %dispatch.case.222 - i64 33, label %dispatch.case.223 - i64 42, label %dispatch.case.224 - i64 43, label %dispatch.case.225 - i64 44, label %dispatch.case.226 - i64 45, label %dispatch.case.227 - i64 46, label %dispatch.case.228 - i64 48, label %dispatch.case.229 - i64 49, label %dispatch.case.230 - i64 50, label %dispatch.case.231 - i64 51, label %dispatch.case.232 - i64 52, label %dispatch.case.233 - i64 53, label %dispatch.case.234 - i64 54, label %dispatch.case.235 - i64 56, label %dispatch.case.236 - i64 57, label %dispatch.case.237 - i64 58, label %dispatch.case.238 - i64 59, label %dispatch.case.239 + switch i64 %ua.raw37, label %dispatch.default.370 [ + i64 18, label %dispatch.case.371 + i64 21, label %dispatch.case.372 + i64 23, label %dispatch.case.373 + i64 25, label %dispatch.case.374 + i64 28, label %dispatch.case.375 + i64 29, label %dispatch.case.376 + i64 31, label %dispatch.case.377 + i64 33, label %dispatch.case.378 + i64 40, label %dispatch.case.379 + i64 44, label %dispatch.case.380 + i64 47, label %dispatch.case.381 + i64 49, label %dispatch.case.382 + i64 50, label %dispatch.case.383 + i64 56, label %dispatch.case.384 + i64 57, label %dispatch.case.385 + i64 58, label %dispatch.case.386 + i64 59, label %dispatch.case.387 + i64 62, label %dispatch.case.388 + i64 67, label %dispatch.case.389 + i64 74, label %dispatch.case.390 + i64 83, label %dispatch.case.391 + i64 86, label %dispatch.case.392 + i64 90, label %dispatch.case.393 + i64 98, label %dispatch.case.394 + i64 99, label %dispatch.case.395 + i64 100, label %dispatch.case.396 + i64 101, label %dispatch.case.397 + i64 103, label %dispatch.case.398 + i64 104, label %dispatch.case.399 + i64 105, label %dispatch.case.400 + i64 106, label %dispatch.case.401 + i64 107, label %dispatch.case.402 + i64 108, label %dispatch.case.403 + i64 110, label %dispatch.case.404 + i64 111, label %dispatch.case.405 + i64 112, label %dispatch.case.406 + i64 113, label %dispatch.case.407 ] -match.arm.62: ; preds = %entry +match.arm.62: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw32 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw32, label %dispatch.default.326 [ - i64 37, label %dispatch.case.327 + switch i64 %ua.raw41, label %dispatch.default.533 [ + i64 41, label %dispatch.case.534 + i64 42, label %dispatch.case.535 + i64 46, label %dispatch.case.536 + i64 91, label %dispatch.case.537 + i64 93, label %dispatch.case.538 ] match.arm.63: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag36 = extractvalue { i64, i64 } %loadN, 0 - %refl.val37 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype38 = icmp eq i64 %refl.tag36, 13 - %refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36 - %tn.gep = getelementptr inbounds [87 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [177 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.49 @@ -1390,15 +1857,15 @@ match.unr.64: ; preds = %entry if.then.65: ; preds = %match.arm.51 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.67 if.else.66: ; preds = %match.arm.51 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw44 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.67 @@ -1406,16 +1873,16 @@ if.merge.67: ; preds = %if.else.66, %if.the br label %match.merge.49 f32.unbox.93: ; preds = %match.arm.54 - %ua.raw46 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw46 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.95 f64.unbox.94: ; preds = %match.arm.54 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw47 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.95 @@ -1425,362 +1892,710 @@ float.merge.95: ; preds = %fN.unbox.94, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.49 -dispatch.merge.106: ; preds = %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.default.107 +dispatch.merge.106: ; preds = %dispatch.case.136, %dispatch.case.135, %dispatch.case.134, %dispatch.case.133, %dispatch.case.132, %dispatch.case.131, %dispatch.case.130, %dispatch.case.129, %dispatch.case.128, %dispatch.case.127, %dispatch.case.126, %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.default.107 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.49 dispatch.default.107: ; preds = %match.arm.55 - store { ptr, i64 } { ptr @str.113, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.320, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.108: ; preds = %match.arm.55 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.109: ; preds = %match.arm.55 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load {}, ptr %ua.ptr56, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.110: ; preds = %match.arm.55 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.111: ; preds = %match.arm.55 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.112: ; preds = %match.arm.55 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, ptr, ptr }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load69) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.113: ; preds = %match.arm.55 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.114: ; preds = %match.arm.55 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.115: ; preds = %match.arm.55 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.116: ; preds = %match.arm.55 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.117: ; preds = %match.arm.55 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load { { float, i1 }, { float, i1 } }, ptr %ua.ptr88, align 4 - %callN = call { ptr, i64 } @struct_to_string__ProposedSize(ptr %0, { { float, i1 }, { float, i1 } } %ua.load89) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.118: ; preds = %match.arm.55 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load { ptr, ptr }, ptr %ua.ptr92, align 8 - %callN = call { ptr, i64 } @struct_to_string__Sizable(ptr %0, { ptr, ptr } %ua.load93) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.119: ; preds = %match.arm.55 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load { ptr }, ptr %ua.ptr96, align 8 - %callN = call { ptr, i64 } @struct_to_string____Sizable__Vtable(ptr %0, { ptr } %ua.load97) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.120: ; preds = %match.arm.55 - %ua.raw99 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr100 = inttoptr i64 %ua.raw99 to ptr - %ua.load101 = load {}, ptr %ua.ptr100, align 1 - %callN = call { ptr, i64 } @struct_to_string__Widget(ptr %0, {} %ua.load101) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 -dispatch.merge.186: ; preds = %dispatch.case.189, %dispatch.case.188, %dispatch.default.187 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.49 - -dispatch.default.187: ; preds = %match.arm.59 - store { ptr, i64 } { ptr @str.114, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.186 - -dispatch.case.188: ; preds = %match.arm.59 - %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr - %ua.load106 = load [4 x i64], ptr %ua.ptr105, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load106) +dispatch.case.121: ; preds = %match.arm.55 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.186 + br label %dispatch.merge.106 -dispatch.case.189: ; preds = %match.arm.59 - %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr - %ua.load110 = load [1 x { i64, i64 }], ptr %ua.ptr109, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load110) +dispatch.case.122: ; preds = %match.arm.55 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.186 + br label %dispatch.merge.106 -dispatch.merge.200: ; preds = %dispatch.case.203, %dispatch.case.202, %dispatch.default.201 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.49 - -dispatch.default.201: ; preds = %match.arm.60 - store { ptr, i64 } { ptr @str.115, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.200 - -dispatch.case.202: ; preds = %match.arm.60 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr114 = inttoptr i64 %ua.raw113 to ptr - %ua.load115 = load { ptr, i64 }, ptr %ua.ptr114, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load115) +dispatch.case.123: ; preds = %match.arm.55 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.200 + br label %dispatch.merge.106 -dispatch.case.203: ; preds = %match.arm.60 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr118 = inttoptr i64 %ua.raw117 to ptr - %ua.load119 = load { ptr, i64 }, ptr %ua.ptr118, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load119) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.200 - -dispatch.merge.214: ; preds = %dispatch.case.239, %dispatch.case.238, %dispatch.case.237, %dispatch.case.236, %dispatch.case.235, %dispatch.case.234, %dispatch.case.233, %dispatch.case.232, %dispatch.case.231, %dispatch.case.230, %dispatch.case.229, %dispatch.case.228, %dispatch.case.227, %dispatch.case.226, %dispatch.case.225, %dispatch.case.224, %dispatch.case.223, %dispatch.case.222, %dispatch.case.221, %dispatch.case.220, %dispatch.case.219, %dispatch.case.218, %dispatch.case.217, %dispatch.case.216, %dispatch.default.215 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - store { ptr, i64 } %loadN, ptr %allocaN, align 8 - br label %match.merge.49 - -dispatch.default.215: ; preds = %match.arm.61 - store { ptr, i64 } { ptr @str.116, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.216: ; preds = %match.arm.61 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw122 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.217: ; preds = %match.arm.61 +dispatch.case.124: ; preds = %match.arm.55 %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 - %iNp125 = inttoptr i64 %ua.raw124 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp125) + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.218: ; preds = %match.arm.61 - %ua.raw127 = extractvalue { i64, i64 } %loadN, 1 - %iNp128 = inttoptr i64 %ua.raw127 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp128) +dispatch.case.125: ; preds = %match.arm.55 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.219: ; preds = %match.arm.61 - %ua.raw130 = extractvalue { i64, i64 } %loadN, 1 - %iNp131 = inttoptr i64 %ua.raw130 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp131) +dispatch.case.126: ; preds = %match.arm.55 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.220: ; preds = %match.arm.61 - %ua.raw133 = extractvalue { i64, i64 } %loadN, 1 - %iNp134 = inttoptr i64 %ua.raw133 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp134) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.221: ; preds = %match.arm.61 +dispatch.case.127: ; preds = %match.arm.55 %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 - %iNp137 = inttoptr i64 %ua.raw136 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp137) + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.222: ; preds = %match.arm.61 - %ua.raw139 = extractvalue { i64, i64 } %loadN, 1 - %iNp140 = inttoptr i64 %ua.raw139 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp140) +dispatch.case.128: ; preds = %match.arm.55 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.223: ; preds = %match.arm.61 - %ua.raw142 = extractvalue { i64, i64 } %loadN, 1 - %iNp143 = inttoptr i64 %ua.raw142 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp143) +dispatch.case.129: ; preds = %match.arm.55 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.224: ; preds = %match.arm.61 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Widget(ptr %0, ptr %iNp146) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.225: ; preds = %match.arm.61 +dispatch.case.130: ; preds = %match.arm.55 %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp149) + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.226: ; preds = %match.arm.61 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp152) +dispatch.case.131: ; preds = %match.arm.55 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.227: ; preds = %match.arm.61 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp155) +dispatch.case.132: ; preds = %match.arm.55 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.228: ; preds = %match.arm.61 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp158) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.229: ; preds = %match.arm.61 +dispatch.case.133: ; preds = %match.arm.55 %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp161) + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { { float, i1 }, { float, i1 } }, ptr %ua.ptr161, align 4 + %callN = call { ptr, i64 } @struct_to_string__ProposedSize(ptr %0, { { float, i1 }, { float, i1 } } %ua.load162) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.230: ; preds = %match.arm.61 - %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 - %iNp164 = inttoptr i64 %ua.raw163 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp164) +dispatch.case.134: ; preds = %match.arm.55 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load { ptr, ptr }, ptr %ua.ptr165, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sizable(ptr %0, { ptr, ptr } %ua.load166) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.231: ; preds = %match.arm.61 - %ua.raw166 = extractvalue { i64, i64 } %loadN, 1 - %iNp167 = inttoptr i64 %ua.raw166 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp167) +dispatch.case.135: ; preds = %match.arm.55 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load { ptr }, ptr %ua.ptr169, align 8 + %callN = call { ptr, i64 } @struct_to_string____Sizable__Vtable(ptr %0, { ptr } %ua.load170) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.232: ; preds = %match.arm.61 - %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 - %iNp170 = inttoptr i64 %ua.raw169 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp170) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.233: ; preds = %match.arm.61 +dispatch.case.136: ; preds = %match.arm.55 %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 - %iNp173 = inttoptr i64 %ua.raw172 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ProposedSize(ptr %0, ptr %iNp173) + %ua.ptr173 = inttoptr i64 %ua.raw172 to ptr + %ua.load174 = load {}, ptr %ua.ptr173, align 1 + %callN = call { ptr, i64 } @struct_to_string__Widget(ptr %0, {} %ua.load174) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 + br label %dispatch.merge.106 -dispatch.case.234: ; preds = %match.arm.61 - %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 - %iNp176 = inttoptr i64 %ua.raw175 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp176) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.235: ; preds = %match.arm.61 - %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 - %iNp179 = inttoptr i64 %ua.raw178 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp179) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.236: ; preds = %match.arm.61 - %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 - %iNp182 = inttoptr i64 %ua.raw181 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp182) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.237: ; preds = %match.arm.61 - %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 - %iNp185 = inttoptr i64 %ua.raw184 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Sizable(ptr %0, ptr %iNp185) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.238: ; preds = %match.arm.61 - %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 - %iNp188 = inttoptr i64 %ua.raw187 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Widget(ptr %0, ptr %iNp188) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.case.239: ; preds = %match.arm.61 - %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 - %iNp191 = inttoptr i64 %ua.raw190 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr___Sizable__Vtable(ptr %0, ptr %iNp191) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.214 - -dispatch.merge.325: ; preds = %dispatch.case.327, %dispatch.default.326 +dispatch.merge.282: ; preds = %dispatch.case.288, %dispatch.case.287, %dispatch.case.286, %dispatch.case.285, %dispatch.case.284, %dispatch.default.283 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.49 -dispatch.default.326: ; preds = %match.arm.62 - store { ptr, i64 } { ptr @str.117, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.325 +dispatch.default.283: ; preds = %match.arm.56 + store { ptr, i64 } { ptr @str.321, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.282 -dispatch.case.327: ; preds = %match.arm.62 +dispatch.case.284: ; preds = %match.arm.56 + %ua.raw177 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw177) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.285: ; preds = %match.arm.56 + %ua.raw179 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw179) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.286: ; preds = %match.arm.56 + %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr182 = inttoptr i64 %ua.raw181 to ptr + %ua.load183 = load { i64, [24 x i8] }, ptr %ua.ptr182, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load183) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.287: ; preds = %match.arm.56 + %ua.raw185 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw185) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.case.288: ; preds = %match.arm.56 + %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw187) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.282 + +dispatch.merge.299: ; preds = %dispatch.case.306, %dispatch.case.305, %dispatch.case.304, %dispatch.case.303, %dispatch.case.302, %dispatch.case.301, %dispatch.default.300 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.49 + +dispatch.default.300: ; preds = %match.arm.59 + store { ptr, i64 } { ptr @str.322, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.case.301: ; preds = %match.arm.59 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [4 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.case.302: ; preds = %match.arm.59 %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr - %ua.load196 = load { float, i1 }, ptr %ua.ptr195, align 4 - %callN = call { ptr, i64 } @optional_to_string__opt_f32(ptr %0, { float, i1 } %ua.load196) + %ua.load196 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load196) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.325 + br label %dispatch.merge.299 + +dispatch.case.303: ; preds = %match.arm.59 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [8 x i64], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.case.304: ; preds = %match.arm.59 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [64 x i8], ptr %ua.ptr203, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load204) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.case.305: ; preds = %match.arm.59 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [64 x i64], ptr %ua.ptr207, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load208) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.case.306: ; preds = %match.arm.59 + %ua.raw210 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr211 = inttoptr i64 %ua.raw210 to ptr + %ua.load212 = load [1 x { i64, i64 }], ptr %ua.ptr211, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load212) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.299 + +dispatch.merge.337: ; preds = %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.case.340, %dispatch.case.339, %dispatch.default.338 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.49 + +dispatch.default.338: ; preds = %match.arm.60 + store { ptr, i64 } { ptr @str.323, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.339: ; preds = %match.arm.60 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.340: ; preds = %match.arm.60 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.341: ; preds = %match.arm.60 + %ua.raw223 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr224 = inttoptr i64 %ua.raw223 to ptr + %ua.load225 = load { ptr, i64 }, ptr %ua.ptr224, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load225) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.342: ; preds = %match.arm.60 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.case.343: ; preds = %match.arm.60 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr232 = inttoptr i64 %ua.raw231 to ptr + %ua.load233 = load { ptr, i64 }, ptr %ua.ptr232, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load233) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.337 + +dispatch.merge.369: ; preds = %dispatch.case.407, %dispatch.case.406, %dispatch.case.405, %dispatch.case.404, %dispatch.case.403, %dispatch.case.402, %dispatch.case.401, %dispatch.case.400, %dispatch.case.399, %dispatch.case.398, %dispatch.case.397, %dispatch.case.396, %dispatch.case.395, %dispatch.case.394, %dispatch.case.393, %dispatch.case.392, %dispatch.case.391, %dispatch.case.390, %dispatch.case.389, %dispatch.case.388, %dispatch.case.387, %dispatch.case.386, %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.default.370 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.49 + +dispatch.default.370: ; preds = %match.arm.61 + store { ptr, i64 } { ptr @str.324, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.371: ; preds = %match.arm.61 + %ua.raw236 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw236 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.372: ; preds = %match.arm.61 + %ua.raw238 = extractvalue { i64, i64 } %loadN, 1 + %iNp239 = inttoptr i64 %ua.raw238 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp239) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.373: ; preds = %match.arm.61 + %ua.raw241 = extractvalue { i64, i64 } %loadN, 1 + %iNp242 = inttoptr i64 %ua.raw241 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp242) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.374: ; preds = %match.arm.61 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp245 = inttoptr i64 %ua.raw244 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp245) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.375: ; preds = %match.arm.61 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %iNp248 = inttoptr i64 %ua.raw247 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp248) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.376: ; preds = %match.arm.61 + %ua.raw250 = extractvalue { i64, i64 } %loadN, 1 + %iNp251 = inttoptr i64 %ua.raw250 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp251) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.377: ; preds = %match.arm.61 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %iNp254 = inttoptr i64 %ua.raw253 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp254) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.378: ; preds = %match.arm.61 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %iNp257 = inttoptr i64 %ua.raw256 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp257) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.379: ; preds = %match.arm.61 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %iNp260 = inttoptr i64 %ua.raw259 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp260) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.380: ; preds = %match.arm.61 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %iNp263 = inttoptr i64 %ua.raw262 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp263) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.381: ; preds = %match.arm.61 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp266 = inttoptr i64 %ua.raw265 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp266) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.382: ; preds = %match.arm.61 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %iNp269 = inttoptr i64 %ua.raw268 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp269) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.383: ; preds = %match.arm.61 + %ua.raw271 = extractvalue { i64, i64 } %loadN, 1 + %iNp272 = inttoptr i64 %ua.raw271 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp272) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.384: ; preds = %match.arm.61 + %ua.raw274 = extractvalue { i64, i64 } %loadN, 1 + %iNp275 = inttoptr i64 %ua.raw274 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp275) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.385: ; preds = %match.arm.61 + %ua.raw277 = extractvalue { i64, i64 } %loadN, 1 + %iNp278 = inttoptr i64 %ua.raw277 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp278) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.386: ; preds = %match.arm.61 + %ua.raw280 = extractvalue { i64, i64 } %loadN, 1 + %iNp281 = inttoptr i64 %ua.raw280 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp281) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.387: ; preds = %match.arm.61 + %ua.raw283 = extractvalue { i64, i64 } %loadN, 1 + %iNp284 = inttoptr i64 %ua.raw283 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp284) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.388: ; preds = %match.arm.61 + %ua.raw286 = extractvalue { i64, i64 } %loadN, 1 + %iNp287 = inttoptr i64 %ua.raw286 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp287) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.389: ; preds = %match.arm.61 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp290) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.390: ; preds = %match.arm.61 + %ua.raw292 = extractvalue { i64, i64 } %loadN, 1 + %iNp293 = inttoptr i64 %ua.raw292 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp293) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.391: ; preds = %match.arm.61 + %ua.raw295 = extractvalue { i64, i64 } %loadN, 1 + %iNp296 = inttoptr i64 %ua.raw295 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp296) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.392: ; preds = %match.arm.61 + %ua.raw298 = extractvalue { i64, i64 } %loadN, 1 + %iNp299 = inttoptr i64 %ua.raw298 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp299) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.393: ; preds = %match.arm.61 + %ua.raw301 = extractvalue { i64, i64 } %loadN, 1 + %iNp302 = inttoptr i64 %ua.raw301 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp302) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.394: ; preds = %match.arm.61 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Widget(ptr %0, ptr %iNp305) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.395: ; preds = %match.arm.61 + %ua.raw307 = extractvalue { i64, i64 } %loadN, 1 + %iNp308 = inttoptr i64 %ua.raw307 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp308) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.396: ; preds = %match.arm.61 + %ua.raw310 = extractvalue { i64, i64 } %loadN, 1 + %iNp311 = inttoptr i64 %ua.raw310 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp311) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.397: ; preds = %match.arm.61 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %iNp314 = inttoptr i64 %ua.raw313 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp314) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.398: ; preds = %match.arm.61 + %ua.raw316 = extractvalue { i64, i64 } %loadN, 1 + %iNp317 = inttoptr i64 %ua.raw316 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp317) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.399: ; preds = %match.arm.61 + %ua.raw319 = extractvalue { i64, i64 } %loadN, 1 + %iNp320 = inttoptr i64 %ua.raw319 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp320) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.400: ; preds = %match.arm.61 + %ua.raw322 = extractvalue { i64, i64 } %loadN, 1 + %iNp323 = inttoptr i64 %ua.raw322 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.401: ; preds = %match.arm.61 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %iNp326 = inttoptr i64 %ua.raw325 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ProposedSize(ptr %0, ptr %iNp326) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.402: ; preds = %match.arm.61 + %ua.raw328 = extractvalue { i64, i64 } %loadN, 1 + %iNp329 = inttoptr i64 %ua.raw328 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_f32(ptr %0, ptr %iNp329) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.403: ; preds = %match.arm.61 + %ua.raw331 = extractvalue { i64, i64 } %loadN, 1 + %iNp332 = inttoptr i64 %ua.raw331 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_f64(ptr %0, ptr %iNp332) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.404: ; preds = %match.arm.61 + %ua.raw334 = extractvalue { i64, i64 } %loadN, 1 + %iNp335 = inttoptr i64 %ua.raw334 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp335) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.405: ; preds = %match.arm.61 + %ua.raw337 = extractvalue { i64, i64 } %loadN, 1 + %iNp338 = inttoptr i64 %ua.raw337 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sizable(ptr %0, ptr %iNp338) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.406: ; preds = %match.arm.61 + %ua.raw340 = extractvalue { i64, i64 } %loadN, 1 + %iNp341 = inttoptr i64 %ua.raw340 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_Widget(ptr %0, ptr %iNp341) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.case.407: ; preds = %match.arm.61 + %ua.raw343 = extractvalue { i64, i64 } %loadN, 1 + %iNp344 = inttoptr i64 %ua.raw343 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr___Sizable__Vtable(ptr %0, ptr %iNp344) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.369 + +dispatch.merge.532: ; preds = %dispatch.case.538, %dispatch.case.537, %dispatch.case.536, %dispatch.case.535, %dispatch.case.534, %dispatch.default.533 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.49 + +dispatch.default.533: ; preds = %match.arm.62 + store { ptr, i64 } { ptr @str.325, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.532 + +dispatch.case.534: ; preds = %match.arm.62 + %ua.raw347 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr348 = inttoptr i64 %ua.raw347 to ptr + %ua.load349 = load { { i32 }, i1 }, ptr %ua.ptr348, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load349) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.532 + +dispatch.case.535: ; preds = %match.arm.62 + %ua.raw351 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr352 = inttoptr i64 %ua.raw351 to ptr + %ua.load353 = load { { ptr, i64 }, i1 }, ptr %ua.ptr352, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load353) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.532 + +dispatch.case.536: ; preds = %match.arm.62 + %ua.raw355 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr356 = inttoptr i64 %ua.raw355 to ptr + %ua.load357 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr356, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load357) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.532 + +dispatch.case.537: ; preds = %match.arm.62 + %ua.raw359 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr360 = inttoptr i64 %ua.raw359 to ptr + %ua.load361 = load { [64 x i8], i1 }, ptr %ua.ptr360, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load361) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.532 + +dispatch.case.538: ; preds = %match.arm.62 + %ua.raw363 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr364 = inttoptr i64 %ua.raw363 to ptr + %ua.load365 = load { float, i1 }, ptr %ua.ptr364, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_f32(ptr %0, { float, i1 } %ua.load365) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.532 } ; Function Attrs: nounwind @@ -1789,7 +2604,7 @@ 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.118, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.326, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1885,7 +2700,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, 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 @@ -1893,7 +2708,7 @@ if.then.12: ; preds = %if.then.9 %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.120, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.328, 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 @@ -1903,13 +2718,13 @@ if.then.12: ; preds = %if.then.9 %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.121, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.329, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.122, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.330, 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 @@ -1917,7 +2732,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.123, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.331, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1931,7 +2746,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.124, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.332, 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 @@ -1939,7 +2754,7 @@ if.then.23: ; preds = %if.else.10 %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.125, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.333, 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 @@ -1950,7 +2765,7 @@ if.then.23: ; preds = %if.else.10 %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.126, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.334, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2007,7 +2822,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.335, 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 @@ -2015,7 +2830,7 @@ if.then.32: ; preds = %if.then.29 %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.128, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.336, 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 @@ -2026,7 +2841,7 @@ if.then.32: ; preds = %if.then.29 %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.129, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.337, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2046,7 +2861,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, 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 @@ -2054,7 +2869,7 @@ if.then.35: ; preds = %while.exit.2 %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.131, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, 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 @@ -2065,7 +2880,7 @@ if.then.35: ; preds = %while.exit.2 %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.132, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2142,6 +2957,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal float @direct_size(ptr %0, { { float, i1 }, { float, i1 } } %1) #0 { entry: @@ -2341,14 +3894,14 @@ entry: define internal void @print__ct_safaf8808e13137c9__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.133, i64 21 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.341, i64 21 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.134, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.342, i64 0 }, ptr %allocaN, align 8 %load = 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 21) @@ -2364,7 +3917,7 @@ entry: ; 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.135, i64 21 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.343, i64 21 }) ret { ptr, i64 } %call } @@ -2372,7 +3925,7 @@ entry: define internal void @print__ct_sa9ba8ae6123c77ba__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.136, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.344, i64 8 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2389,7 +3942,7 @@ entry: %gepN = getelementptr inbounds { 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.137, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.345, 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) @@ -2418,7 +3971,7 @@ entry: ; 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.138, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.346, i64 8 }) ret { ptr, i64 } %call } @@ -2426,7 +3979,7 @@ entry: define internal void @print__ct_s9af257f36f17eef5__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.139, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.347, i64 8 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2443,7 +3996,7 @@ entry: %gepN = getelementptr inbounds { 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.140, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.348, 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) @@ -2472,7 +4025,7 @@ entry: ; 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.141, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.349, i64 8 }) ret { ptr, i64 } %call } @@ -2480,7 +4033,7 @@ entry: define internal void @print__ct_scf4d64fa60dbbfb4__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.142, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.350, i64 8 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2497,7 +4050,7 @@ entry: %gepN = getelementptr inbounds { 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.143, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.351, 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) @@ -2526,7 +4079,7 @@ entry: ; 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.144, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.352, i64 8 }) ret { ptr, i64 } %call } @@ -2534,7 +4087,7 @@ entry: define internal void @print__ct_s1c39af9abf6a4a07__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.145, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.353, i64 8 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2551,7 +4104,7 @@ entry: %gepN = getelementptr inbounds { 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.146, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.354, 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) @@ -2580,7 +4133,7 @@ entry: ; 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.147, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.355, i64 8 }) ret { ptr, i64 } %call } @@ -2588,14 +4141,14 @@ entry: define internal void @print__ct_s1982bb0332b7dace__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.148, i64 26 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.356, i64 26 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.149, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.357, i64 0 }, ptr %allocaN, align 8 %load = 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 26) @@ -2611,7 +4164,7 @@ entry: ; 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.150, i64 26 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.358, i64 26 }) ret { ptr, i64 } %call } @@ -2626,7 +4179,7 @@ entry: define internal void @print__ct_s328a3cec2430526b__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.151, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.359, i64 8 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2643,7 +4196,7 @@ entry: %gepN = getelementptr inbounds { 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.152, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.360, 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) @@ -2672,7 +4225,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_6(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.153, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.361, i64 8 }) ret { ptr, i64 } %call } @@ -2680,7 +4233,7 @@ entry: define internal void @print__ct_sad2d86d80b81462__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.154, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.362, i64 8 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2697,7 +4250,7 @@ entry: %gepN = getelementptr inbounds { 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.155, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.363, 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) @@ -2726,7 +4279,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_7(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.156, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.364, i64 8 }) ret { ptr, i64 } %call } @@ -2734,7 +4287,7 @@ entry: define internal void @print__ct_s356f7a97ffec319e__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.157, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.365, i64 8 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2751,7 +4304,7 @@ entry: %gepN = getelementptr inbounds { 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.158, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.366, 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) @@ -2780,7 +4333,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_8(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.159, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.367, i64 8 }) ret { ptr, i64 } %call } @@ -2788,7 +4341,7 @@ entry: define internal void @print__ct_sc1a70412aecae073__pack_f32(ptr %0, float %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.160, i64 8 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.368, i64 8 }, ptr %alloca, align 8 %allocaN = alloca float, align 4 store float %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2805,7 +4358,7 @@ entry: %gepN = getelementptr inbounds { 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.161, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.369, 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) @@ -2834,7 +4387,7 @@ entry: ; Function Attrs: nounwind define internal { ptr, i64 } @__insert_9(ptr %0) #0 { entry: - %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.162, i64 8 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.370, i64 8 }) ret { ptr, i64 } %call } @@ -2845,35 +4398,35 @@ entry: %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.163, i64 15 }, { ptr, i64 } { ptr @str.164, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.371, i64 15 }, { ptr, i64 } { ptr @str.372, 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.121 + br label %while.hdr.137 -while.hdr.121: ; preds = %fv.merge, %entry +while.hdr.137: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.122, label %while.exit.123 + br i1 %icmp, label %while.body.138, label %while.exit.139 -while.body.122: ; preds = %while.hdr.121 +while.body.138: ; preds = %while.hdr.137 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.124, label %if.merge.125 + br i1 %icmpN, label %if.then.140, label %if.merge.141 -while.exit.123: ; preds = %while.hdr.121 +while.exit.139: ; preds = %while.hdr.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, i64 1 }) ret { ptr, i64 } %callN -if.then.124: ; preds = %while.body.122 +if.then.140: ; preds = %while.body.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.374, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.125 + br label %if.merge.141 -if.merge.125: ; preds = %if.then.124, %while.body.122 +if.merge.141: ; preds = %if.then.140, %while.body.138 %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 @@ -2881,7 +4434,7 @@ if.merge.125: ; preds = %if.then.124, %while %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.170, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.378, 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 @@ -2901,31 +4454,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.121 + br label %while.hdr.137 -fv.default: ; preds = %if.merge.125 +fv.default: ; preds = %if.merge.141 br label %fv.merge -fv.case: ; preds = %if.merge.125 +fv.case: ; preds = %if.merge.141 %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.125 +fv.case17: ; preds = %if.merge.141 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.125 +fv.case20: ; preds = %if.merge.141 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.125 +fv.case24: ; preds = %if.merge.141 %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 @@ -2938,43 +4491,43 @@ 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.171, i64 10 }, { ptr, i64 } { ptr @str.172, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.379, i64 10 }, { ptr, i64 } { ptr @str.380, 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.126 + br label %while.hdr.142 -while.hdr.126: ; preds = %if.merge.130, %entry +while.hdr.142: ; preds = %if.merge.146, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.127, label %while.exit.128 + br i1 %icmp, label %while.body.143, label %while.exit.144 -while.body.127: ; preds = %while.hdr.126 +while.body.143: ; preds = %while.hdr.142 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.129, label %if.merge.130 + br i1 %icmpN, label %if.then.145, label %if.merge.146 -while.exit.128: ; preds = %while.hdr.126 +while.exit.144: ; preds = %while.hdr.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.381, i64 1 }) ret { ptr, i64 } %callN -if.then.129: ; preds = %while.body.127 +if.then.145: ; preds = %while.body.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.130 + br label %if.merge.146 -if.merge.130: ; preds = %if.then.129, %while.body.127 +if.merge.146: ; preds = %if.then.145, %while.body.143 %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.175, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.383, 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.176, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.384, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2985,7 +4538,7 @@ if.merge.130: ; preds = %if.then.129, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.126 + br label %while.hdr.142 } ; Function Attrs: nounwind @@ -2993,43 +4546,43 @@ 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.177, i64 3 }, { ptr, i64 } { ptr @str.178, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.385, i64 3 }, { ptr, i64 } { ptr @str.386, 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.131 + br label %while.hdr.147 -while.hdr.131: ; preds = %fv.merge, %entry +while.hdr.147: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.132, label %while.exit.133 + br i1 %icmp, label %while.body.148, label %while.exit.149 -while.body.132: ; preds = %while.hdr.131 +while.body.148: ; preds = %while.hdr.147 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.134, label %if.merge.135 + br i1 %icmpN, label %if.then.150, label %if.merge.151 -while.exit.133: ; preds = %while.hdr.131 +while.exit.149: ; preds = %while.hdr.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.179, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.387, i64 1 }) ret { ptr, i64 } %callN -if.then.134: ; preds = %while.body.132 +if.then.150: ; preds = %while.body.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.180, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.388, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.135 + br label %if.merge.151 -if.merge.135: ; preds = %if.then.134, %while.body.132 +if.merge.151: ; preds = %if.then.150, %while.body.148 %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.182, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.390, 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.183, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, 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 @@ -3046,12 +4599,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.131 + br label %while.hdr.147 -fv.default: ; preds = %if.merge.135 +fv.default: ; preds = %if.merge.151 br label %fv.merge -fv.case: ; preds = %if.merge.135 +fv.case: ; preds = %if.merge.151 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -3062,43 +4615,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.184, i64 10 }, { ptr, i64 } { ptr @str.185, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.392, i64 10 }, { ptr, i64 } { ptr @str.393, 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.136 + br label %while.hdr.152 -while.hdr.136: ; preds = %fv.merge, %entry +while.hdr.152: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.137, label %while.exit.138 + br i1 %icmp, label %while.body.153, label %while.exit.154 -while.body.137: ; preds = %while.hdr.136 +while.body.153: ; preds = %while.hdr.152 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.139, label %if.merge.140 + br i1 %icmpN, label %if.then.155, label %if.merge.156 -while.exit.138: ; preds = %while.hdr.136 +while.exit.154: ; preds = %while.hdr.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.394, i64 1 }) ret { ptr, i64 } %callN -if.then.139: ; preds = %while.body.137 +if.then.155: ; preds = %while.body.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.187, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.395, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.140 + br label %if.merge.156 -if.merge.140: ; preds = %if.then.139, %while.body.137 +if.merge.156: ; preds = %if.then.155, %while.body.153 %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.190, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.398, 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.191, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.399, 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 @@ -3116,18 +4669,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.136 + br label %while.hdr.152 -fv.default: ; preds = %if.merge.140 +fv.default: ; preds = %if.merge.156 br label %fv.merge -fv.case: ; preds = %if.merge.140 +fv.case: ; preds = %if.merge.156 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.140 +fv.case17: ; preds = %if.merge.156 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -3138,43 +4691,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.192, i64 9 }, { ptr, i64 } { ptr @str.193, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.400, i64 9 }, { ptr, i64 } { ptr @str.401, 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.141 + br label %while.hdr.157 -while.hdr.141: ; preds = %fv.merge, %entry +while.hdr.157: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.142, label %while.exit.143 + br i1 %icmp, label %while.body.158, label %while.exit.159 -while.body.142: ; preds = %while.hdr.141 +while.body.158: ; preds = %while.hdr.157 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.144, label %if.merge.145 + br i1 %icmpN, label %if.then.160, label %if.merge.161 -while.exit.143: ; preds = %while.hdr.141 +while.exit.159: ; preds = %while.hdr.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.194, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.402, i64 1 }) ret { ptr, i64 } %callN -if.then.144: ; preds = %while.body.142 +if.then.160: ; preds = %while.body.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.195, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.403, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.145 + br label %if.merge.161 -if.merge.145: ; preds = %if.then.144, %while.body.142 +if.merge.161: ; preds = %if.then.160, %while.body.158 %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.199, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.407, 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.200, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, 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 @@ -3193,24 +4746,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.141 + br label %while.hdr.157 -fv.default: ; preds = %if.merge.145 +fv.default: ; preds = %if.merge.161 br label %fv.merge -fv.case: ; preds = %if.merge.145 +fv.case: ; preds = %if.merge.161 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.145 +fv.case17: ; preds = %if.merge.161 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.145 +fv.case21: ; preds = %if.merge.161 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -3223,43 +4776,43 @@ 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.201, i64 5 }, { ptr, i64 } { ptr @str.202, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.409, i64 5 }, { ptr, i64 } { ptr @str.410, 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.146 + br label %while.hdr.162 -while.hdr.146: ; preds = %fv.merge, %entry +while.hdr.162: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.147, label %while.exit.148 + br i1 %icmp, label %while.body.163, label %while.exit.164 -while.body.147: ; preds = %while.hdr.146 +while.body.163: ; preds = %while.hdr.162 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.149, label %if.merge.150 + br i1 %icmpN, label %if.then.165, label %if.merge.166 -while.exit.148: ; preds = %while.hdr.146 +while.exit.164: ; preds = %while.hdr.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, i64 1 }) ret { ptr, i64 } %callN -if.then.149: ; preds = %while.body.147 +if.then.165: ; preds = %while.body.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.204, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.150 + br label %if.merge.166 -if.merge.150: ; preds = %if.then.149, %while.body.147 +if.merge.166: ; preds = %if.then.165, %while.body.163 %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.208, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.416, 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.209, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.417, 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 @@ -3278,23 +4831,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.146 + br label %while.hdr.162 -fv.default: ; preds = %if.merge.150 +fv.default: ; preds = %if.merge.166 br label %fv.merge -fv.case: ; preds = %if.merge.150 +fv.case: ; preds = %if.merge.166 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.150 +fv.case17: ; preds = %if.merge.166 %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.150 +fv.case20: ; preds = %if.merge.166 %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 @@ -3307,43 +4860,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.210, i64 8 }, { ptr, i64 } { ptr @str.211, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.418, i64 8 }, { ptr, i64 } { ptr @str.419, 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.151 + br label %while.hdr.167 -while.hdr.151: ; preds = %fv.merge, %entry +while.hdr.167: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.152, label %while.exit.153 + br i1 %icmp, label %while.body.168, label %while.exit.169 -while.body.152: ; preds = %while.hdr.151 +while.body.168: ; preds = %while.hdr.167 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.154, label %if.merge.155 + br i1 %icmpN, label %if.then.170, label %if.merge.171 -while.exit.153: ; preds = %while.hdr.151 +while.exit.169: ; preds = %while.hdr.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 1 }) ret { ptr, i64 } %callN -if.then.154: ; preds = %while.body.152 +if.then.170: ; preds = %while.body.168 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.213, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.421, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.155 + br label %if.merge.171 -if.merge.155: ; preds = %if.then.154, %while.body.152 +if.merge.171: ; preds = %if.then.170, %while.body.168 %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.217, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.425, 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.218, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.426, 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 @@ -3362,23 +4915,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.151 + br label %while.hdr.167 -fv.default: ; preds = %if.merge.155 +fv.default: ; preds = %if.merge.171 br label %fv.merge -fv.case: ; preds = %if.merge.155 +fv.case: ; preds = %if.merge.171 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.155 +fv.case17: ; preds = %if.merge.171 %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.155 +fv.case20: ; preds = %if.merge.171 %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 @@ -3390,43 +4943,43 @@ 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.219, i64 17 }, { ptr, i64 } { ptr @str.220, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.427, i64 17 }, { ptr, i64 } { ptr @str.428, 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.156 + br label %while.hdr.172 -while.hdr.156: ; preds = %fv.merge, %entry +while.hdr.172: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.157, label %while.exit.158 + br i1 %icmp, label %while.body.173, label %while.exit.174 -while.body.157: ; preds = %while.hdr.156 +while.body.173: ; preds = %while.hdr.172 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.159, label %if.merge.160 + br i1 %icmpN, label %if.then.175, label %if.merge.176 -while.exit.158: ; preds = %while.hdr.156 +while.exit.174: ; preds = %while.hdr.172 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.221, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.429, i64 1 }) ret { ptr, i64 } %callN -if.then.159: ; preds = %while.body.157 +if.then.175: ; preds = %while.body.173 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.222, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.430, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.160 + br label %if.merge.176 -if.merge.160: ; preds = %if.then.159, %while.body.157 +if.merge.176: ; preds = %if.then.175, %while.body.173 %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.227, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.435, 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.228, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.436, 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 @@ -3446,29 +4999,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.156 + br label %while.hdr.172 -fv.default: ; preds = %if.merge.160 +fv.default: ; preds = %if.merge.176 br label %fv.merge -fv.case: ; preds = %if.merge.160 +fv.case: ; preds = %if.merge.176 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.160 +fv.case17: ; preds = %if.merge.176 %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.160 +fv.case20: ; preds = %if.merge.176 %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.160 +fv.case23: ; preds = %if.merge.176 %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 @@ -3480,43 +5033,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.229, i64 7 }, { ptr, i64 } { ptr @str.230, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.437, i64 7 }, { ptr, i64 } { ptr @str.438, 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.161 + br label %while.hdr.177 -while.hdr.161: ; preds = %fv.merge, %entry +while.hdr.177: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.162, label %while.exit.163 + br i1 %icmp, label %while.body.178, label %while.exit.179 -while.body.162: ; preds = %while.hdr.161 +while.body.178: ; preds = %while.hdr.177 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.164, label %if.merge.165 + br i1 %icmpN, label %if.then.180, label %if.merge.181 -while.exit.163: ; preds = %while.hdr.161 +while.exit.179: ; preds = %while.hdr.177 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.231, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.439, i64 1 }) ret { ptr, i64 } %callN -if.then.164: ; preds = %while.body.162 +if.then.180: ; preds = %while.body.178 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.232, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.440, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.165 + br label %if.merge.181 -if.merge.165: ; preds = %if.then.164, %while.body.162 +if.merge.181: ; preds = %if.then.180, %while.body.178 %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.235, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.443, 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.236, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.444, 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 %alloca, align 8 @@ -3534,25 +5087,1394 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.161 + br label %while.hdr.177 -fv.default: ; preds = %if.merge.165 +fv.default: ; preds = %if.merge.181 br label %fv.merge -fv.case: ; preds = %if.merge.165 +fv.case: ; preds = %if.merge.181 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.165 +fv.case17: ; preds = %if.merge.181 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.445, i64 4 }, { ptr, i64 } { ptr @str.446, 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.182 + +while.hdr.182: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.183, label %while.exit.184 + +while.body.183: ; preds = %while.hdr.182 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.185, label %if.merge.186 + +while.exit.184: ; preds = %while.hdr.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.447, i64 1 }) + ret { ptr, i64 } %callN + +if.then.185: ; preds = %while.body.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.448, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.186 + +if.merge.186: ; preds = %if.then.185, %while.body.183 + %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.450, 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.451, 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.182 + +fv.default: ; preds = %if.merge.186 + br label %fv.merge + +fv.case: ; preds = %if.merge.186 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.452, i64 10 }, { ptr, i64 } { ptr @str.453, 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.187 + +while.hdr.187: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.188, label %while.exit.189 + +while.body.188: ; preds = %while.hdr.187 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.190, label %if.merge.191 + +while.exit.189: ; preds = %while.hdr.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.454, i64 1 }) + ret { ptr, i64 } %callN + +if.then.190: ; preds = %while.body.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.455, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.191 + +if.merge.191: ; preds = %if.then.190, %while.body.188 + %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.461, 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.462, 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.187 + +fv.default: ; preds = %if.merge.191 + br label %fv.merge + +fv.case: ; preds = %if.merge.191 + %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.191 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.191 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.191 + %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.191 + %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.463, i64 13 }, { ptr, i64 } { ptr @str.464, 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.192 + +while.hdr.192: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.193, label %while.exit.194 + +while.body.193: ; preds = %while.hdr.192 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.195, label %if.merge.196 + +while.exit.194: ; preds = %while.hdr.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.465, i64 1 }) + ret { ptr, i64 } %callN + +if.then.195: ; preds = %while.body.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.466, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.196 + +if.merge.196: ; preds = %if.then.195, %while.body.193 + %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.469, 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.470, 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.192 + +fv.default: ; preds = %if.merge.196 + br label %fv.merge + +fv.case: ; preds = %if.merge.196 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.196 + %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.471, i64 8 }, { ptr, i64 } { ptr @str.472, 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.197 + +while.hdr.197: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.198, label %while.exit.199 + +while.body.198: ; preds = %while.hdr.197 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.200, label %if.merge.201 + +while.exit.199: ; preds = %while.hdr.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.473, i64 1 }) + ret { ptr, i64 } %callN + +if.then.200: ; preds = %while.body.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.474, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.201 + +if.merge.201: ; preds = %if.then.200, %while.body.198 + %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.480, 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.481, 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.197 + +fv.default: ; preds = %if.merge.201 + br label %fv.merge + +fv.case: ; preds = %if.merge.201 + %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.201 + %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.201 + %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.201 + %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.201 + %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.482, i64 5 }, { ptr, i64 } { ptr @str.483, 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.202 + +while.hdr.202: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.203, label %while.exit.204 + +while.body.203: ; preds = %while.hdr.202 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.205, label %if.merge.206 + +while.exit.204: ; preds = %while.hdr.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.484, i64 1 }) + ret { ptr, i64 } %callN + +if.then.205: ; preds = %while.body.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.485, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.206 + +if.merge.206: ; preds = %if.then.205, %while.body.203 + %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.489, 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.490, 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.202 + +fv.default: ; preds = %if.merge.206 + br label %fv.merge + +fv.case: ; preds = %if.merge.206 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.206 + %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.206 + %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.491, i64 6 }, { ptr, i64 } { ptr @str.492, 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.207 + +while.hdr.207: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.208, label %while.exit.209 + +while.body.208: ; preds = %while.hdr.207 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.210, label %if.merge.211 + +while.exit.209: ; preds = %while.hdr.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 1 }) + ret { ptr, i64 } %callN + +if.then.210: ; preds = %while.body.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.494, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.211 + +if.merge.211: ; preds = %if.then.210, %while.body.208 + %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.498, 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.499, 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.207 + +fv.default: ; preds = %if.merge.211 + br label %fv.merge + +fv.case: ; preds = %if.merge.211 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.211 + %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.211 + %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.500, i64 6 }, { ptr, i64 } { ptr @str.501, 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.212 + +while.hdr.212: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.213, label %while.exit.214 + +while.body.213: ; preds = %while.hdr.212 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.215, label %if.merge.216 + +while.exit.214: ; preds = %while.hdr.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.502, i64 1 }) + ret { ptr, i64 } %callN + +if.then.215: ; preds = %while.body.213 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.503, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.216 + +if.merge.216: ; preds = %if.then.215, %while.body.213 + %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.506, 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.507, 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.212 + +fv.default: ; preds = %if.merge.216 + br label %fv.merge + +fv.case: ; preds = %if.merge.216 + %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.216 + %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 54, 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.508, i64 4 }, { ptr, i64 } { ptr @str.509, 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.217 + +while.hdr.217: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.218, label %while.exit.219 + +while.body.218: ; preds = %while.hdr.217 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.220, label %if.merge.221 + +while.exit.219: ; preds = %while.hdr.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.510, i64 1 }) + ret { ptr, i64 } %callN + +if.then.220: ; preds = %while.body.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.511, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.221 + +if.merge.221: ; preds = %if.then.220, %while.body.218 + %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.515, 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.516, 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.217 + +fv.default: ; preds = %if.merge.221 + br label %fv.merge + +fv.case: ; preds = %if.merge.221 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.221 + %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.221 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.517, i64 6 }, { ptr, i64 } { ptr @str.518, 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.222 + +while.hdr.222: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.223, label %while.exit.224 + +while.body.223: ; preds = %while.hdr.222 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.225, label %if.merge.226 + +while.exit.224: ; preds = %while.hdr.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.519, i64 1 }) + ret { ptr, i64 } %callN + +if.then.225: ; preds = %while.body.223 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.520, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.226 + +if.merge.226: ; preds = %if.then.225, %while.body.223 + %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.524, 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.525, 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.222 + +fv.default: ; preds = %if.merge.226 + br label %fv.merge + +fv.case: ; preds = %if.merge.226 + %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.226 + %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.226 + %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 26, i64 undef }, i64 %ba.p2i23, 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.526, i64 12 }, { ptr, i64 } { ptr @str.527, 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.227 + +while.hdr.227: ; preds = %if.merge.231, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.228, label %while.exit.229 + +while.body.228: ; preds = %while.hdr.227 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.230, label %if.merge.231 + +while.exit.229: ; preds = %while.hdr.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.528, i64 1 }) + ret { ptr, i64 } %callN + +if.then.230: ; preds = %while.body.228 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.529, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.231 + +if.merge.231: ; preds = %if.then.230, %while.body.228 + %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.530, 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.531, 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.227 +} + +; 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.532, i64 8 }, { ptr, i64 } { ptr @str.533, 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.232 + +while.hdr.232: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.233, label %while.exit.234 + +while.body.233: ; preds = %while.hdr.232 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.235, label %if.merge.236 + +while.exit.234: ; preds = %while.hdr.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.534, i64 1 }) + ret { ptr, i64 } %callN + +if.then.235: ; preds = %while.body.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.535, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.236 + +if.merge.236: ; preds = %if.then.235, %while.body.233 + %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.539, 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.540, 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.232 + +fv.default: ; preds = %if.merge.236 + br label %fv.merge + +fv.case: ; preds = %if.merge.236 + %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.236 + %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.236 + %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.541, i64 7 }, { ptr, i64 } { ptr @str.542, 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.237 + +while.hdr.237: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.238, label %while.exit.239 + +while.body.238: ; preds = %while.hdr.237 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.240, label %if.merge.241 + +while.exit.239: ; preds = %while.hdr.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.543, i64 1 }) + ret { ptr, i64 } %callN + +if.then.240: ; preds = %while.body.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.544, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.241 + +if.merge.241: ; preds = %if.then.240, %while.body.238 + %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.548, 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.549, 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.237 + +fv.default: ; preds = %if.merge.241 + br label %fv.merge + +fv.case: ; preds = %if.merge.241 + %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.241 + %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.241 + %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 77, 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.550, i64 9 }, { ptr, i64 } { ptr @str.551, 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.242 + +while.hdr.242: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.243, label %while.exit.244 + +while.body.243: ; preds = %while.hdr.242 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.245, label %if.merge.246 + +while.exit.244: ; preds = %while.hdr.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.552, i64 1 }) + ret { ptr, i64 } %callN + +if.then.245: ; preds = %while.body.243 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.553, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.246 + +if.merge.246: ; preds = %if.then.245, %while.body.243 + %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.556, 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.557, 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.242 + +fv.default: ; preds = %if.merge.246 + br label %fv.merge + +fv.case: ; preds = %if.merge.246 + %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.246 + %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.558, i64 4 }, { ptr, i64 } { ptr @str.559, 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.247 + +while.hdr.247: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.248, label %while.exit.249 + +while.body.248: ; preds = %while.hdr.247 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.250, label %if.merge.251 + +while.exit.249: ; preds = %while.hdr.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.560, i64 1 }) + ret { ptr, i64 } %callN + +if.then.250: ; preds = %while.body.248 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.561, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.251 + +if.merge.251: ; preds = %if.then.250, %while.body.248 + %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.564, 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.565, 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.247 + +fv.default: ; preds = %if.merge.251 + br label %fv.merge + +fv.case: ; preds = %if.merge.251 + %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.251 + %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.566, i64 6 }, { ptr, i64 } { ptr @str.567, 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.252 + +while.hdr.252: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.253, label %while.exit.254 + +while.body.253: ; preds = %while.hdr.252 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.255, label %if.merge.256 + +while.exit.254: ; preds = %while.hdr.252 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.568, i64 1 }) + ret { ptr, i64 } %callN + +if.then.255: ; preds = %while.body.253 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.569, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.256 + +if.merge.256: ; preds = %if.then.255, %while.body.253 + %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.577, 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.578, 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.252 + +fv.default: ; preds = %if.merge.256 + br label %fv.merge + +fv.case: ; preds = %if.merge.256 + %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.256 + %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.256 + %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.256 + %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.256 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.256 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.256 + %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 81, 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.579, i64 6 }, { ptr, i64 } { ptr @str.580, 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.257 + +while.hdr.257: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.258, label %while.exit.259 + +while.body.258: ; preds = %while.hdr.257 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.260, label %if.merge.261 + +while.exit.259: ; preds = %while.hdr.257 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.581, i64 1 }) + ret { ptr, i64 } %callN + +if.then.260: ; preds = %while.body.258 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.582, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.261 + +if.merge.261: ; preds = %if.then.260, %while.body.258 + %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.587, 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.588, 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.257 + +fv.default: ; preds = %if.merge.261 + br label %fv.merge + +fv.case: ; preds = %if.merge.261 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.261 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.261 + %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.261 + %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__ProposedSize(ptr %0, { { float, i1 }, { float, i1 } } %1) #0 { entry: @@ -3560,43 +6482,43 @@ entry: %ba.tmp = alloca { float, i1 }, align 8 %ba.tmp19 = alloca { float, i1 }, align 8 store { { float, i1 }, { float, i1 } } %1, ptr %alloca, align 4 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.237, i64 12 }, { ptr, i64 } { ptr @str.238, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.589, i64 12 }, { ptr, i64 } { ptr @str.590, 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.166 + br label %while.hdr.262 -while.hdr.166: ; preds = %fv.merge, %entry +while.hdr.262: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.167, label %while.exit.168 + br i1 %icmp, label %while.body.263, label %while.exit.264 -while.body.167: ; preds = %while.hdr.166 +while.body.263: ; preds = %while.hdr.262 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.169, label %if.merge.170 + br i1 %icmpN, label %if.then.265, label %if.merge.266 -while.exit.168: ; preds = %while.hdr.166 +while.exit.264: ; preds = %while.hdr.262 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.239, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.591, i64 1 }) ret { ptr, i64 } %callN -if.then.169: ; preds = %while.body.167 +if.then.265: ; preds = %while.body.263 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.240, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.592, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.170 + br label %if.merge.266 -if.merge.170: ; preds = %if.then.169, %while.body.167 +if.merge.266: ; preds = %if.then.265, %while.body.263 %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.243, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.595, 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.244, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.596, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { { float, i1 }, { float, i1 } }, ptr %alloca, align 4 @@ -3614,23 +6536,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.166 + br label %while.hdr.262 -fv.default: ; preds = %if.merge.170 +fv.default: ; preds = %if.merge.266 br label %fv.merge -fv.case: ; preds = %if.merge.170 +fv.case: ; preds = %if.merge.266 %fv.field = extractvalue { { float, i1 }, { float, i1 } } %loadN, 0 store { float, i1 } %fv.field, ptr %ba.tmp, align 4 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1 + %fv.val = insertvalue { i64, i64 } { i64 93, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.170 +fv.case17: ; preds = %if.merge.266 %fv.field18 = extractvalue { { float, i1 }, { float, i1 } } %loadN, 1 store { float, i1 } %fv.field18, ptr %ba.tmp19, align 4 %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 - %fv.val21 = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i20, 1 + %fv.val21 = insertvalue { i64, i64 } { i64 93, i64 undef }, i64 %ba.p2i20, 1 br label %fv.merge } @@ -3639,43 +6561,43 @@ define internal { ptr, i64 } @struct_to_string__Sizable(ptr %0, { ptr, ptr } %1) entry: %alloca = alloca { ptr, ptr }, align 8 store { ptr, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.245, i64 7 }, { ptr, i64 } { ptr @str.246, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.597, i64 7 }, { ptr, i64 } { ptr @str.598, 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.171 + br label %while.hdr.267 -while.hdr.171: ; preds = %fv.merge, %entry +while.hdr.267: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.172, label %while.exit.173 + br i1 %icmp, label %while.body.268, label %while.exit.269 -while.body.172: ; preds = %while.hdr.171 +while.body.268: ; preds = %while.hdr.267 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.174, label %if.merge.175 + br i1 %icmpN, label %if.then.270, label %if.merge.271 -while.exit.173: ; preds = %while.hdr.171 +while.exit.269: ; preds = %while.hdr.267 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.247, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.599, i64 1 }) ret { ptr, i64 } %callN -if.then.174: ; preds = %while.body.172 +if.then.270: ; preds = %while.body.268 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.248, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.175 + br label %if.merge.271 -if.merge.175: ; preds = %if.then.174, %while.body.172 +if.merge.271: ; preds = %if.then.270, %while.body.268 %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.251, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.603, 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.252, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.604, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, ptr }, ptr %alloca, align 8 @@ -3693,18 +6615,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.171 + br label %while.hdr.267 -fv.default: ; preds = %if.merge.175 +fv.default: ; preds = %if.merge.271 br label %fv.merge -fv.case: ; preds = %if.merge.175 +fv.case: ; preds = %if.merge.271 %fv.field = extractvalue { ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.175 +fv.case17: ; preds = %if.merge.271 %fv.field18 = extractvalue { ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 @@ -3716,43 +6638,43 @@ define internal { ptr, i64 } @struct_to_string____Sizable__Vtable(ptr %0, { ptr entry: %alloca = alloca { ptr }, align 8 store { ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.253, i64 17 }, { ptr, i64 } { ptr @str.254, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.605, i64 17 }, { ptr, i64 } { ptr @str.606, 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.176 + br label %while.hdr.272 -while.hdr.176: ; preds = %fv.merge, %entry +while.hdr.272: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.177, label %while.exit.178 + br i1 %icmp, label %while.body.273, label %while.exit.274 -while.body.177: ; preds = %while.hdr.176 +while.body.273: ; preds = %while.hdr.272 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.179, label %if.merge.180 + br i1 %icmpN, label %if.then.275, label %if.merge.276 -while.exit.178: ; preds = %while.hdr.176 +while.exit.274: ; preds = %while.hdr.272 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.255, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 1 }) ret { ptr, i64 } %callN -if.then.179: ; preds = %while.body.177 +if.then.275: ; preds = %while.body.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.256, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.180 + br label %if.merge.276 -if.merge.180: ; preds = %if.then.179, %while.body.177 +if.merge.276: ; preds = %if.then.275, %while.body.273 %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.258, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.610, 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.259, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, 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 @@ -3769,12 +6691,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.176 + br label %while.hdr.272 -fv.default: ; preds = %if.merge.180 +fv.default: ; preds = %if.merge.276 br label %fv.merge -fv.case: ; preds = %if.merge.180 +fv.case: ; preds = %if.merge.276 %fv.field = extractvalue { ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 @@ -3786,43 +6708,43 @@ define internal { ptr, i64 } @struct_to_string__Widget(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.260, i64 6 }, { ptr, i64 } { ptr @str.261, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.612, i64 6 }, { ptr, i64 } { ptr @str.613, 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.181 + br label %while.hdr.277 -while.hdr.181: ; preds = %if.merge.185, %entry +while.hdr.277: ; preds = %if.merge.281, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.182, label %while.exit.183 + br i1 %icmp, label %while.body.278, label %while.exit.279 -while.body.182: ; preds = %while.hdr.181 +while.body.278: ; preds = %while.hdr.277 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.184, label %if.merge.185 + br i1 %icmpN, label %if.then.280, label %if.merge.281 -while.exit.183: ; preds = %while.hdr.181 +while.exit.279: ; preds = %while.hdr.277 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.262, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 1 }) ret { ptr, i64 } %callN -if.then.184: ; preds = %while.body.182 +if.then.280: ; preds = %while.body.278 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.263, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.185 + br label %if.merge.281 -if.merge.185: ; preds = %if.then.184, %while.body.182 +if.merge.281: ; preds = %if.then.280, %while.body.278 %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.264, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.616, 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.265, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -3833,7 +6755,280 @@ if.merge.185: ; preds = %if.then.184, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.181 + br label %while.hdr.277 +} + +; 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.623, 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.618, 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.289, label %if.merge.290 + +if.then.289: ; 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.625, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.624, 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.290 + +if.merge.290: ; preds = %if.then.289, %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.630, 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.626, 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.291, label %if.merge.292 + +if.then.291: ; 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.632, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.631, 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.292 + +if.merge.292: ; preds = %if.then.291, %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.640, 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.633, 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.293: ; 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.642, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, 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.294 + +if.merge.294: ; preds = %if.then.293, %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.293, label %if.merge.294 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.651, 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.643, 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.295, label %if.merge.296 + +if.then.295: ; 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.653, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.652, 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.296 + +if.merge.296: ; preds = %if.then.295, %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.660, 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.654, 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.297, label %if.merge.298 + +if.then.297: ; 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.662, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.661, 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.298 + +if.merge.298: ; preds = %if.then.297, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN } ; Function Attrs: nounwind @@ -3843,33 +7038,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.266, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.663, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.190 + br label %while.hdr.307 -while.hdr.190: ; preds = %if.merge.194, %entry +while.hdr.307: ; preds = %if.merge.311, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.191, label %while.exit.192 + br i1 %icmp, label %while.body.308, label %while.exit.309 -while.body.191: ; preds = %while.hdr.190 +while.body.308: ; preds = %while.hdr.307 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.193, label %if.merge.194 + br i1 %icmpN, label %if.then.310, label %if.merge.311 -while.exit.192: ; preds = %while.hdr.190 +while.exit.309: ; preds = %while.hdr.307 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.267, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.664, i64 1 }) ret { ptr, i64 } %call -if.then.193: ; preds = %while.body.191 +if.then.310: ; preds = %while.body.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.268, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.665, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.194 + br label %if.merge.311 -if.merge.194: ; preds = %if.then.193, %while.body.191 +if.merge.311: ; preds = %if.then.310, %while.body.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3883,7 +7078,211 @@ if.merge.194: ; preds = %if.then.193, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.190 + br label %while.hdr.307 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.666, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.312 + +while.hdr.312: ; preds = %if.merge.316, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.313, label %while.exit.314 + +while.body.313: ; preds = %while.hdr.312 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.315, label %if.merge.316 + +while.exit.314: ; preds = %while.hdr.312 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.667, i64 1 }) + ret { ptr, i64 } %call + +if.then.315: ; preds = %while.body.313 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.668, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.316 + +if.merge.316: ; preds = %if.then.315, %while.body.313 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.312 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.669, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.317 + +while.hdr.317: ; preds = %if.merge.321, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.318, label %while.exit.319 + +while.body.318: ; preds = %while.hdr.317 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.320, label %if.merge.321 + +while.exit.319: ; preds = %while.hdr.317 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.670, i64 1 }) + ret { ptr, i64 } %call + +if.then.320: ; preds = %while.body.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.671, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.321 + +if.merge.321: ; preds = %if.then.320, %while.body.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.317 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.672, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.322 + +while.hdr.322: ; preds = %if.merge.326, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.323, label %while.exit.324 + +while.body.323: ; preds = %while.hdr.322 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.325, label %if.merge.326 + +while.exit.324: ; preds = %while.hdr.322 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.673, i64 1 }) + ret { ptr, i64 } %call + +if.then.325: ; preds = %while.body.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.674, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.326 + +if.merge.326: ; preds = %if.then.325, %while.body.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.322 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.675, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.327 + +while.hdr.327: ; preds = %if.merge.331, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.328, label %while.exit.329 + +while.body.328: ; preds = %while.hdr.327 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.330, label %if.merge.331 + +while.exit.329: ; preds = %while.hdr.327 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.676, i64 1 }) + ret { ptr, i64 } %call + +if.then.330: ; preds = %while.body.328 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.677, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.331 + +if.merge.331: ; preds = %if.then.330, %while.body.328 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.327 } ; Function Attrs: nounwind @@ -3894,33 +7293,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.269, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.678, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.195 + br label %while.hdr.332 -while.hdr.195: ; preds = %if.merge.199, %entry +while.hdr.332: ; preds = %if.merge.336, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.196, label %while.exit.197 + br i1 %icmp, label %while.body.333, label %while.exit.334 -while.body.196: ; preds = %while.hdr.195 +while.body.333: ; preds = %while.hdr.332 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.198, label %if.merge.199 + br i1 %icmpN, label %if.then.335, label %if.merge.336 -while.exit.197: ; preds = %while.hdr.195 +while.exit.334: ; preds = %while.hdr.332 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.270, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.679, i64 1 }) ret { ptr, i64 } %call -if.then.198: ; preds = %while.body.196 +if.then.335: ; preds = %while.body.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.271, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.680, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.199 + br label %if.merge.336 -if.merge.199: ; preds = %if.then.198, %while.body.196 +if.merge.336: ; preds = %if.then.335, %while.body.333 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3936,7 +7335,7 @@ if.merge.199: ; preds = %if.then.198, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.195 + br label %while.hdr.332 } ; Function Attrs: nounwind @@ -3946,35 +7345,35 @@ entry: %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.272, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.681, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.204 + br label %while.hdr.344 -while.hdr.204: ; preds = %if.merge.208, %entry +while.hdr.344: ; preds = %if.merge.348, %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.205, label %while.exit.206 + br i1 %icmp, label %while.body.345, label %while.exit.346 -while.body.205: ; preds = %while.hdr.204 +while.body.345: ; preds = %while.hdr.344 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.207, label %if.merge.208 + br i1 %icmpN, label %if.then.347, label %if.merge.348 -while.exit.206: ; preds = %while.hdr.204 +while.exit.346: ; preds = %while.hdr.344 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.273, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.682, i64 1 }) ret { ptr, i64 } %call -if.then.207: ; preds = %while.body.205 +if.then.347: ; preds = %while.body.345 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.274, i64 2 }) + %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.208 + br label %if.merge.348 -if.merge.208: ; preds = %if.then.207, %while.body.205 +if.merge.348: ; preds = %if.then.347, %while.body.345 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3990,7 +7389,167 @@ if.merge.208: ; preds = %if.then.207, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.204 + br label %while.hdr.344 +} + +; 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.684, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.349 + +while.hdr.349: ; preds = %if.merge.353, %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.350, label %while.exit.351 + +while.body.350: ; preds = %while.hdr.349 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.352, label %if.merge.353 + +while.exit.351: ; preds = %while.hdr.349 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.685, i64 1 }) + ret { ptr, i64 } %call + +if.then.352: ; preds = %while.body.350 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.686, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.353 + +if.merge.353: ; preds = %if.then.352, %while.body.350 + %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.349 +} + +; 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.687, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.354 + +while.hdr.354: ; preds = %if.merge.358, %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.355, label %while.exit.356 + +while.body.355: ; preds = %while.hdr.354 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.357, label %if.merge.358 + +while.exit.356: ; preds = %while.hdr.354 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.688, i64 1 }) + ret { ptr, i64 } %call + +if.then.357: ; preds = %while.body.355 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.689, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.358 + +if.merge.358: ; preds = %if.then.357, %while.body.355 + %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 76, 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.354 +} + +; 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.690, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.359 + +while.hdr.359: ; preds = %if.merge.363, %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.360, label %while.exit.361 + +while.body.360: ; preds = %while.hdr.359 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.362, label %if.merge.363 + +while.exit.361: ; preds = %while.hdr.359 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.691, i64 1 }) + ret { ptr, i64 } %call + +if.then.362: ; preds = %while.body.360 + %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.363 + +if.merge.363: ; preds = %if.then.362, %while.body.360 + %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 78, 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.359 } ; Function Attrs: nounwind @@ -4000,35 +7559,35 @@ entry: %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.275, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.693, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.364 -while.hdr.209: ; preds = %if.merge.213, %entry +while.hdr.364: ; preds = %if.merge.368, %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.210, label %while.exit.211 + br i1 %icmp, label %while.body.365, label %while.exit.366 -while.body.210: ; preds = %while.hdr.209 +while.body.365: ; preds = %while.hdr.364 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.212, label %if.merge.213 + br i1 %icmpN, label %if.then.367, label %if.merge.368 -while.exit.211: ; preds = %while.hdr.209 +while.exit.366: ; preds = %while.hdr.364 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.276, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.694, i64 1 }) ret { ptr, i64 } %call -if.then.212: ; preds = %while.body.210 +if.then.367: ; preds = %while.body.365 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.277, i64 2 }) + %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 - br label %if.merge.213 + br label %if.merge.368 -if.merge.213: ; preds = %if.then.212, %while.body.210 +if.merge.368: ; preds = %if.then.367, %while.body.365 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -4044,7 +7603,7 @@ if.merge.213: ; preds = %if.then.212, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.364 } ; Function Attrs: nounwind @@ -4058,20 +7617,20 @@ entry: 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.240, label %if.else.241 + br i1 %icmp, label %if.then.408, label %if.else.409 -if.then.240: ; preds = %entry - br label %if.merge.242 +if.then.408: ; preds = %entry + br label %if.merge.410 -if.else.241: ; preds = %entry +if.else.409: ; 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.280, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.279, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.242 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.698, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.697, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.410 -if.merge.242: ; preds = %if.else.241, %if.then.240 - %bp = phi { ptr, i64 } [ { ptr @str.278, i64 4 }, %if.then.240 ], [ %callN, %if.else.241 ] +if.merge.410: ; preds = %if.else.409, %if.then.408 + %bp = phi { ptr, i64 } [ { ptr @str.696, i64 4 }, %if.then.408 ], [ %callN, %if.else.409 ] ret { ptr, i64 } %bp } @@ -4086,20 +7645,20 @@ entry: 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.256, label %if.else.257 + br i1 %icmp, label %if.then.424, label %if.else.425 -if.then.256: ; preds = %entry - br label %if.merge.258 +if.then.424: ; preds = %entry + br label %if.merge.426 -if.else.257: ; preds = %entry +if.else.425: ; 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.283, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.282, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.258 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.701, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.700, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.426 -if.merge.258: ; preds = %if.else.257, %if.then.256 - %bp = phi { ptr, i64 } [ { ptr @str.281, i64 4 }, %if.then.256 ], [ %callN, %if.else.257 ] +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.699, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] ret { ptr, i64 } %bp } @@ -4114,20 +7673,20 @@ entry: 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.259, label %if.else.260 + br i1 %icmp, label %if.then.427, label %if.else.428 -if.then.259: ; preds = %entry - br label %if.merge.261 +if.then.427: ; preds = %entry + br label %if.merge.429 -if.else.260: ; preds = %entry +if.else.428: ; 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.286, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.285, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.261 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.704, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.429 -if.merge.261: ; preds = %if.else.260, %if.then.259 - %bp = phi { ptr, i64 } [ { ptr @str.284, i64 4 }, %if.then.259 ], [ %callN, %if.else.260 ] +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.702, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] ret { ptr, i64 } %bp } @@ -4142,20 +7701,20 @@ entry: 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.262, label %if.else.263 + br i1 %icmp, label %if.then.430, label %if.else.431 -if.then.262: ; preds = %entry - br label %if.merge.264 +if.then.430: ; preds = %entry + br label %if.merge.432 -if.else.263: ; preds = %entry +if.else.431: ; 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.289, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.288, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.264 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.707, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.706, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.432 -if.merge.264: ; preds = %if.else.263, %if.then.262 - %bp = phi { ptr, i64 } [ { ptr @str.287, i64 4 }, %if.then.262 ], [ %callN, %if.else.263 ] +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.705, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] ret { ptr, i64 } %bp } @@ -4170,20 +7729,20 @@ entry: 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.265, label %if.else.266 + br i1 %icmp, label %if.then.433, label %if.else.434 -if.then.265: ; preds = %entry - br label %if.merge.267 +if.then.433: ; preds = %entry + br label %if.merge.435 -if.else.266: ; preds = %entry +if.else.434: ; 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.292, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.291, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.267 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.709, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.435 -if.merge.267: ; preds = %if.else.266, %if.then.265 - %bp = phi { ptr, i64 } [ { ptr @str.290, i64 4 }, %if.then.265 ], [ %callN, %if.else.266 ] +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.708, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] ret { ptr, i64 } %bp } @@ -4197,20 +7756,20 @@ entry: 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.268, label %if.else.269 + br i1 %icmp, label %if.then.436, label %if.else.437 -if.then.268: ; preds = %entry - br label %if.merge.270 +if.then.436: ; preds = %entry + br label %if.merge.438 -if.else.269: ; preds = %entry +if.else.437: ; 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.295, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.294, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.270 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.712, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.438 -if.merge.270: ; preds = %if.else.269, %if.then.268 - %bp = phi { ptr, i64 } [ { ptr @str.293, i64 4 }, %if.then.268 ], [ %callN, %if.else.269 ] +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.711, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] ret { ptr, i64 } %bp } @@ -4225,20 +7784,20 @@ entry: 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.271, label %if.else.272 + br i1 %icmp, label %if.then.439, label %if.else.440 -if.then.271: ; preds = %entry - br label %if.merge.273 +if.then.439: ; preds = %entry + br label %if.merge.441 -if.else.272: ; preds = %entry +if.else.440: ; 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.298, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.297, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.273 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.715, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.441 -if.merge.273: ; preds = %if.else.272, %if.then.271 - %bp = phi { ptr, i64 } [ { ptr @str.296, i64 4 }, %if.then.271 ], [ %callN, %if.else.272 ] +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.714, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] ret { ptr, i64 } %bp } @@ -4253,25 +7812,25 @@ entry: 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.274, label %if.else.275 + br i1 %icmp, label %if.then.442, label %if.else.443 -if.then.274: ; preds = %entry - br label %if.merge.276 +if.then.442: ; preds = %entry + br label %if.merge.444 -if.else.275: ; preds = %entry +if.else.443: ; 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.301, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.300, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.276 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.444 -if.merge.276: ; preds = %if.else.275, %if.then.274 - %bp = phi { ptr, i64 } [ { ptr @str.299, i64 4 }, %if.then.274 ], [ %callN, %if.else.275 ] +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.717, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_Widget(ptr %0, ptr %1) #0 { +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 @@ -4281,188 +7840,20 @@ entry: 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.277, label %if.else.278 + br i1 %icmp, label %if.then.445, label %if.else.446 -if.then.277: ; preds = %entry - br label %if.merge.279 +if.then.445: ; preds = %entry + br label %if.merge.447 -if.else.278: ; preds = %entry +if.else.446: ; 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.304, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.303, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.279 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.722, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.721, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.447 -if.merge.279: ; preds = %if.else.278, %if.then.277 - %bp = phi { ptr, i64 } [ { ptr @str.302, i64 4 }, %if.then.277 ], [ %callN, %if.else.278 ] - 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.280, label %if.else.281 - -if.then.280: ; preds = %entry - br label %if.merge.282 - -if.else.281: ; 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.307, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.306, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.282 - -if.merge.282: ; preds = %if.else.281, %if.then.280 - %bp = phi { ptr, i64 } [ { ptr @str.305, i64 4 }, %if.then.280 ], [ %callN, %if.else.281 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.283, label %if.else.284 - -if.then.283: ; preds = %entry - br label %if.merge.285 - -if.else.284: ; 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.310, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.309, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.285 - -if.merge.285: ; preds = %if.else.284, %if.then.283 - %bp = phi { ptr, i64 } [ { ptr @str.308, i64 4 }, %if.then.283 ], [ %callN, %if.else.284 ] - 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.286, label %if.else.287 - -if.then.286: ; preds = %entry - br label %if.merge.288 - -if.else.287: ; 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.313, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.312, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.288 - -if.merge.288: ; preds = %if.else.287, %if.then.286 - %bp = phi { ptr, i64 } [ { ptr @str.311, i64 4 }, %if.then.286 ], [ %callN, %if.else.287 ] - 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.289, label %if.else.290 - -if.then.289: ; preds = %entry - br label %if.merge.291 - -if.else.290: ; 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.316, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.315, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.291 - -if.merge.291: ; preds = %if.else.290, %if.then.289 - %bp = phi { ptr, i64 } [ { ptr @str.314, i64 4 }, %if.then.289 ], [ %callN, %if.else.290 ] - 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.292, label %if.else.293 - -if.then.292: ; preds = %entry - br label %if.merge.294 - -if.else.293: ; 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.319, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.318, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.294 - -if.merge.294: ; preds = %if.else.293, %if.then.292 - %bp = phi { ptr, i64 } [ { ptr @str.317, i64 4 }, %if.then.292 ], [ %callN, %if.else.293 ] - 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.295, label %if.else.296 - -if.then.295: ; preds = %entry - br label %if.merge.297 - -if.else.296: ; 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.322, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.321, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.297 - -if.merge.297: ; preds = %if.else.296, %if.then.295 - %bp = phi { ptr, i64 } [ { ptr @str.320, i64 4 }, %if.then.295 ], [ %callN, %if.else.296 ] +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.720, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] ret { ptr, i64 } %bp } @@ -4477,20 +7868,550 @@ entry: 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.298, label %if.else.299 + br i1 %icmp, label %if.then.448, label %if.else.449 -if.then.298: ; preds = %entry - br label %if.merge.300 +if.then.448: ; preds = %entry + br label %if.merge.450 -if.else.299: ; preds = %entry +if.else.449: ; 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.325, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.324, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.300 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.725, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.450 -if.merge.300: ; preds = %if.else.299, %if.then.298 - %bp = phi { ptr, i64 } [ { ptr @str.323, i64 4 }, %if.then.298 ], [ %callN, %if.else.299 ] +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.723, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.728, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.727, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.726, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.731, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.730, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.729, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.734, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.733, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.732, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + 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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.737, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.736, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.735, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.740, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.739, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.738, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + 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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.743, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.742, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.741, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] + 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.469, label %if.else.470 + +if.then.469: ; preds = %entry + br label %if.merge.471 + +if.else.470: ; 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.746, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.745, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.471 + +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.744, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] + 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.472, label %if.else.473 + +if.then.472: ; preds = %entry + br label %if.merge.474 + +if.else.473: ; 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.749, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.748, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.474 + +if.merge.474: ; preds = %if.else.473, %if.then.472 + %bp = phi { ptr, i64 } [ { ptr @str.747, i64 4 }, %if.then.472 ], [ %callN, %if.else.473 ] + 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.475, label %if.else.476 + +if.then.475: ; preds = %entry + br label %if.merge.477 + +if.else.476: ; 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.752, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.751, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.477 + +if.merge.477: ; preds = %if.else.476, %if.then.475 + %bp = phi { ptr, i64 } [ { ptr @str.750, i64 4 }, %if.then.475 ], [ %callN, %if.else.476 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.478, label %if.else.479 + +if.then.478: ; preds = %entry + br label %if.merge.480 + +if.else.479: ; 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.755, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.754, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.480 + +if.merge.480: ; preds = %if.else.479, %if.then.478 + %bp = phi { ptr, i64 } [ { ptr @str.753, i64 4 }, %if.then.478 ], [ %callN, %if.else.479 ] + 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.481, label %if.else.482 + +if.then.481: ; preds = %entry + br label %if.merge.483 + +if.else.482: ; 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.758, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.757, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.483 + +if.merge.483: ; preds = %if.else.482, %if.then.481 + %bp = phi { ptr, i64 } [ { ptr @str.756, i64 4 }, %if.then.481 ], [ %callN, %if.else.482 ] + 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.484, label %if.else.485 + +if.then.484: ; preds = %entry + br label %if.merge.486 + +if.else.485: ; 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.761, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.760, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.486 + +if.merge.486: ; preds = %if.else.485, %if.then.484 + %bp = phi { ptr, i64 } [ { ptr @str.759, i64 4 }, %if.then.484 ], [ %callN, %if.else.485 ] + 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.487, label %if.else.488 + +if.then.487: ; preds = %entry + br label %if.merge.489 + +if.else.488: ; 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.764, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.763, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.489 + +if.merge.489: ; preds = %if.else.488, %if.then.487 + %bp = phi { ptr, i64 } [ { ptr @str.762, i64 4 }, %if.then.487 ], [ %callN, %if.else.488 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_Widget(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.490, label %if.else.491 + +if.then.490: ; preds = %entry + br label %if.merge.492 + +if.else.491: ; 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.767, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.766, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.492 + +if.merge.492: ; preds = %if.else.491, %if.then.490 + %bp = phi { ptr, i64 } [ { ptr @str.765, i64 4 }, %if.then.490 ], [ %callN, %if.else.491 ] + 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.493, label %if.else.494 + +if.then.493: ; preds = %entry + br label %if.merge.495 + +if.else.494: ; 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.770, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.769, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.495 + +if.merge.495: ; preds = %if.else.494, %if.then.493 + %bp = phi { ptr, i64 } [ { ptr @str.768, i64 4 }, %if.then.493 ], [ %callN, %if.else.494 ] + 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.496, label %if.else.497 + +if.then.496: ; preds = %entry + br label %if.merge.498 + +if.else.497: ; 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.773, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.772, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.498 + +if.merge.498: ; preds = %if.else.497, %if.then.496 + %bp = phi { ptr, i64 } [ { ptr @str.771, i64 4 }, %if.then.496 ], [ %callN, %if.else.497 ] + 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.499, label %if.else.500 + +if.then.499: ; preds = %entry + br label %if.merge.501 + +if.else.500: ; 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.776, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.775, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.501 + +if.merge.501: ; preds = %if.else.500, %if.then.499 + %bp = phi { ptr, i64 } [ { ptr @str.774, i64 4 }, %if.then.499 ], [ %callN, %if.else.500 ] + 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.502, label %if.else.503 + +if.then.502: ; preds = %entry + br label %if.merge.504 + +if.else.503: ; 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.779, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.778, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.504 + +if.merge.504: ; preds = %if.else.503, %if.then.502 + %bp = phi { ptr, i64 } [ { ptr @str.777, i64 4 }, %if.then.502 ], [ %callN, %if.else.503 ] + 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.505, label %if.else.506 + +if.then.505: ; preds = %entry + br label %if.merge.507 + +if.else.506: ; 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.782, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.781, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.507 + +if.merge.507: ; preds = %if.else.506, %if.then.505 + %bp = phi { ptr, i64 } [ { ptr @str.780, i64 4 }, %if.then.505 ], [ %callN, %if.else.506 ] ret { ptr, i64 } %bp } @@ -4505,20 +8426,20 @@ entry: 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.301, label %if.else.302 + br i1 %icmp, label %if.then.508, label %if.else.509 -if.then.301: ; preds = %entry - br label %if.merge.303 +if.then.508: ; preds = %entry + br label %if.merge.510 -if.else.302: ; preds = %entry +if.else.509: ; 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.328, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.327, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.303 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.785, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.784, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.510 -if.merge.303: ; preds = %if.else.302, %if.then.301 - %bp = phi { ptr, i64 } [ { ptr @str.326, i64 4 }, %if.then.301 ], [ %callN, %if.else.302 ] +if.merge.510: ; preds = %if.else.509, %if.then.508 + %bp = phi { ptr, i64 } [ { ptr @str.783, i64 4 }, %if.then.508 ], [ %callN, %if.else.509 ] ret { ptr, i64 } %bp } @@ -4533,20 +8454,20 @@ entry: 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.304, label %if.else.305 + br i1 %icmp, label %if.then.511, label %if.else.512 -if.then.304: ; preds = %entry - br label %if.merge.306 +if.then.511: ; preds = %entry + br label %if.merge.513 -if.else.305: ; preds = %entry +if.else.512: ; 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.331, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.330, i64 13 }, { ptr, i64 } %callN) - br label %if.merge.306 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.788, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.787, i64 13 }, { ptr, i64 } %callN) + br label %if.merge.513 -if.merge.306: ; preds = %if.else.305, %if.then.304 - %bp = phi { ptr, i64 } [ { ptr @str.329, i64 4 }, %if.then.304 ], [ %callN, %if.else.305 ] +if.merge.513: ; preds = %if.else.512, %if.then.511 + %bp = phi { ptr, i64 } [ { ptr @str.786, i64 4 }, %if.then.511 ], [ %callN, %if.else.512 ] ret { ptr, i64 } %bp } @@ -4561,20 +8482,20 @@ entry: 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.307, label %if.else.308 + br i1 %icmp, label %if.then.514, label %if.else.515 -if.then.307: ; preds = %entry - br label %if.merge.309 +if.then.514: ; preds = %entry + br label %if.merge.516 -if.else.308: ; preds = %entry +if.else.515: ; 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.334, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.333, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.309 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.791, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.790, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.516 -if.merge.309: ; preds = %if.else.308, %if.then.307 - %bp = phi { ptr, i64 } [ { ptr @str.332, i64 4 }, %if.then.307 ], [ %callN, %if.else.308 ] +if.merge.516: ; preds = %if.else.515, %if.then.514 + %bp = phi { ptr, i64 } [ { ptr @str.789, i64 4 }, %if.then.514 ], [ %callN, %if.else.515 ] ret { ptr, i64 } %bp } @@ -4589,20 +8510,20 @@ entry: 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.310, label %if.else.311 + br i1 %icmp, label %if.then.517, label %if.else.518 -if.then.310: ; preds = %entry - br label %if.merge.312 +if.then.517: ; preds = %entry + br label %if.merge.519 -if.else.311: ; preds = %entry +if.else.518: ; 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.337, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.336, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.312 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.794, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.793, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.519 -if.merge.312: ; preds = %if.else.311, %if.then.310 - %bp = phi { ptr, i64 } [ { ptr @str.335, i64 4 }, %if.then.310 ], [ %callN, %if.else.311 ] +if.merge.519: ; preds = %if.else.518, %if.then.517 + %bp = phi { ptr, i64 } [ { ptr @str.792, i64 4 }, %if.then.517 ], [ %callN, %if.else.518 ] ret { ptr, i64 } %bp } @@ -4617,20 +8538,20 @@ entry: 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.313, label %if.else.314 + br i1 %icmp, label %if.then.520, label %if.else.521 -if.then.313: ; preds = %entry - br label %if.merge.315 +if.then.520: ; preds = %entry + br label %if.merge.522 -if.else.314: ; preds = %entry +if.else.521: ; 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.340, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.339, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.315 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.797, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.796, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.522 -if.merge.315: ; preds = %if.else.314, %if.then.313 - %bp = phi { ptr, i64 } [ { ptr @str.338, i64 4 }, %if.then.313 ], [ %callN, %if.else.314 ] +if.merge.522: ; preds = %if.else.521, %if.then.520 + %bp = phi { ptr, i64 } [ { ptr @str.795, i64 4 }, %if.then.520 ], [ %callN, %if.else.521 ] ret { ptr, i64 } %bp } @@ -4645,20 +8566,20 @@ entry: 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.316, label %if.else.317 + br i1 %icmp, label %if.then.523, label %if.else.524 -if.then.316: ; preds = %entry - br label %if.merge.318 +if.then.523: ; preds = %entry + br label %if.merge.525 -if.else.317: ; preds = %entry +if.else.524: ; 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.343, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.342, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.318 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.800, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.799, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.525 -if.merge.318: ; preds = %if.else.317, %if.then.316 - %bp = phi { ptr, i64 } [ { ptr @str.341, i64 4 }, %if.then.316 ], [ %callN, %if.else.317 ] +if.merge.525: ; preds = %if.else.524, %if.then.523 + %bp = phi { ptr, i64 } [ { ptr @str.798, i64 4 }, %if.then.523 ], [ %callN, %if.else.524 ] ret { ptr, i64 } %bp } @@ -4673,20 +8594,20 @@ entry: 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.319, label %if.else.320 + br i1 %icmp, label %if.then.526, label %if.else.527 -if.then.319: ; preds = %entry - br label %if.merge.321 +if.then.526: ; preds = %entry + br label %if.merge.528 -if.else.320: ; preds = %entry +if.else.527: ; 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.346, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.345, i64 8 }, { ptr, i64 } %callN) - br label %if.merge.321 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.803, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.802, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.528 -if.merge.321: ; preds = %if.else.320, %if.then.319 - %bp = phi { ptr, i64 } [ { ptr @str.344, i64 4 }, %if.then.319 ], [ %callN, %if.else.320 ] +if.merge.528: ; preds = %if.else.527, %if.then.526 + %bp = phi { ptr, i64 } [ { ptr @str.801, i64 4 }, %if.then.526 ], [ %callN, %if.else.527 ] ret { ptr, i64 } %bp } @@ -4701,23 +8622,119 @@ entry: 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.322, label %if.else.323 + br i1 %icmp, label %if.then.529, label %if.else.530 -if.then.322: ; preds = %entry - br label %if.merge.324 +if.then.529: ; preds = %entry + br label %if.merge.531 -if.else.323: ; preds = %entry +if.else.530: ; 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.349, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.348, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.324 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.806, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.805, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.531 -if.merge.324: ; preds = %if.else.323, %if.then.322 - %bp = phi { ptr, i64 } [ { ptr @str.347, i64 4 }, %if.then.322 ], [ %callN, %if.else.323 ] +if.merge.531: ; preds = %if.else.530, %if.then.529 + %bp = phi { ptr, i64 } [ { ptr @str.804, i64 4 }, %if.then.529 ], [ %callN, %if.else.530 ] 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.539, label %if.merge.540 + +if.then.539: ; preds = %entry + ret { ptr, i64 } { ptr @str.807, i64 4 } + +if.merge.540: ; 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 39, 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.541, label %if.merge.542 + +if.then.541: ; preds = %entry + ret { ptr, i64 } { ptr @str.808, i64 4 } + +if.merge.542: ; 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_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.543, label %if.merge.544 + +if.then.543: ; preds = %entry + ret { ptr, i64 } { ptr @str.809, i64 4 } + +if.merge.544: ; 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 45, 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.545, label %if.merge.546 + +if.then.545: ; preds = %entry + ret { ptr, i64 } { ptr @str.810, i64 4 } + +if.merge.546: ; 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 88, 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_f32(ptr %0, { float, i1 } %1) #0 { entry: @@ -4726,12 +8743,12 @@ entry: %load = load { float, i1 }, ptr %alloca, align 4 %oh.has = extractvalue { float, i1 } %load, 1 %lnot = xor i1 %oh.has, true - br i1 %lnot, label %if.then.328, label %if.merge.329 + br i1 %lnot, label %if.then.547, label %if.merge.548 -if.then.328: ; preds = %entry - ret { ptr, i64 } { ptr @str.350, i64 4 } +if.then.547: ; preds = %entry + ret { ptr, i64 } { ptr @str.811, i64 4 } -if.merge.329: ; preds = %entry +if.merge.548: ; preds = %entry %loadN = load { float, i1 }, ptr %alloca, align 4 %ou.val = extractvalue { float, i1 } %loadN, 0 %fNi32 = bitcast float %ou.val to i32 diff --git a/examples/expected/0904-optionals-any-to-string-optional.ir b/examples/expected/0904-optionals-any-to-string-optional.ir index 5bcb8e9..26b9c55 100644 --- a/examples/expected/0904-optionals-any-to-string-optional.ir +++ b/examples/expected/0904-optionals-any-to-string-optional.ir @@ -1,270 +1,626 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [78 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [166 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [5 x i8] c"?s64\00" -@tn.str.64 = private constant [8 x i8] c"?string\00" -@tn.str.65 = private constant [6 x i8] c"?bool\00" -@tn.str.66 = private constant [2 x i8] c"S\00" -@tn.str.67 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.68 = private constant [5 x i8] c"*s64\00" -@tn.str.69 = private constant [7 x i8] c"**void\00" -@tn.str.70 = private constant [3 x i8] c"*S\00" -@tn.str.71 = private constant [8 x i8] c"*string\00" -@tn.str.72 = private constant [6 x i8] c"[]Any\00" -@tn.str.73 = private constant [5 x i8] c"*Any\00" -@tn.str.74 = private constant [7 x i8] c"[1]Any\00" -@tn.str.75 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.76 = private constant [7 x i8] c"*[]Any\00" -@tn.str.77 = private constant [4 x i8] c"*u8\00" -@tn.str.78 = private constant [6 x i8] c"*bool\00" -@tn.str.79 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.80 = private constant [5 x i8] c"*f64\00" -@tn.str.81 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.82 = private constant [11 x i8] c"*Allocator\00" -@tn.str.83 = private constant [9 x i8] c"*Context\00" -@tn.str.84 = private constant [10 x i8] c"*[]string\00" -@tn.str.85 = private constant [6 x i8] c"**GPA\00" -@tn.str.86 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.87 = private constant [8 x i8] c"**Arena\00" -@tn.str.88 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.89 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.90 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.91 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.92 = private constant [6 x i8] c"**s64\00" -@tn.str.93 = private constant [8 x i8] c"***void\00" -@tn.str.94 = private constant [4 x i8] c"**S\00" -@tn.str.95 = private constant [9 x i8] c"**string\00" -@tn.str.96 = private constant [6 x i8] c"**Any\00" -@tn.str.97 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.98 = private constant [8 x i8] c"**[]Any\00" -@tn.str.99 = private constant [5 x i8] c"**u8\00" -@tn.str.100 = private constant [7 x i8] c"**bool\00" -@tn.str.101 = private constant [6 x i8] c"*?s64\00" -@tn.str.102 = private constant [9 x i8] c"*?string\00" -@tn.str.103 = private constant [7 x i8] c"*?bool\00" -@__sx_type_names = private constant [78 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 4 }, { ptr, i64 } { ptr @tn.str.64, i64 7 }, { ptr, i64 } { ptr @tn.str.65, i64 5 }, { ptr, i64 } { ptr @tn.str.66, i64 1 }, { ptr, i64 } { ptr @tn.str.67, i64 12 }, { ptr, i64 } { ptr @tn.str.68, i64 4 }, { ptr, i64 } { ptr @tn.str.69, i64 6 }, { ptr, i64 } { ptr @tn.str.70, i64 2 }, { ptr, i64 } { ptr @tn.str.71, i64 7 }, { ptr, i64 } { ptr @tn.str.72, i64 5 }, { ptr, i64 } { ptr @tn.str.73, i64 4 }, { ptr, i64 } { ptr @tn.str.74, i64 6 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 6 }, { ptr, i64 } { ptr @tn.str.77, i64 3 }, { ptr, i64 } { ptr @tn.str.78, i64 5 }, { ptr, i64 } { ptr @tn.str.79, i64 7 }, { ptr, i64 } { ptr @tn.str.80, i64 4 }, { ptr, i64 } { ptr @tn.str.81, i64 16 }, { ptr, i64 } { ptr @tn.str.82, i64 10 }, { ptr, i64 } { ptr @tn.str.83, i64 8 }, { ptr, i64 } { ptr @tn.str.84, i64 9 }, { ptr, i64 } { ptr @tn.str.85, i64 5 }, { ptr, i64 } { ptr @tn.str.86, i64 12 }, { ptr, i64 } { ptr @tn.str.87, i64 7 }, { ptr, i64 } { ptr @tn.str.88, i64 6 }, { ptr, i64 } { ptr @tn.str.89, i64 10 }, { ptr, i64 } { ptr @tn.str.90, i64 19 }, { ptr, i64 } { ptr @tn.str.91, i64 13 }, { ptr, i64 } { ptr @tn.str.92, i64 5 }, { ptr, i64 } { ptr @tn.str.93, i64 7 }, { ptr, i64 } { ptr @tn.str.94, i64 3 }, { ptr, i64 } { ptr @tn.str.95, i64 8 }, { ptr, i64 } { ptr @tn.str.96, i64 5 }, { ptr, i64 } { ptr @tn.str.97, i64 8 }, { ptr, i64 } { ptr @tn.str.98, i64 7 }, { ptr, i64 } { ptr @tn.str.99, i64 4 }, { ptr, i64 } { ptr @tn.str.100, i64 6 }, { ptr, i64 } { ptr @tn.str.101, i64 5 }, { ptr, i64 } { ptr @tn.str.102, i64 8 }, { ptr, i64 } { ptr @tn.str.103, i64 6 }] -@str.104 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.105 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.106 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.107 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.108 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.109 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.110 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.111 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.112 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.113 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.114 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.115 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.116 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.117 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.118 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.119 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.120 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.121 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.122 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.123 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.124 = private unnamed_addr constant [3 x i8] c"hi\00", align 1 -@str.125 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.126 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.127 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 -@str.128 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.129 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.130 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.131 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.144 = private constant [5 x i8] c"bool\00" +@tn.str.145 = private constant [3 x i8] c"s8\00" +@tn.str.146 = private constant [4 x i8] c"s16\00" +@tn.str.147 = private constant [4 x i8] c"s32\00" +@tn.str.148 = private constant [4 x i8] c"s64\00" +@tn.str.149 = private constant [3 x i8] c"u8\00" +@tn.str.150 = private constant [4 x i8] c"u16\00" +@tn.str.151 = private constant [4 x i8] c"u32\00" +@tn.str.152 = private constant [4 x i8] c"u64\00" +@tn.str.153 = private constant [4 x i8] c"f32\00" +@tn.str.154 = private constant [4 x i8] c"f64\00" +@tn.str.155 = private constant [7 x i8] c"string\00" +@tn.str.156 = private constant [4 x i8] c"Any\00" +@tn.str.157 = private constant [9 x i8] c"noreturn\00" +@tn.str.158 = private constant [6 x i8] c"isize\00" +@tn.str.159 = private constant [6 x i8] c"usize\00" +@tn.str.160 = private constant [5 x i8] c"void\00" +@tn.str.161 = private constant [6 x i8] c"*void\00" +@tn.str.162 = private constant [16 x i8] c"Source_Location\00" +@tn.str.163 = private constant [11 x i8] c"CAllocator\00" +@tn.str.164 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.165 = private constant [4 x i8] c"GPA\00" +@tn.str.166 = private constant [5 x i8] c"*GPA\00" +@tn.str.167 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.168 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.169 = private constant [10 x i8] c"Allocator\00" +@tn.str.170 = private constant [6 x i8] c"Arena\00" +@tn.str.171 = private constant [7 x i8] c"*Arena\00" +@tn.str.172 = private constant [6 x i8] c"[*]u8\00" +@tn.str.173 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.174 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.175 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.176 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.177 = private constant [8 x i8] c"Context\00" +@tn.str.178 = private constant [7 x i8] c"[4]s64\00" +@tn.str.179 = private constant [9 x i8] c"[]string\00" +@tn.str.180 = private constant [9 x i8] c"OpenMode\00" +@tn.str.181 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.182 = private constant [5 x i8] c"File\00" +@tn.str.183 = private constant [6 x i8] c"*File\00" +@tn.str.184 = private constant [6 x i8] c"?File\00" +@tn.str.185 = private constant [8 x i8] c"?string\00" +@tn.str.186 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.187 = private constant [4 x i8] c"*u8\00" +@tn.str.188 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.189 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.190 = private constant [5 x i8] c"*s32\00" +@tn.str.191 = private constant [9 x i8] c"SockAddr\00" +@tn.str.192 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.193 = private constant [5 x i8] c"*u32\00" +@tn.str.194 = private constant [10 x i8] c"JsonError\00" +@tn.str.195 = private constant [6 x i8] c"Array\00" +@tn.str.196 = private constant [7 x i8] c"Object\00" +@tn.str.197 = private constant [6 x i8] c"Value\00" +@tn.str.198 = private constant [7 x i8] c"Member\00" +@tn.str.199 = private constant [9 x i8] c"[*]Value\00" +@tn.str.200 = private constant [7 x i8] c"*Array\00" +@tn.str.201 = private constant [10 x i8] c"[*]Member\00" +@tn.str.202 = private constant [8 x i8] c"*Object\00" +@tn.str.203 = private constant [5 x i8] c"[]u8\00" +@tn.str.204 = private constant [5 x i8] c"Sink\00" +@tn.str.205 = private constant [6 x i8] c"*Sink\00" +@tn.str.206 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.207 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.208 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.209 = private constant [7 x i8] c"Parser\00" +@tn.str.210 = private constant [8 x i8] c"*Parser\00" +@tn.str.211 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.212 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.213 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.214 = private constant [13 x i8] c"Architecture\00" +@tn.str.215 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.216 = private constant [11 x i8] c"() -> bool\00" +@tn.str.217 = private constant [5 x i8] c"*s64\00" +@tn.str.218 = private constant [9 x i8] c"CliError\00" +@tn.str.219 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.220 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.221 = private constant [8 x i8] c"Command\00" +@tn.str.222 = private constant [10 x i8] c"FlagValue\00" +@tn.str.223 = private constant [5 x i8] c"Diag\00" +@tn.str.224 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.225 = private constant [7 x i8] c"Parsed\00" +@tn.str.226 = private constant [8 x i8] c"*Parsed\00" +@tn.str.227 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.228 = private constant [10 x i8] c"[]Command\00" +@tn.str.229 = private constant [6 x i8] c"*Diag\00" +@tn.str.230 = private constant [7 x i8] c"[8]s64\00" +@tn.str.231 = private constant [7 x i8] c"[64]u8\00" +@tn.str.232 = private constant [7 x i8] c"Sha256\00" +@tn.str.233 = private constant [8 x i8] c"*Sha256\00" +@tn.str.234 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.235 = private constant [8 x i8] c"[64]s64\00" +@tn.str.236 = private constant [5 x i8] c"?s64\00" +@tn.str.237 = private constant [6 x i8] c"?bool\00" +@tn.str.238 = private constant [2 x i8] c"S\00" +@tn.str.239 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.240 = private constant [7 x i8] c"**void\00" +@tn.str.241 = private constant [3 x i8] c"*S\00" +@tn.str.242 = private constant [8 x i8] c"*string\00" +@tn.str.243 = private constant [6 x i8] c"[]Any\00" +@tn.str.244 = private constant [5 x i8] c"*Any\00" +@tn.str.245 = private constant [7 x i8] c"[1]Any\00" +@tn.str.246 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.247 = private constant [7 x i8] c"*[]Any\00" +@tn.str.248 = private constant [6 x i8] c"*bool\00" +@tn.str.249 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.250 = private constant [5 x i8] c"*f64\00" +@tn.str.251 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.252 = private constant [11 x i8] c"*Allocator\00" +@tn.str.253 = private constant [9 x i8] c"*Context\00" +@tn.str.254 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.255 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.256 = private constant [8 x i8] c"*Member\00" +@tn.str.257 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.258 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.259 = private constant [9 x i8] c"*Command\00" +@tn.str.260 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.261 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.262 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.263 = private constant [7 x i8] c"*Value\00" +@tn.str.264 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.265 = private constant [14 x i8] c"*Architecture\00" +@tn.str.266 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.267 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.268 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.269 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.270 = private constant [10 x i8] c"*[]string\00" +@tn.str.271 = private constant [6 x i8] c"*[]u8\00" +@tn.str.272 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.273 = private constant [11 x i8] c"*[]Command\00" +@tn.str.274 = private constant [6 x i8] c"**GPA\00" +@tn.str.275 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.276 = private constant [8 x i8] c"**Arena\00" +@tn.str.277 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.278 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.279 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.280 = private constant [7 x i8] c"**File\00" +@tn.str.281 = private constant [5 x i8] c"**u8\00" +@tn.str.282 = private constant [6 x i8] c"**s32\00" +@tn.str.283 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.284 = private constant [6 x i8] c"**u32\00" +@tn.str.285 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.286 = private constant [8 x i8] c"**Array\00" +@tn.str.287 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.288 = private constant [9 x i8] c"**Object\00" +@tn.str.289 = private constant [7 x i8] c"**Sink\00" +@tn.str.290 = private constant [9 x i8] c"**Parser\00" +@tn.str.291 = private constant [6 x i8] c"**s64\00" +@tn.str.292 = private constant [9 x i8] c"**Parsed\00" +@tn.str.293 = private constant [7 x i8] c"**Diag\00" +@tn.str.294 = private constant [9 x i8] c"**Sha256\00" +@tn.str.295 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.296 = private constant [8 x i8] c"***void\00" +@tn.str.297 = private constant [4 x i8] c"**S\00" +@tn.str.298 = private constant [9 x i8] c"**string\00" +@tn.str.299 = private constant [6 x i8] c"**Any\00" +@tn.str.300 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.301 = private constant [8 x i8] c"**[]Any\00" +@tn.str.302 = private constant [7 x i8] c"**bool\00" +@tn.str.303 = private constant [7 x i8] c"*?File\00" +@tn.str.304 = private constant [9 x i8] c"*?string\00" +@tn.str.305 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.306 = private constant [9 x i8] c"*?[64]u8\00" +@tn.str.307 = private constant [6 x i8] c"*?s64\00" +@tn.str.308 = private constant [7 x i8] c"*?bool\00" +@__sx_type_names = private constant [166 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.144, i64 4 }, { ptr, i64 } { ptr @tn.str.145, i64 2 }, { ptr, i64 } { ptr @tn.str.146, i64 3 }, { ptr, i64 } { ptr @tn.str.147, i64 3 }, { ptr, i64 } { ptr @tn.str.148, i64 3 }, { ptr, i64 } { ptr @tn.str.149, i64 2 }, { ptr, i64 } { ptr @tn.str.150, i64 3 }, { ptr, i64 } { ptr @tn.str.151, i64 3 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 6 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 8 }, { ptr, i64 } { ptr @tn.str.158, i64 5 }, { ptr, i64 } { ptr @tn.str.159, i64 5 }, { ptr, i64 } { ptr @tn.str.160, i64 4 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 15 }, { ptr, i64 } { ptr @tn.str.163, i64 10 }, { ptr, i64 } { ptr @tn.str.164, i64 11 }, { ptr, i64 } { ptr @tn.str.165, i64 3 }, { ptr, i64 } { ptr @tn.str.166, i64 4 }, { ptr, i64 } { ptr @tn.str.167, i64 10 }, { ptr, i64 } { ptr @tn.str.168, i64 11 }, { ptr, i64 } { ptr @tn.str.169, i64 9 }, { ptr, i64 } { ptr @tn.str.170, i64 5 }, { ptr, i64 } { ptr @tn.str.171, i64 6 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 8 }, { ptr, i64 } { ptr @tn.str.174, i64 9 }, { ptr, i64 } { ptr @tn.str.175, i64 17 }, { ptr, i64 } { ptr @tn.str.176, i64 18 }, { ptr, i64 } { ptr @tn.str.177, i64 7 }, { ptr, i64 } { ptr @tn.str.178, i64 6 }, { ptr, i64 } { ptr @tn.str.179, i64 8 }, { ptr, i64 } { ptr @tn.str.180, i64 8 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 4 }, { ptr, i64 } { ptr @tn.str.183, i64 5 }, { ptr, i64 } { ptr @tn.str.184, i64 5 }, { ptr, i64 } { ptr @tn.str.185, i64 7 }, { ptr, i64 } { ptr @tn.str.186, i64 10 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 13 }, { ptr, i64 } { ptr @tn.str.189, i64 14 }, { ptr, i64 } { ptr @tn.str.190, i64 4 }, { ptr, i64 } { ptr @tn.str.191, i64 8 }, { ptr, i64 } { ptr @tn.str.192, i64 9 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 6 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 8 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 9 }, { ptr, i64 } { ptr @tn.str.202, i64 7 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 4 }, { ptr, i64 } { ptr @tn.str.205, i64 5 }, { ptr, i64 } { ptr @tn.str.206, i64 16 }, { ptr, i64 } { ptr @tn.str.207, i64 14 }, { ptr, i64 } { ptr @tn.str.208, i64 21 }, { ptr, i64 } { ptr @tn.str.209, i64 6 }, { ptr, i64 } { ptr @tn.str.210, i64 7 }, { ptr, i64 } { ptr @tn.str.211, i64 24 }, { ptr, i64 } { ptr @tn.str.212, i64 23 }, { ptr, i64 } { ptr @tn.str.213, i64 15 }, { ptr, i64 } { ptr @tn.str.214, i64 12 }, { ptr, i64 } { ptr @tn.str.215, i64 12 }, { ptr, i64 } { ptr @tn.str.216, i64 10 }, { ptr, i64 } { ptr @tn.str.217, i64 4 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 8 }, { ptr, i64 } { ptr @tn.str.220, i64 10 }, { ptr, i64 } { ptr @tn.str.221, i64 7 }, { ptr, i64 } { ptr @tn.str.222, i64 9 }, { ptr, i64 } { ptr @tn.str.223, i64 4 }, { ptr, i64 } { ptr @tn.str.224, i64 13 }, { ptr, i64 } { ptr @tn.str.225, i64 6 }, { ptr, i64 } { ptr @tn.str.226, i64 7 }, { ptr, i64 } { ptr @tn.str.227, i64 18 }, { ptr, i64 } { ptr @tn.str.228, i64 9 }, { ptr, i64 } { ptr @tn.str.229, i64 5 }, { ptr, i64 } { ptr @tn.str.230, i64 6 }, { ptr, i64 } { ptr @tn.str.231, i64 6 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 7 }, { ptr, i64 } { ptr @tn.str.234, i64 7 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 4 }, { ptr, i64 } { ptr @tn.str.237, i64 5 }, { ptr, i64 } { ptr @tn.str.238, i64 1 }, { ptr, i64 } { ptr @tn.str.239, i64 12 }, { ptr, i64 } { ptr @tn.str.240, i64 6 }, { ptr, i64 } { ptr @tn.str.241, i64 2 }, { ptr, i64 } { ptr @tn.str.242, i64 7 }, { ptr, i64 } { ptr @tn.str.243, i64 5 }, { ptr, i64 } { ptr @tn.str.244, i64 4 }, { ptr, i64 } { ptr @tn.str.245, i64 6 }, { ptr, i64 } { ptr @tn.str.246, i64 7 }, { ptr, i64 } { ptr @tn.str.247, i64 6 }, { ptr, i64 } { ptr @tn.str.248, i64 5 }, { ptr, i64 } { ptr @tn.str.249, i64 7 }, { ptr, i64 } { ptr @tn.str.250, i64 4 }, { ptr, i64 } { ptr @tn.str.251, i64 16 }, { ptr, i64 } { ptr @tn.str.252, i64 10 }, { ptr, i64 } { ptr @tn.str.253, i64 8 }, { ptr, i64 } { ptr @tn.str.254, i64 11 }, { ptr, i64 } { ptr @tn.str.255, i64 14 }, { ptr, i64 } { ptr @tn.str.256, i64 7 }, { ptr, i64 } { ptr @tn.str.257, i64 13 }, { ptr, i64 } { ptr @tn.str.258, i64 9 }, { ptr, i64 } { ptr @tn.str.259, i64 8 }, { ptr, i64 } { ptr @tn.str.260, i64 10 }, { ptr, i64 } { ptr @tn.str.261, i64 9 }, { ptr, i64 } { ptr @tn.str.262, i64 9 }, { ptr, i64 } { ptr @tn.str.263, i64 6 }, { ptr, i64 } { ptr @tn.str.264, i64 16 }, { ptr, i64 } { ptr @tn.str.265, i64 13 }, { ptr, i64 } { ptr @tn.str.266, i64 14 }, { ptr, i64 } { ptr @tn.str.267, i64 7 }, { ptr, i64 } { ptr @tn.str.268, i64 7 }, { ptr, i64 } { ptr @tn.str.269, i64 8 }, { ptr, i64 } { ptr @tn.str.270, i64 9 }, { ptr, i64 } { ptr @tn.str.271, i64 5 }, { ptr, i64 } { ptr @tn.str.272, i64 11 }, { ptr, i64 } { ptr @tn.str.273, i64 10 }, { ptr, i64 } { ptr @tn.str.274, i64 5 }, { ptr, i64 } { ptr @tn.str.275, i64 12 }, { ptr, i64 } { ptr @tn.str.276, i64 7 }, { ptr, i64 } { ptr @tn.str.277, i64 6 }, { ptr, i64 } { ptr @tn.str.278, i64 10 }, { ptr, i64 } { ptr @tn.str.279, i64 19 }, { ptr, i64 } { ptr @tn.str.280, i64 6 }, { ptr, i64 } { ptr @tn.str.281, i64 4 }, { ptr, i64 } { ptr @tn.str.282, i64 5 }, { ptr, i64 } { ptr @tn.str.283, i64 10 }, { ptr, i64 } { ptr @tn.str.284, i64 5 }, { ptr, i64 } { ptr @tn.str.285, i64 9 }, { ptr, i64 } { ptr @tn.str.286, i64 7 }, { ptr, i64 } { ptr @tn.str.287, i64 10 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 6 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 5 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 6 }, { ptr, i64 } { ptr @tn.str.294, i64 8 }, { ptr, i64 } { ptr @tn.str.295, i64 13 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 3 }, { ptr, i64 } { ptr @tn.str.298, i64 8 }, { ptr, i64 } { ptr @tn.str.299, i64 5 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 7 }, { ptr, i64 } { ptr @tn.str.302, i64 6 }, { ptr, i64 } { ptr @tn.str.303, i64 6 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }, { ptr, i64 } { ptr @tn.str.305, i64 15 }, { ptr, i64 } { ptr @tn.str.306, i64 8 }, { ptr, i64 } { ptr @tn.str.307, i64 5 }, { ptr, i64 } { ptr @tn.str.308, i64 6 }] +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.311 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.312 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.313 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.314 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.315 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.316 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.317 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.318 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.319 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.320 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.321 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.322 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.323 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.324 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.325 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.326 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.327 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.328 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.329 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.330 = private unnamed_addr constant [3 x i8] c"hi\00", align 1 +@str.331 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.332 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.333 = private unnamed_addr constant [4 x i8] c"{}\0A\00", align 1 +@str.334 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.335 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.336 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.337 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.132 = private constant [5 x i8] c"line\00" -@fld.str.133 = private constant [4 x i8] c"col\00" -@fld.str.134 = 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.132, i64 4 }, { ptr, i64 } { ptr @fld.str.133, i64 3 }, { ptr, i64 } { ptr @fld.str.134, i64 4 }] -@str.135 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.136 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.137 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.138 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.140 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.141 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.142 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.144 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.145 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.146 = private constant [12 x i8] c"alloc_count\00" -@field_names.147 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.146, i64 11 }] -@str.148 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.149 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.150 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.152 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.153 = private constant [5 x i8] c"next\00" -@fld.str.154 = private constant [4 x i8] c"cap\00" -@field_names.155 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.153, i64 4 }, { ptr, i64 } { ptr @fld.str.154, i64 3 }] -@str.156 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.157 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.158 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.159 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.160 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.161 = private constant [4 x i8] c"ctx\00" -@fld.str.162 = private constant [6 x i8] c"alloc\00" -@fld.str.163 = private constant [8 x i8] c"dealloc\00" -@field_names.164 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.161, i64 3 }, { ptr, i64 } { ptr @fld.str.162, i64 5 }, { ptr, i64 } { ptr @fld.str.163, i64 7 }] -@str.165 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.166 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.167 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.168 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.170 = private constant [6 x i8] c"first\00" -@fld.str.171 = private constant [10 x i8] c"end_index\00" -@fld.str.172 = private constant [7 x i8] c"parent\00" -@field_names.173 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.170, i64 5 }, { ptr, i64 } { ptr @fld.str.171, i64 9 }, { ptr, i64 } { ptr @fld.str.172, i64 6 }] -@str.174 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.175 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.176 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.177 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.178 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.179 = private constant [4 x i8] c"buf\00" -@fld.str.180 = private constant [4 x i8] c"len\00" -@fld.str.181 = private constant [4 x i8] c"pos\00" -@field_names.182 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.179, i64 3 }, { ptr, i64 } { ptr @fld.str.180, i64 3 }, { ptr, i64 } { ptr @fld.str.181, i64 3 }] -@str.183 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.184 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.185 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.186 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.187 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.188 = private constant [7 x i8] c"parent\00" -@fld.str.189 = private constant [12 x i8] c"alloc_count\00" -@fld.str.190 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.191 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.192 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.188, i64 6 }, { ptr, i64 } { ptr @fld.str.189, i64 11 }, { ptr, i64 } { ptr @fld.str.190, i64 13 }, { ptr, i64 } { ptr @fld.str.191, i64 17 }] -@str.193 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.194 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.195 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.196 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.197 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.198 = private constant [10 x i8] c"allocator\00" -@fld.str.199 = private constant [5 x i8] c"data\00" -@field_names.200 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.198, i64 9 }, { ptr, i64 } { ptr @fld.str.199, i64 4 }] -@str.201 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"S\00", align 1 -@str.203 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.204 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.205 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.206 = private constant [2 x i8] c"a\00" -@fld.str.207 = private constant [2 x i8] c"b\00" -@fld.str.208 = private constant [2 x i8] c"c\00" -@field_names.209 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.206, i64 1 }, { ptr, i64 } { ptr @fld.str.207, i64 1 }, { ptr, i64 } { ptr @fld.str.208, i64 1 }] -@str.210 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.212 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.213 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.214 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.215 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.216 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.217 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.218 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.219 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.220 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.221 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.222 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.223 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.224 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.225 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.226 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.227 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.228 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.229 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.230 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.231 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.232 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.233 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.234 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.235 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.236 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.237 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.238 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.239 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.240 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.241 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.242 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.243 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.244 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.245 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.246 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.247 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.248 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.249 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.250 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.251 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.252 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.253 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.254 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.255 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.256 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.257 = private unnamed_addr constant [3 x i8] c"*S\00", align 1 -@str.258 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.259 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.260 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.261 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.262 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.263 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.264 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.265 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.266 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.267 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.268 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.269 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.270 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.271 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.272 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.273 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.274 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.275 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.276 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.277 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.278 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.279 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@fld.str.338 = private constant [5 x i8] c"line\00" +@fld.str.339 = private constant [4 x i8] c"col\00" +@fld.str.340 = 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.338, i64 4 }, { ptr, i64 } { ptr @fld.str.339, i64 3 }, { ptr, i64 } { ptr @fld.str.340, i64 4 }] +@str.341 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.342 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.343 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.344 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.345 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.346 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.347 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.348 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.349 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.350 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.351 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.352 = private constant [12 x i8] c"alloc_count\00" +@field_names.353 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.352, i64 11 }] +@str.354 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.355 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.356 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.357 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.358 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.359 = private constant [5 x i8] c"next\00" +@fld.str.360 = private constant [4 x i8] c"cap\00" +@field_names.361 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.359, i64 4 }, { ptr, i64 } { ptr @fld.str.360, i64 3 }] +@str.362 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.363 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.364 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.365 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.366 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.367 = private constant [4 x i8] c"ctx\00" +@fld.str.368 = private constant [6 x i8] c"alloc\00" +@fld.str.369 = private constant [8 x i8] c"dealloc\00" +@field_names.370 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.367, i64 3 }, { ptr, i64 } { ptr @fld.str.368, i64 5 }, { ptr, i64 } { ptr @fld.str.369, i64 7 }] +@str.371 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.372 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.373 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.374 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.375 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.376 = private constant [6 x i8] c"first\00" +@fld.str.377 = private constant [10 x i8] c"end_index\00" +@fld.str.378 = private constant [7 x i8] c"parent\00" +@field_names.379 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.376, i64 5 }, { ptr, i64 } { ptr @fld.str.377, i64 9 }, { ptr, i64 } { ptr @fld.str.378, i64 6 }] +@str.380 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.381 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.382 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.383 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.384 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.385 = private constant [4 x i8] c"buf\00" +@fld.str.386 = private constant [4 x i8] c"len\00" +@fld.str.387 = private constant [4 x i8] c"pos\00" +@field_names.388 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.385, i64 3 }, { ptr, i64 } { ptr @fld.str.386, i64 3 }, { ptr, i64 } { ptr @fld.str.387, i64 3 }] +@str.389 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.390 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.391 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.392 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.393 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.394 = private constant [7 x i8] c"parent\00" +@fld.str.395 = private constant [12 x i8] c"alloc_count\00" +@fld.str.396 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.397 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.398 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.394, i64 6 }, { ptr, i64 } { ptr @fld.str.395, i64 11 }, { ptr, i64 } { ptr @fld.str.396, i64 13 }, { ptr, i64 } { ptr @fld.str.397, i64 17 }] +@str.399 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.400 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.401 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.402 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.403 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.404 = private constant [10 x i8] c"allocator\00" +@fld.str.405 = private constant [5 x i8] c"data\00" +@field_names.406 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.404, i64 9 }, { ptr, i64 } { ptr @fld.str.405, i64 4 }] +@str.407 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.408 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.409 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.410 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.411 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.412 = private constant [3 x i8] c"fd\00" +@field_names.413 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.412, i64 2 }] +@str.414 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.415 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.416 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.417 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.418 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.419 = private constant [5 x i8] c"file\00" +@fld.str.420 = private constant [5 x i8] c"line\00" +@fld.str.421 = private constant [4 x i8] c"col\00" +@fld.str.422 = private constant [5 x i8] c"func\00" +@fld.str.423 = private constant [10 x i8] c"line_text\00" +@field_names.424 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.419, i64 4 }, { ptr, i64 } { ptr @fld.str.420, i64 4 }, { ptr, i64 } { ptr @fld.str.421, i64 3 }, { ptr, i64 } { ptr @fld.str.422, i64 4 }, { ptr, i64 } { ptr @fld.str.423, i64 9 }] +@str.425 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.426 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.427 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.428 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.429 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.430 = private constant [10 x i8] c"exit_code\00" +@fld.str.431 = private constant [7 x i8] c"stdout\00" +@field_names.432 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.430, i64 9 }, { ptr, i64 } { ptr @fld.str.431, i64 6 }] +@str.433 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.434 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.435 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.436 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.437 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.438 = private constant [8 x i8] c"sin_len\00" +@fld.str.439 = private constant [11 x i8] c"sin_family\00" +@fld.str.440 = private constant [9 x i8] c"sin_port\00" +@fld.str.441 = private constant [9 x i8] c"sin_addr\00" +@fld.str.442 = private constant [9 x i8] c"sin_zero\00" +@field_names.443 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.438, i64 7 }, { ptr, i64 } { ptr @fld.str.439, i64 10 }, { ptr, i64 } { ptr @fld.str.440, i64 8 }, { ptr, i64 } { ptr @fld.str.441, i64 8 }, { ptr, i64 } { ptr @fld.str.442, i64 8 }] +@str.444 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.445 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.446 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.447 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.448 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.449 = private constant [6 x i8] c"items\00" +@fld.str.450 = private constant [4 x i8] c"len\00" +@fld.str.451 = private constant [4 x i8] c"cap\00" +@field_names.452 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.449, i64 5 }, { ptr, i64 } { ptr @fld.str.450, i64 3 }, { ptr, i64 } { ptr @fld.str.451, i64 3 }] +@str.453 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.454 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.455 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.456 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.457 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.458 = private constant [6 x i8] c"items\00" +@fld.str.459 = private constant [4 x i8] c"len\00" +@fld.str.460 = private constant [4 x i8] c"cap\00" +@field_names.461 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.458, i64 5 }, { ptr, i64 } { ptr @fld.str.459, i64 3 }, { ptr, i64 } { ptr @fld.str.460, i64 3 }] +@str.462 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.463 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.464 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.465 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.466 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.467 = private constant [4 x i8] c"key\00" +@fld.str.468 = private constant [4 x i8] c"val\00" +@field_names.469 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.467, i64 3 }, { ptr, i64 } { ptr @fld.str.468, i64 3 }] +@str.470 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.471 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.472 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.473 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.474 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.475 = private constant [4 x i8] c"dst\00" +@fld.str.476 = private constant [4 x i8] c"pos\00" +@fld.str.477 = private constant [5 x i8] c"file\00" +@field_names.478 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.475, i64 3 }, { ptr, i64 } { ptr @fld.str.476, i64 3 }, { ptr, i64 } { ptr @fld.str.477, i64 4 }] +@str.479 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.480 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.481 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.482 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.483 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.484 = private constant [4 x i8] c"src\00" +@fld.str.485 = private constant [4 x i8] c"pos\00" +@fld.str.486 = private constant [6 x i8] c"alloc\00" +@field_names.487 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.484, i64 3 }, { ptr, i64 } { ptr @fld.str.485, i64 3 }, { ptr, i64 } { ptr @fld.str.486, i64 5 }] +@str.488 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.489 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.490 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.491 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.492 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.493 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.494 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.495 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.496 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.497 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.498 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.499 = private constant [5 x i8] c"name\00" +@fld.str.500 = private constant [12 x i8] c"takes_value\00" +@fld.str.501 = private constant [9 x i8] c"required\00" +@field_names.502 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.499, i64 4 }, { ptr, i64 } { ptr @fld.str.500, i64 11 }, { ptr, i64 } { ptr @fld.str.501, i64 8 }] +@str.503 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.504 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.505 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.506 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.507 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.508 = private constant [6 x i8] c"group\00" +@fld.str.509 = private constant [8 x i8] c"command\00" +@fld.str.510 = private constant [6 x i8] c"flags\00" +@field_names.511 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.508, i64 5 }, { ptr, i64 } { ptr @fld.str.509, i64 7 }, { ptr, i64 } { ptr @fld.str.510, i64 5 }] +@str.512 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.513 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.514 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.515 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.516 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.517 = private constant [4 x i8] c"set\00" +@fld.str.518 = private constant [6 x i8] c"value\00" +@field_names.519 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.517, i64 3 }, { ptr, i64 } { ptr @fld.str.518, i64 5 }] +@str.520 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.521 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.522 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.523 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.524 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.525 = private constant [6 x i8] c"index\00" +@fld.str.526 = private constant [6 x i8] c"token\00" +@field_names.527 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.525, i64 5 }, { ptr, i64 } { ptr @fld.str.526, i64 5 }] +@str.528 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.529 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.530 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.531 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.532 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.533 = private constant [6 x i8] c"group\00" +@fld.str.534 = private constant [8 x i8] c"command\00" +@fld.str.535 = private constant [10 x i8] c"cmd_index\00" +@fld.str.536 = private constant [5 x i8] c"json\00" +@fld.str.537 = private constant [5 x i8] c"rest\00" +@fld.str.538 = private constant [5 x i8] c"spec\00" +@fld.str.539 = private constant [7 x i8] c"values\00" +@field_names.540 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.533, i64 5 }, { ptr, i64 } { ptr @fld.str.534, i64 7 }, { ptr, i64 } { ptr @fld.str.535, i64 9 }, { ptr, i64 } { ptr @fld.str.536, i64 4 }, { ptr, i64 } { ptr @fld.str.537, i64 4 }, { ptr, i64 } { ptr @fld.str.538, i64 4 }, { ptr, i64 } { ptr @fld.str.539, i64 6 }] +@str.541 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.542 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.543 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.544 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.545 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.546 = private constant [2 x i8] c"h\00" +@fld.str.547 = private constant [4 x i8] c"buf\00" +@fld.str.548 = private constant [8 x i8] c"buf_len\00" +@fld.str.549 = private constant [10 x i8] c"total_len\00" +@field_names.550 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.546, i64 1 }, { ptr, i64 } { ptr @fld.str.547, i64 3 }, { ptr, i64 } { ptr @fld.str.548, i64 7 }, { ptr, i64 } { ptr @fld.str.549, i64 9 }] +@str.551 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.552 = private unnamed_addr constant [2 x i8] c"S\00", align 1 +@str.553 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.554 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.555 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.556 = private constant [2 x i8] c"a\00" +@fld.str.557 = private constant [2 x i8] c"b\00" +@fld.str.558 = private constant [2 x i8] c"c\00" +@field_names.559 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.556, i64 1 }, { ptr, i64 } { ptr @fld.str.557, i64 1 }, { ptr, i64 } { ptr @fld.str.558, i64 1 }] +@str.560 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.562 = private constant [5 x i8] c"read\00" +@fld.str.563 = private constant [6 x i8] c"write\00" +@fld.str.564 = private constant [7 x i8] c"append\00" +@fld.str.565 = private constant [11 x i8] c"read_write\00" +@field_names.566 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.562, i64 4 }, { ptr, i64 } { ptr @fld.str.563, i64 5 }, { ptr, i64 } { ptr @fld.str.564, i64 6 }, { ptr, i64 } { ptr @fld.str.565, i64 10 }] +@str.567 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.570 = private constant [4 x i8] c"set\00" +@fld.str.571 = private constant [8 x i8] c"current\00" +@fld.str.572 = private constant [4 x i8] c"end\00" +@field_names.573 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.570, i64 3 }, { ptr, i64 } { ptr @fld.str.571, i64 7 }, { ptr, i64 } { ptr @fld.str.572, i64 3 }] +@str.574 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.575 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.576 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.577 = private constant [6 x i8] c"null_\00" +@fld.str.578 = private constant [6 x i8] c"bool_\00" +@fld.str.579 = private constant [5 x i8] c"int_\00" +@fld.str.580 = private constant [4 x i8] c"str\00" +@fld.str.581 = private constant [6 x i8] c"array\00" +@fld.str.582 = private constant [7 x i8] c"object\00" +@field_names.583 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.577, i64 5 }, { ptr, i64 } { ptr @fld.str.578, i64 5 }, { ptr, i64 } { ptr @fld.str.579, i64 4 }, { ptr, i64 } { ptr @fld.str.580, i64 3 }, { ptr, i64 } { ptr @fld.str.581, i64 5 }, { ptr, i64 } { ptr @fld.str.582, i64 6 }] +@str.584 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.585 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.586 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.587 = private constant [6 x i8] c"macos\00" +@fld.str.588 = private constant [6 x i8] c"linux\00" +@fld.str.589 = private constant [8 x i8] c"windows\00" +@fld.str.590 = private constant [5 x i8] c"wasm\00" +@fld.str.591 = private constant [4 x i8] c"ios\00" +@fld.str.592 = private constant [8 x i8] c"android\00" +@fld.str.593 = private constant [8 x i8] c"unknown\00" +@field_names.594 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.587, i64 5 }, { ptr, i64 } { ptr @fld.str.588, i64 5 }, { ptr, i64 } { ptr @fld.str.589, i64 7 }, { ptr, i64 } { ptr @fld.str.590, i64 4 }, { ptr, i64 } { ptr @fld.str.591, i64 3 }, { ptr, i64 } { ptr @fld.str.592, i64 7 }, { ptr, i64 } { ptr @fld.str.593, i64 7 }] +@str.595 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.596 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.597 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.598 = private constant [8 x i8] c"aarch64\00" +@fld.str.599 = private constant [7 x i8] c"x86_64\00" +@fld.str.600 = private constant [7 x i8] c"wasm32\00" +@fld.str.601 = private constant [7 x i8] c"wasm64\00" +@fld.str.602 = private constant [8 x i8] c"unknown\00" +@field_names.603 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.598, i64 7 }, { ptr, i64 } { ptr @fld.str.599, i64 6 }, { ptr, i64 } { ptr @fld.str.600, i64 6 }, { ptr, i64 } { ptr @fld.str.601, i64 6 }, { ptr, i64 } { ptr @fld.str.602, i64 7 }] +@str.604 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.608 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.609 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.611 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.612 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.614 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.617 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.618 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.620 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.623 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.624 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.626 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.627 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.628 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.629 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.630 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.631 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.632 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.633 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.634 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.635 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.636 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.637 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.638 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.639 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.640 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.641 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.642 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.643 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.644 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.645 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.646 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.647 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.648 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.649 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.650 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.651 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.652 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.653 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.654 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.655 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.656 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.657 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.658 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.659 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.660 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.661 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.662 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.663 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.664 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.665 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.666 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.667 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.668 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.669 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.670 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.671 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.672 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.673 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.674 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.675 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.677 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.678 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.679 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.680 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.681 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.682 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.683 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.684 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.685 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.686 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.687 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.688 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.689 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.690 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.691 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.692 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.693 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.694 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.695 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.696 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.698 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.699 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.700 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.701 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.702 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.703 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.704 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.705 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.706 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.707 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.708 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.709 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.710 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.711 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.712 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.713 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.714 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.715 = private unnamed_addr constant [3 x i8] c"*S\00", align 1 +@str.716 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.718 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.719 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.722 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.723 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.724 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.725 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.728 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.729 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.730 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.731 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.732 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.733 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.734 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.735 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.736 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.737 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -496,7 +852,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -623,7 +979,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.78 ], [ { ptr @str.127, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -792,38 +1148,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.377 -while.hdr.209: ; preds = %if.merge.214, %entry +while.hdr.377: ; preds = %if.merge.382, %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.210, label %while.exit.211 + br i1 %icmp, label %while.body.378, label %while.exit.379 -while.body.210: ; preds = %while.hdr.209 +while.body.378: ; preds = %while.hdr.377 %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.212, label %if.else.213 + br i1 %icmpN, label %if.then.380, label %if.else.381 -while.exit.211: ; preds = %while.hdr.209 +while.exit.379: ; preds = %while.hdr.377 ret void -if.then.212: ; preds = %while.body.210 +if.then.380: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.214 + br label %if.merge.382 -if.else.213: ; preds = %while.body.210 +if.else.381: ; preds = %while.body.378 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.214 + br label %if.merge.382 -if.merge.214: ; preds = %if.else.213, %if.then.212 - %bp = phi i64 [ %addN, %if.then.212 ], [ %addN, %if.else.213 ] +if.merge.382: ; preds = %if.else.381, %if.then.380 + %bp = phi i64 [ %addN, %if.then.380 ], [ %addN, %if.else.381 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -836,7 +1192,7 @@ if.merge.214: ; preds = %if.else.213, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.209 + br label %while.hdr.377 } ; Function Attrs: nounwind @@ -954,12 +1310,12 @@ entry: 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.207, label %if.merge.208 + br i1 %icmp, label %if.then.375, label %if.merge.376 -if.then.207: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.375: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.208: ; preds = %entry +if.merge.376: ; 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 @@ -990,14 +1346,14 @@ if.merge.208: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.215 + br label %while.hdr.383 -while.hdr.215: ; preds = %if.merge.219, %if.merge.208 +while.hdr.383: ; preds = %if.merge.387, %if.merge.376 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.216, label %while.exit.217 + br i1 %icmpN, label %while.body.384, label %while.exit.385 -while.body.216: ; preds = %while.hdr.215 +while.body.384: ; preds = %while.hdr.383 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1005,9 +1361,9 @@ while.body.216: ; preds = %while.hdr.215 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.218, label %if.merge.219 + br i1 %icmpN, label %if.then.386, label %if.merge.387 -while.exit.217: ; preds = %if.then.218, %while.hdr.215 +while.exit.385: ; preds = %if.then.386, %while.hdr.383 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1015,14 +1371,14 @@ while.exit.217: ; preds = %if.then.218, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.218: ; preds = %while.body.216 - br label %while.exit.217 +if.then.386: ; preds = %while.body.384 + br label %while.exit.385 -if.merge.219: ; preds = %while.body.216 +if.merge.387: ; preds = %while.body.384 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.215 + br label %while.hdr.383 } ; Function Attrs: nounwind @@ -1100,12 +1456,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1138,11 +1496,42 @@ entry: i64 30, label %match.arm.43 i64 32, label %match.arm.43 i64 34, label %match.arm.43 - i64 40, label %match.arm.43 + i64 39, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 95, label %match.arm.43 + i64 37, label %match.arm.44 + i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 48, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 102, label %match.arm.47 i64 36, label %match.arm.48 - i64 46, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 100, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1151,28 +1540,44 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 41, label %match.arm.49 - i64 42, label %match.arm.49 - i64 43, label %match.arm.49 + i64 40, label %match.arm.49 i64 44, label %match.arm.49 - i64 45, label %match.arm.49 i64 47, label %match.arm.49 i64 49, label %match.arm.49 i64 50, label %match.arm.49 - i64 51, label %match.arm.49 - i64 52, label %match.arm.49 - i64 37, label %match.arm.50 - i64 38, label %match.arm.50 - i64 39, label %match.arm.50 + i64 56, label %match.arm.49 + i64 57, label %match.arm.49 + i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 96, label %match.arm.49 + i64 97, label %match.arm.49 + i64 98, label %match.arm.49 + i64 99, label %match.arm.49 + i64 101, label %match.arm.49 + i64 103, label %match.arm.49 + i64 104, label %match.arm.49 + i64 105, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 + i64 93, label %match.arm.50 + i64 94, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.271, %dispatch.merge.184, %dispatch.merge.170, %dispatch.merge.156, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.478, %dispatch.merge.339, %dispatch.merge.307, %dispatch.merge.269, %dispatch.merge.252, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1181,7 +1586,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [78 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [166 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1209,7 +1614,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1223,78 +1628,135 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.102 i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 - i64 40, label %dispatch.case.105 + i64 39, label %dispatch.case.105 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 95, label %dispatch.case.121 ] -match.arm.44: ; No predecessors! - unreachable +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw20, label %dispatch.default.253 [ + i64 37, label %dispatch.case.254 + i64 38, label %dispatch.case.255 + i64 54, label %dispatch.case.256 + i64 70, label %dispatch.case.257 + i64 71, label %dispatch.case.258 + ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.157 [ - i64 35, label %dispatch.case.158 - i64 48, label %dispatch.case.159 + switch i64 %ua.raw29, label %dispatch.default.270 [ + i64 35, label %dispatch.case.271 + i64 81, label %dispatch.case.272 + i64 87, label %dispatch.case.273 + i64 88, label %dispatch.case.274 + i64 92, label %dispatch.case.275 + i64 102, label %dispatch.case.276 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.171 [ - i64 36, label %dispatch.case.172 - i64 46, label %dispatch.case.173 + switch i64 %ua.raw33, label %dispatch.default.308 [ + i64 36, label %dispatch.case.309 + i64 60, label %dispatch.case.310 + i64 77, label %dispatch.case.311 + i64 85, label %dispatch.case.312 + i64 100, label %dispatch.case.313 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.185 [ - i64 18, label %dispatch.case.186 - i64 21, label %dispatch.case.187 - i64 23, label %dispatch.case.188 - i64 25, label %dispatch.case.189 - i64 28, label %dispatch.case.190 - i64 29, label %dispatch.case.191 - i64 31, label %dispatch.case.192 - i64 33, label %dispatch.case.193 - i64 41, label %dispatch.case.194 - i64 42, label %dispatch.case.195 - i64 43, label %dispatch.case.196 - i64 44, label %dispatch.case.197 - i64 45, label %dispatch.case.198 - i64 47, label %dispatch.case.199 - i64 49, label %dispatch.case.200 - i64 50, label %dispatch.case.201 - i64 51, label %dispatch.case.202 - i64 52, label %dispatch.case.203 + switch i64 %ua.raw37, label %dispatch.default.340 [ + i64 18, label %dispatch.case.341 + i64 21, label %dispatch.case.342 + i64 23, label %dispatch.case.343 + i64 25, label %dispatch.case.344 + i64 28, label %dispatch.case.345 + i64 29, label %dispatch.case.346 + i64 31, label %dispatch.case.347 + i64 33, label %dispatch.case.348 + i64 40, label %dispatch.case.349 + i64 44, label %dispatch.case.350 + i64 47, label %dispatch.case.351 + i64 49, label %dispatch.case.352 + i64 50, label %dispatch.case.353 + i64 56, label %dispatch.case.354 + i64 57, label %dispatch.case.355 + i64 58, label %dispatch.case.356 + i64 59, label %dispatch.case.357 + i64 62, label %dispatch.case.358 + i64 67, label %dispatch.case.359 + i64 74, label %dispatch.case.360 + i64 83, label %dispatch.case.361 + i64 86, label %dispatch.case.362 + i64 90, label %dispatch.case.363 + i64 96, label %dispatch.case.364 + i64 97, label %dispatch.case.365 + i64 98, label %dispatch.case.366 + i64 99, label %dispatch.case.367 + i64 101, label %dispatch.case.368 + i64 103, label %dispatch.case.369 + i64 104, label %dispatch.case.370 + i64 105, label %dispatch.case.371 ] -match.arm.50: ; preds = %entry, %entry, %entry +match.arm.50: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw32 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw32, label %dispatch.default.272 [ - i64 37, label %dispatch.case.273 - i64 38, label %dispatch.case.274 - i64 39, label %dispatch.case.275 + switch i64 %ua.raw41, label %dispatch.default.479 [ + i64 41, label %dispatch.case.480 + i64 42, label %dispatch.case.481 + i64 46, label %dispatch.case.482 + i64 91, label %dispatch.case.483 + i64 93, label %dispatch.case.484 + i64 94, label %dispatch.case.485 ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag36 = extractvalue { i64, i64 } %loadN, 0 - %refl.val37 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype38 = icmp eq i64 %refl.tag36, 13 - %refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36 - %tn.gep = getelementptr inbounds [78 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [166 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1304,15 +1766,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw44 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1320,16 +1782,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw46 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw46 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw47 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1339,312 +1801,652 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.104, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load {}, ptr %ua.ptr56, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, ptr, ptr }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load69) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, ptr %ua.ptr88, align 8 - %callN = call { ptr, i64 } @struct_to_string__S(ptr %0, { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %ua.load89) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.156: ; preds = %dispatch.case.159, %dispatch.case.158, %dispatch.default.157 +dispatch.case.106: ; preds = %match.arm.43 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.107: ; preds = %match.arm.43 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, ptr %ua.ptr161, align 8 + %callN = call { ptr, i64 } @struct_to_string__S(ptr %0, { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.252: ; preds = %dispatch.case.258, %dispatch.case.257, %dispatch.case.256, %dispatch.case.255, %dispatch.case.254, %dispatch.default.253 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.157: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.105, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.156 +dispatch.default.253: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.310, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.252 -dispatch.case.158: ; preds = %match.arm.47 - %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr - %ua.load94 = load [4 x i64], ptr %ua.ptr93, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load94) +dispatch.case.254: ; preds = %match.arm.44 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw165) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.156 + br label %dispatch.merge.252 -dispatch.case.159: ; preds = %match.arm.47 - %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr - %ua.load98 = load [1 x { i64, i64 }], ptr %ua.ptr97, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load98) +dispatch.case.255: ; preds = %match.arm.44 + %ua.raw167 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw167) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.156 + br label %dispatch.merge.252 -dispatch.merge.170: ; preds = %dispatch.case.173, %dispatch.case.172, %dispatch.default.171 +dispatch.case.256: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr170 = inttoptr i64 %ua.raw169 to ptr + %ua.load171 = load { i64, [24 x i8] }, ptr %ua.ptr170, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.252 + +dispatch.case.257: ; preds = %match.arm.44 + %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw173) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.252 + +dispatch.case.258: ; preds = %match.arm.44 + %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw175) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.252 + +dispatch.merge.269: ; preds = %dispatch.case.276, %dispatch.case.275, %dispatch.case.274, %dispatch.case.273, %dispatch.case.272, %dispatch.case.271, %dispatch.default.270 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.171: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.106, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.170 +dispatch.default.270: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.311, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.269 -dispatch.case.172: ; preds = %match.arm.48 - %ua.raw101 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr102 = inttoptr i64 %ua.raw101 to ptr - %ua.load103 = load { ptr, i64 }, ptr %ua.ptr102, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load103) +dispatch.case.271: ; preds = %match.arm.47 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [4 x i64], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.170 + br label %dispatch.merge.269 -dispatch.case.173: ; preds = %match.arm.48 - %ua.raw105 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr106 = inttoptr i64 %ua.raw105 to ptr - %ua.load107 = load { ptr, i64 }, ptr %ua.ptr106, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load107) +dispatch.case.272: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load184) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.170 + br label %dispatch.merge.269 -dispatch.merge.184: ; preds = %dispatch.case.203, %dispatch.case.202, %dispatch.case.201, %dispatch.case.200, %dispatch.case.199, %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.case.189, %dispatch.case.188, %dispatch.case.187, %dispatch.case.186, %dispatch.default.185 +dispatch.case.273: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [8 x i64], ptr %ua.ptr187, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.269 + +dispatch.case.274: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i8], ptr %ua.ptr191, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.269 + +dispatch.case.275: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [64 x i64], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.269 + +dispatch.case.276: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [1 x { i64, i64 }], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.269 + +dispatch.merge.307: ; preds = %dispatch.case.313, %dispatch.case.312, %dispatch.case.311, %dispatch.case.310, %dispatch.case.309, %dispatch.default.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.185: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.107, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.184 +dispatch.default.308: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.312, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.307 -dispatch.case.186: ; preds = %match.arm.49 - %ua.raw110 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw110 to ptr +dispatch.case.309: ; preds = %match.arm.48 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.310: ; preds = %match.arm.48 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.311: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.312: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.case.313: ; preds = %match.arm.48 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.307 + +dispatch.merge.339: ; preds = %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.case.344, %dispatch.case.343, %dispatch.case.342, %dispatch.case.341, %dispatch.default.340 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.340: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.313, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.341: ; preds = %match.arm.49 + %ua.raw224 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw224 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.187: ; preds = %match.arm.49 - %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 - %iNp113 = inttoptr i64 %ua.raw112 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp113) +dispatch.case.342: ; preds = %match.arm.49 + %ua.raw226 = extractvalue { i64, i64 } %loadN, 1 + %iNp227 = inttoptr i64 %ua.raw226 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp227) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.188: ; preds = %match.arm.49 - %ua.raw115 = extractvalue { i64, i64 } %loadN, 1 - %iNp116 = inttoptr i64 %ua.raw115 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp116) +dispatch.case.343: ; preds = %match.arm.49 + %ua.raw229 = extractvalue { i64, i64 } %loadN, 1 + %iNp230 = inttoptr i64 %ua.raw229 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp230) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.189: ; preds = %match.arm.49 - %ua.raw118 = extractvalue { i64, i64 } %loadN, 1 - %iNp119 = inttoptr i64 %ua.raw118 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp119) +dispatch.case.344: ; preds = %match.arm.49 + %ua.raw232 = extractvalue { i64, i64 } %loadN, 1 + %iNp233 = inttoptr i64 %ua.raw232 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp233) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.190: ; preds = %match.arm.49 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %iNp122 = inttoptr i64 %ua.raw121 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp122) +dispatch.case.345: ; preds = %match.arm.49 + %ua.raw235 = extractvalue { i64, i64 } %loadN, 1 + %iNp236 = inttoptr i64 %ua.raw235 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp236) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.191: ; preds = %match.arm.49 - %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 - %iNp125 = inttoptr i64 %ua.raw124 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp125) +dispatch.case.346: ; preds = %match.arm.49 + %ua.raw238 = extractvalue { i64, i64 } %loadN, 1 + %iNp239 = inttoptr i64 %ua.raw238 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp239) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.192: ; preds = %match.arm.49 - %ua.raw127 = extractvalue { i64, i64 } %loadN, 1 - %iNp128 = inttoptr i64 %ua.raw127 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp128) +dispatch.case.347: ; preds = %match.arm.49 + %ua.raw241 = extractvalue { i64, i64 } %loadN, 1 + %iNp242 = inttoptr i64 %ua.raw241 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp242) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.193: ; preds = %match.arm.49 - %ua.raw130 = extractvalue { i64, i64 } %loadN, 1 - %iNp131 = inttoptr i64 %ua.raw130 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp131) +dispatch.case.348: ; preds = %match.arm.49 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp245 = inttoptr i64 %ua.raw244 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp245) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.194: ; preds = %match.arm.49 - %ua.raw133 = extractvalue { i64, i64 } %loadN, 1 - %iNp134 = inttoptr i64 %ua.raw133 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp134) +dispatch.case.349: ; preds = %match.arm.49 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %iNp248 = inttoptr i64 %ua.raw247 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp248) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.195: ; preds = %match.arm.49 - %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 - %iNp137 = inttoptr i64 %ua.raw136 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp137) +dispatch.case.350: ; preds = %match.arm.49 + %ua.raw250 = extractvalue { i64, i64 } %loadN, 1 + %iNp251 = inttoptr i64 %ua.raw250 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp251) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.196: ; preds = %match.arm.49 - %ua.raw139 = extractvalue { i64, i64 } %loadN, 1 - %iNp140 = inttoptr i64 %ua.raw139 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp140) +dispatch.case.351: ; preds = %match.arm.49 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %iNp254 = inttoptr i64 %ua.raw253 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp254) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.197: ; preds = %match.arm.49 - %ua.raw142 = extractvalue { i64, i64 } %loadN, 1 - %iNp143 = inttoptr i64 %ua.raw142 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_S(ptr %0, ptr %iNp143) +dispatch.case.352: ; preds = %match.arm.49 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %iNp257 = inttoptr i64 %ua.raw256 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp257) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.198: ; preds = %match.arm.49 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp146) +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %iNp260 = inttoptr i64 %ua.raw259 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp260) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.199: ; preds = %match.arm.49 - %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp149) +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %iNp263 = inttoptr i64 %ua.raw262 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp263) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.200: ; preds = %match.arm.49 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp152) +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp266 = inttoptr i64 %ua.raw265 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp266) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.201: ; preds = %match.arm.49 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp155) +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %iNp269 = inttoptr i64 %ua.raw268 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp269) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.202: ; preds = %match.arm.49 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp158) +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw271 = extractvalue { i64, i64 } %loadN, 1 + %iNp272 = inttoptr i64 %ua.raw271 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp272) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.case.203: ; preds = %match.arm.49 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp161) +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw274 = extractvalue { i64, i64 } %loadN, 1 + %iNp275 = inttoptr i64 %ua.raw274 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp275) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.184 + br label %dispatch.merge.339 -dispatch.merge.271: ; preds = %dispatch.case.275, %dispatch.case.274, %dispatch.case.273, %dispatch.default.272 +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw277 = extractvalue { i64, i64 } %loadN, 1 + %iNp278 = inttoptr i64 %ua.raw277 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp278) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw280 = extractvalue { i64, i64 } %loadN, 1 + %iNp281 = inttoptr i64 %ua.raw280 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp281) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw283 = extractvalue { i64, i64 } %loadN, 1 + %iNp284 = inttoptr i64 %ua.raw283 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp284) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw286 = extractvalue { i64, i64 } %loadN, 1 + %iNp287 = inttoptr i64 %ua.raw286 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp287) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp290) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw292 = extractvalue { i64, i64 } %loadN, 1 + %iNp293 = inttoptr i64 %ua.raw292 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp293) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw295 = extractvalue { i64, i64 } %loadN, 1 + %iNp296 = inttoptr i64 %ua.raw295 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp296) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.366: ; preds = %match.arm.49 + %ua.raw298 = extractvalue { i64, i64 } %loadN, 1 + %iNp299 = inttoptr i64 %ua.raw298 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_S(ptr %0, ptr %iNp299) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.367: ; preds = %match.arm.49 + %ua.raw301 = extractvalue { i64, i64 } %loadN, 1 + %iNp302 = inttoptr i64 %ua.raw301 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp302) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.368: ; preds = %match.arm.49 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp305) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.369: ; preds = %match.arm.49 + %ua.raw307 = extractvalue { i64, i64 } %loadN, 1 + %iNp308 = inttoptr i64 %ua.raw307 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp308) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.370: ; preds = %match.arm.49 + %ua.raw310 = extractvalue { i64, i64 } %loadN, 1 + %iNp311 = inttoptr i64 %ua.raw310 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp311) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %iNp314 = inttoptr i64 %ua.raw313 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp314) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.339 + +dispatch.merge.478: ; preds = %dispatch.case.485, %dispatch.case.484, %dispatch.case.483, %dispatch.case.482, %dispatch.case.481, %dispatch.case.480, %dispatch.default.479 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.272: ; preds = %match.arm.50 - store { ptr, i64 } { ptr @str.108, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.271 +dispatch.default.479: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.314, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.478 -dispatch.case.273: ; preds = %match.arm.50 - %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr - %ua.load166 = load { i64, i1 }, ptr %ua.ptr165, align 8 - %callN = call { ptr, i64 } @optional_to_string__opt_s64(ptr %0, { i64, i1 } %ua.load166) +dispatch.case.480: ; preds = %match.arm.50 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { i32 }, i1 }, ptr %ua.ptr318, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load319) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.271 + br label %dispatch.merge.478 -dispatch.case.274: ; preds = %match.arm.50 - %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr - %ua.load170 = load { { ptr, i64 }, i1 }, ptr %ua.ptr169, align 8 - %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load170) +dispatch.case.481: ; preds = %match.arm.50 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { ptr, i64 }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load323) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.271 + br label %dispatch.merge.478 -dispatch.case.275: ; preds = %match.arm.50 - %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr173 = inttoptr i64 %ua.raw172 to ptr - %ua.load174 = load { i1, i1 }, ptr %ua.ptr173, align 1 - %callN = call { ptr, i64 } @optional_to_string__opt_bool(ptr %0, { i1, i1 } %ua.load174) +dispatch.case.482: ; preds = %match.arm.50 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr326, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load327) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.271 + br label %dispatch.merge.478 + +dispatch.case.483: ; preds = %match.arm.50 + %ua.raw329 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr330 = inttoptr i64 %ua.raw329 to ptr + %ua.load331 = load { [64 x i8], i1 }, ptr %ua.ptr330, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load331) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.484: ; preds = %match.arm.50 + %ua.raw333 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr334 = inttoptr i64 %ua.raw333 to ptr + %ua.load335 = load { i64, i1 }, ptr %ua.ptr334, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_s64(ptr %0, { i64, i1 } %ua.load335) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 + +dispatch.case.485: ; preds = %match.arm.50 + %ua.raw337 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr338 = inttoptr i64 %ua.raw337 to ptr + %ua.load339 = load { i1, i1 }, ptr %ua.ptr338, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_bool(ptr %0, { i1, i1 } %ua.load339) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.478 } ; Function Attrs: nounwind @@ -1653,7 +2455,7 @@ 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.109, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.315, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1749,7 +2551,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.110, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, 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 @@ -1757,7 +2559,7 @@ if.then.12: ; preds = %if.then.9 %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.111, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, 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 @@ -1767,13 +2569,13 @@ if.then.12: ; preds = %if.then.9 %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.112, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, 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 @@ -1781,7 +2583,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.114, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1795,7 +2597,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.115, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1803,7 +2605,7 @@ if.then.23: ; preds = %if.else.10 %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.116, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, 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 @@ -1814,7 +2616,7 @@ if.then.23: ; preds = %if.else.10 %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.117, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1871,7 +2673,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, 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 @@ -1879,7 +2681,7 @@ if.then.32: ; preds = %if.then.29 %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.119, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, 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 @@ -1890,7 +2692,7 @@ if.then.32: ; preds = %if.then.29 %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.120, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1910,7 +2712,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, 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 @@ -1918,7 +2720,7 @@ if.then.35: ; preds = %while.exit.2 %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.122, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.328, 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 @@ -1929,7 +2731,7 @@ if.then.35: ; preds = %while.exit.2 %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.123, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.329, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2006,11 +2808,749 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define i32 @main() #0 { entry: %alloca = alloca { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, align 8 - store { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } { { i64, i1 } { i64 42, i1 true }, { { ptr, i64 }, i1 } { { ptr, i64 } { ptr @str.124, i64 2 }, i1 true }, { i1, i1 } { i1 true, i1 true } }, ptr %alloca, align 8 + store { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } { { i64, i1 } { i64 42, i1 true }, { { ptr, i64 }, i1 } { { ptr, i64 } { ptr @str.330, i64 2 }, i1 true }, { i1, i1 } { i1 true, i1 true } }, ptr %alloca, align 8 %load = load { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, ptr %alloca, align 8 call void @print__ct_sbc6305862a3a863d__pack_S(ptr @__sx_default_context, { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %load) %allocaN = alloca { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, align 8 @@ -2038,7 +3578,7 @@ entry: define internal void @print__ct_sbc6305862a3a863d__pack_S(ptr %0, { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.125, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.331, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, align 8 store { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %1, ptr %allocaN, align 8 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2046,7 +3586,7 @@ entry: %ba.tmp = alloca { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, align 8 store { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %load, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %ba.val = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i, 1 + %ba.val = insertvalue { i64, i64 } { i64 95, 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 %allocaN = alloca { ptr, i64 }, align 8 @@ -2056,13 +3596,13 @@ entry: %gepN = getelementptr inbounds { 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.126, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.332, i64 0 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, ptr %allocaN, align 8 %ba.tmp9 = alloca { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, align 8 store { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %loadN, ptr %ba.tmp9, align 8 %ba.p2i10 = ptrtoint ptr %ba.tmp9 to i64 - %ba.val11 = insertvalue { i64, i64 } { i64 40, i64 undef }, i64 %ba.p2i10, 1 + %ba.val11 = insertvalue { i64, i64 } { i64 95, i64 undef }, i64 %ba.p2i10, 1 %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val11) %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } %call) store { ptr, i64 } %callN, ptr %allocaN, align 8 @@ -2081,7 +3621,7 @@ entry: ; 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.127, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.333, i64 3 }) ret { ptr, i64 } %call } @@ -2092,35 +3632,35 @@ entry: %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.128, i64 15 }, { ptr, i64 } { ptr @str.129, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.334, i64 15 }, { ptr, i64 } { ptr @str.335, 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.106 + br label %while.hdr.122 -while.hdr.106: ; preds = %fv.merge, %entry +while.hdr.122: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.107, label %while.exit.108 + br i1 %icmp, label %while.body.123, label %while.exit.124 -while.body.107: ; preds = %while.hdr.106 +while.body.123: ; preds = %while.hdr.122 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.109, label %if.merge.110 + br i1 %icmpN, label %if.then.125, label %if.merge.126 -while.exit.108: ; preds = %while.hdr.106 +while.exit.124: ; preds = %while.hdr.122 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.336, i64 1 }) ret { ptr, i64 } %callN -if.then.109: ; preds = %while.body.107 +if.then.125: ; preds = %while.body.123 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.337, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.110 + br label %if.merge.126 -if.merge.110: ; preds = %if.then.109, %while.body.107 +if.merge.126: ; preds = %if.then.125, %while.body.123 %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 @@ -2128,7 +3668,7 @@ if.merge.110: ; preds = %if.then.109, %while %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.135, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.341, 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 @@ -2148,31 +3688,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.106 + br label %while.hdr.122 -fv.default: ; preds = %if.merge.110 +fv.default: ; preds = %if.merge.126 br label %fv.merge -fv.case: ; preds = %if.merge.110 +fv.case: ; preds = %if.merge.126 %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.110 +fv.case17: ; preds = %if.merge.126 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.110 +fv.case20: ; preds = %if.merge.126 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.110 +fv.case24: ; preds = %if.merge.126 %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 @@ -2185,43 +3725,43 @@ 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.136, i64 10 }, { ptr, i64 } { ptr @str.137, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.342, i64 10 }, { ptr, i64 } { ptr @str.343, 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.111 + br label %while.hdr.127 -while.hdr.111: ; preds = %if.merge.115, %entry +while.hdr.127: ; preds = %if.merge.131, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.112, label %while.exit.113 + br i1 %icmp, label %while.body.128, label %while.exit.129 -while.body.112: ; preds = %while.hdr.111 +while.body.128: ; preds = %while.hdr.127 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.114, label %if.merge.115 + br i1 %icmpN, label %if.then.130, label %if.merge.131 -while.exit.113: ; preds = %while.hdr.111 +while.exit.129: ; preds = %while.hdr.127 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.344, i64 1 }) ret { ptr, i64 } %callN -if.then.114: ; preds = %while.body.112 +if.then.130: ; preds = %while.body.128 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.115 + br label %if.merge.131 -if.merge.115: ; preds = %if.then.114, %while.body.112 +if.merge.131: ; preds = %if.then.130, %while.body.128 %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.140, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.346, 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.141, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.347, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2232,7 +3772,7 @@ if.merge.115: ; preds = %if.then.114, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.111 + br label %while.hdr.127 } ; Function Attrs: nounwind @@ -2240,43 +3780,43 @@ 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.142, i64 3 }, { ptr, i64 } { ptr @str.143, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.348, i64 3 }, { ptr, i64 } { ptr @str.349, 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.116 + br label %while.hdr.132 -while.hdr.116: ; preds = %fv.merge, %entry +while.hdr.132: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.117, label %while.exit.118 + br i1 %icmp, label %while.body.133, label %while.exit.134 -while.body.117: ; preds = %while.hdr.116 +while.body.133: ; preds = %while.hdr.132 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.119, label %if.merge.120 + br i1 %icmpN, label %if.then.135, label %if.merge.136 -while.exit.118: ; preds = %while.hdr.116 +while.exit.134: ; preds = %while.hdr.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.350, i64 1 }) ret { ptr, i64 } %callN -if.then.119: ; preds = %while.body.117 +if.then.135: ; preds = %while.body.133 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.145, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.351, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.120 + br label %if.merge.136 -if.merge.120: ; preds = %if.then.119, %while.body.117 +if.merge.136: ; preds = %if.then.135, %while.body.133 %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.147, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.353, 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.148, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.354, 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 @@ -2293,12 +3833,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.116 + br label %while.hdr.132 -fv.default: ; preds = %if.merge.120 +fv.default: ; preds = %if.merge.136 br label %fv.merge -fv.case: ; preds = %if.merge.120 +fv.case: ; preds = %if.merge.136 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2309,43 +3849,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.149, i64 10 }, { ptr, i64 } { ptr @str.150, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.355, i64 10 }, { ptr, i64 } { ptr @str.356, 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.121 + br label %while.hdr.137 -while.hdr.121: ; preds = %fv.merge, %entry +while.hdr.137: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.122, label %while.exit.123 + br i1 %icmp, label %while.body.138, label %while.exit.139 -while.body.122: ; preds = %while.hdr.121 +while.body.138: ; preds = %while.hdr.137 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.124, label %if.merge.125 + br i1 %icmpN, label %if.then.140, label %if.merge.141 -while.exit.123: ; preds = %while.hdr.121 +while.exit.139: ; preds = %while.hdr.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.151, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.357, i64 1 }) ret { ptr, i64 } %callN -if.then.124: ; preds = %while.body.122 +if.then.140: ; preds = %while.body.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.125 + br label %if.merge.141 -if.merge.125: ; preds = %if.then.124, %while.body.122 +if.merge.141: ; preds = %if.then.140, %while.body.138 %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.155, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.361, 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.156, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.362, 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 @@ -2363,18 +3903,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.121 + br label %while.hdr.137 -fv.default: ; preds = %if.merge.125 +fv.default: ; preds = %if.merge.141 br label %fv.merge -fv.case: ; preds = %if.merge.125 +fv.case: ; preds = %if.merge.141 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.125 +fv.case17: ; preds = %if.merge.141 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2385,43 +3925,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.157, i64 9 }, { ptr, i64 } { ptr @str.158, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.363, i64 9 }, { ptr, i64 } { ptr @str.364, 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.126 + br label %while.hdr.142 -while.hdr.126: ; preds = %fv.merge, %entry +while.hdr.142: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.127, label %while.exit.128 + br i1 %icmp, label %while.body.143, label %while.exit.144 -while.body.127: ; preds = %while.hdr.126 +while.body.143: ; preds = %while.hdr.142 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.129, label %if.merge.130 + br i1 %icmpN, label %if.then.145, label %if.merge.146 -while.exit.128: ; preds = %while.hdr.126 +while.exit.144: ; preds = %while.hdr.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.365, i64 1 }) ret { ptr, i64 } %callN -if.then.129: ; preds = %while.body.127 +if.then.145: ; preds = %while.body.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.160, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.130 + br label %if.merge.146 -if.merge.130: ; preds = %if.then.129, %while.body.127 +if.merge.146: ; preds = %if.then.145, %while.body.143 %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.164, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.370, 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.165, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.371, 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 @@ -2440,24 +3980,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.126 + br label %while.hdr.142 -fv.default: ; preds = %if.merge.130 +fv.default: ; preds = %if.merge.146 br label %fv.merge -fv.case: ; preds = %if.merge.130 +fv.case: ; preds = %if.merge.146 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.130 +fv.case17: ; preds = %if.merge.146 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.130 +fv.case21: ; preds = %if.merge.146 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2470,43 +4010,43 @@ 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.166, i64 5 }, { ptr, i64 } { ptr @str.167, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.372, i64 5 }, { ptr, i64 } { ptr @str.373, 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.131 + br label %while.hdr.147 -while.hdr.131: ; preds = %fv.merge, %entry +while.hdr.147: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.132, label %while.exit.133 + br i1 %icmp, label %while.body.148, label %while.exit.149 -while.body.132: ; preds = %while.hdr.131 +while.body.148: ; preds = %while.hdr.147 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.134, label %if.merge.135 + br i1 %icmpN, label %if.then.150, label %if.merge.151 -while.exit.133: ; preds = %while.hdr.131 +while.exit.149: ; preds = %while.hdr.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.374, i64 1 }) ret { ptr, i64 } %callN -if.then.134: ; preds = %while.body.132 +if.then.150: ; preds = %while.body.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.135 + br label %if.merge.151 -if.merge.135: ; preds = %if.then.134, %while.body.132 +if.merge.151: ; preds = %if.then.150, %while.body.148 %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.173, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.379, 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.174, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.380, 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 @@ -2525,23 +4065,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.131 + br label %while.hdr.147 -fv.default: ; preds = %if.merge.135 +fv.default: ; preds = %if.merge.151 br label %fv.merge -fv.case: ; preds = %if.merge.135 +fv.case: ; preds = %if.merge.151 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.135 +fv.case17: ; preds = %if.merge.151 %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.135 +fv.case20: ; preds = %if.merge.151 %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 @@ -2554,43 +4094,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.175, i64 8 }, { ptr, i64 } { ptr @str.176, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.381, i64 8 }, { ptr, i64 } { ptr @str.382, 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.136 + br label %while.hdr.152 -while.hdr.136: ; preds = %fv.merge, %entry +while.hdr.152: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.137, label %while.exit.138 + br i1 %icmp, label %while.body.153, label %while.exit.154 -while.body.137: ; preds = %while.hdr.136 +while.body.153: ; preds = %while.hdr.152 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.139, label %if.merge.140 + br i1 %icmpN, label %if.then.155, label %if.merge.156 -while.exit.138: ; preds = %while.hdr.136 +while.exit.154: ; preds = %while.hdr.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.383, i64 1 }) ret { ptr, i64 } %callN -if.then.139: ; preds = %while.body.137 +if.then.155: ; preds = %while.body.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.384, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.140 + br label %if.merge.156 -if.merge.140: ; preds = %if.then.139, %while.body.137 +if.merge.156: ; preds = %if.then.155, %while.body.153 %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.182, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.388, 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.183, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.389, 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 @@ -2609,23 +4149,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.136 + br label %while.hdr.152 -fv.default: ; preds = %if.merge.140 +fv.default: ; preds = %if.merge.156 br label %fv.merge -fv.case: ; preds = %if.merge.140 +fv.case: ; preds = %if.merge.156 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.140 +fv.case17: ; preds = %if.merge.156 %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.140 +fv.case20: ; preds = %if.merge.156 %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 @@ -2637,43 +4177,43 @@ 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.184, i64 17 }, { ptr, i64 } { ptr @str.185, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.390, i64 17 }, { ptr, i64 } { ptr @str.391, 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.141 + br label %while.hdr.157 -while.hdr.141: ; preds = %fv.merge, %entry +while.hdr.157: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.142, label %while.exit.143 + br i1 %icmp, label %while.body.158, label %while.exit.159 -while.body.142: ; preds = %while.hdr.141 +while.body.158: ; preds = %while.hdr.157 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.144, label %if.merge.145 + br i1 %icmpN, label %if.then.160, label %if.merge.161 -while.exit.143: ; preds = %while.hdr.141 +while.exit.159: ; preds = %while.hdr.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.392, i64 1 }) ret { ptr, i64 } %callN -if.then.144: ; preds = %while.body.142 +if.then.160: ; preds = %while.body.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.187, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.393, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.145 + br label %if.merge.161 -if.merge.145: ; preds = %if.then.144, %while.body.142 +if.merge.161: ; preds = %if.then.160, %while.body.158 %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.192, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.398, 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.193, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.399, 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 @@ -2693,29 +4233,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.141 + br label %while.hdr.157 -fv.default: ; preds = %if.merge.145 +fv.default: ; preds = %if.merge.161 br label %fv.merge -fv.case: ; preds = %if.merge.145 +fv.case: ; preds = %if.merge.161 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.145 +fv.case17: ; preds = %if.merge.161 %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.145 +fv.case20: ; preds = %if.merge.161 %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.145 +fv.case23: ; preds = %if.merge.161 %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 @@ -2727,43 +4267,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.194, i64 7 }, { ptr, i64 } { ptr @str.195, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.400, i64 7 }, { ptr, i64 } { ptr @str.401, 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.146 + br label %while.hdr.162 -while.hdr.146: ; preds = %fv.merge, %entry +while.hdr.162: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.147, label %while.exit.148 + br i1 %icmp, label %while.body.163, label %while.exit.164 -while.body.147: ; preds = %while.hdr.146 +while.body.163: ; preds = %while.hdr.162 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.149, label %if.merge.150 + br i1 %icmpN, label %if.then.165, label %if.merge.166 -while.exit.148: ; preds = %while.hdr.146 +while.exit.164: ; preds = %while.hdr.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.196, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.402, i64 1 }) ret { ptr, i64 } %callN -if.then.149: ; preds = %while.body.147 +if.then.165: ; preds = %while.body.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.197, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.403, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.150 + br label %if.merge.166 -if.merge.150: ; preds = %if.then.149, %while.body.147 +if.merge.166: ; preds = %if.then.165, %while.body.163 %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.200, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.406, 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.201, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.407, 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 %alloca, align 8 @@ -2781,25 +4321,1394 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.146 + br label %while.hdr.162 -fv.default: ; preds = %if.merge.150 +fv.default: ; preds = %if.merge.166 br label %fv.merge -fv.case: ; preds = %if.merge.150 +fv.case: ; preds = %if.merge.166 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.150 +fv.case17: ; preds = %if.merge.166 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.408, i64 4 }, { ptr, i64 } { ptr @str.409, 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.167 + +while.hdr.167: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.168, label %while.exit.169 + +while.body.168: ; preds = %while.hdr.167 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.170, label %if.merge.171 + +while.exit.169: ; preds = %while.hdr.167 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.410, i64 1 }) + ret { ptr, i64 } %callN + +if.then.170: ; preds = %while.body.168 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.171 + +if.merge.171: ; preds = %if.then.170, %while.body.168 + %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.413, 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.414, 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.167 + +fv.default: ; preds = %if.merge.171 + br label %fv.merge + +fv.case: ; preds = %if.merge.171 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.415, i64 10 }, { ptr, i64 } { ptr @str.416, 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.172 + +while.hdr.172: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.173, label %while.exit.174 + +while.body.173: ; preds = %while.hdr.172 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.175, label %if.merge.176 + +while.exit.174: ; preds = %while.hdr.172 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.417, i64 1 }) + ret { ptr, i64 } %callN + +if.then.175: ; preds = %while.body.173 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.418, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.176 + +if.merge.176: ; preds = %if.then.175, %while.body.173 + %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.424, 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.425, 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.172 + +fv.default: ; preds = %if.merge.176 + br label %fv.merge + +fv.case: ; preds = %if.merge.176 + %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.176 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.176 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.176 + %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.176 + %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.426, i64 13 }, { ptr, i64 } { ptr @str.427, 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.177 + +while.hdr.177: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.178, label %while.exit.179 + +while.body.178: ; preds = %while.hdr.177 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.180, label %if.merge.181 + +while.exit.179: ; preds = %while.hdr.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.428, i64 1 }) + ret { ptr, i64 } %callN + +if.then.180: ; preds = %while.body.178 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.429, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.181 + +if.merge.181: ; preds = %if.then.180, %while.body.178 + %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.432, 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.433, 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.177 + +fv.default: ; preds = %if.merge.181 + br label %fv.merge + +fv.case: ; preds = %if.merge.181 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.181 + %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.434, i64 8 }, { ptr, i64 } { ptr @str.435, 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.182 + +while.hdr.182: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.183, label %while.exit.184 + +while.body.183: ; preds = %while.hdr.182 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.185, label %if.merge.186 + +while.exit.184: ; preds = %while.hdr.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.436, i64 1 }) + ret { ptr, i64 } %callN + +if.then.185: ; preds = %while.body.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.437, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.186 + +if.merge.186: ; preds = %if.then.185, %while.body.183 + %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.443, 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.444, 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.182 + +fv.default: ; preds = %if.merge.186 + br label %fv.merge + +fv.case: ; preds = %if.merge.186 + %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.186 + %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.186 + %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.186 + %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.186 + %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.445, i64 5 }, { ptr, i64 } { ptr @str.446, 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.187 + +while.hdr.187: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.188, label %while.exit.189 + +while.body.188: ; preds = %while.hdr.187 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.190, label %if.merge.191 + +while.exit.189: ; preds = %while.hdr.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.447, i64 1 }) + ret { ptr, i64 } %callN + +if.then.190: ; preds = %while.body.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.448, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.191 + +if.merge.191: ; preds = %if.then.190, %while.body.188 + %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.452, 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.453, 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.187 + +fv.default: ; preds = %if.merge.191 + br label %fv.merge + +fv.case: ; preds = %if.merge.191 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.191 + %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.191 + %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.454, i64 6 }, { ptr, i64 } { ptr @str.455, 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.192 + +while.hdr.192: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.193, label %while.exit.194 + +while.body.193: ; preds = %while.hdr.192 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.195, label %if.merge.196 + +while.exit.194: ; preds = %while.hdr.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.456, i64 1 }) + ret { ptr, i64 } %callN + +if.then.195: ; preds = %while.body.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.457, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.196 + +if.merge.196: ; preds = %if.then.195, %while.body.193 + %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.461, 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.462, 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.192 + +fv.default: ; preds = %if.merge.196 + br label %fv.merge + +fv.case: ; preds = %if.merge.196 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.196 + %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.196 + %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.463, i64 6 }, { ptr, i64 } { ptr @str.464, 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.197 + +while.hdr.197: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.198, label %while.exit.199 + +while.body.198: ; preds = %while.hdr.197 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.200, label %if.merge.201 + +while.exit.199: ; preds = %while.hdr.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.465, i64 1 }) + ret { ptr, i64 } %callN + +if.then.200: ; preds = %while.body.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.466, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.201 + +if.merge.201: ; preds = %if.then.200, %while.body.198 + %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.469, 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.470, 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.197 + +fv.default: ; preds = %if.merge.201 + br label %fv.merge + +fv.case: ; preds = %if.merge.201 + %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.201 + %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 54, 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.471, i64 4 }, { ptr, i64 } { ptr @str.472, 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.202 + +while.hdr.202: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.203, label %while.exit.204 + +while.body.203: ; preds = %while.hdr.202 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.205, label %if.merge.206 + +while.exit.204: ; preds = %while.hdr.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.473, i64 1 }) + ret { ptr, i64 } %callN + +if.then.205: ; preds = %while.body.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.474, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.206 + +if.merge.206: ; preds = %if.then.205, %while.body.203 + %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.478, 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.479, 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.202 + +fv.default: ; preds = %if.merge.206 + br label %fv.merge + +fv.case: ; preds = %if.merge.206 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.206 + %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.206 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.480, i64 6 }, { ptr, i64 } { ptr @str.481, 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.207 + +while.hdr.207: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.208, label %while.exit.209 + +while.body.208: ; preds = %while.hdr.207 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.210, label %if.merge.211 + +while.exit.209: ; preds = %while.hdr.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.482, i64 1 }) + ret { ptr, i64 } %callN + +if.then.210: ; preds = %while.body.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.483, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.211 + +if.merge.211: ; preds = %if.then.210, %while.body.208 + %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.487, 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.488, 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.207 + +fv.default: ; preds = %if.merge.211 + br label %fv.merge + +fv.case: ; preds = %if.merge.211 + %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.211 + %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.211 + %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 26, i64 undef }, i64 %ba.p2i23, 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.489, i64 12 }, { ptr, i64 } { ptr @str.490, 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.212 + +while.hdr.212: ; preds = %if.merge.216, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.213, label %while.exit.214 + +while.body.213: ; preds = %while.hdr.212 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.215, label %if.merge.216 + +while.exit.214: ; preds = %while.hdr.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.491, i64 1 }) + ret { ptr, i64 } %callN + +if.then.215: ; preds = %while.body.213 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.492, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.216 + +if.merge.216: ; preds = %if.then.215, %while.body.213 + %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.493, 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.494, 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.212 +} + +; 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.495, i64 8 }, { ptr, i64 } { ptr @str.496, 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.217 + +while.hdr.217: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.218, label %while.exit.219 + +while.body.218: ; preds = %while.hdr.217 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.220, label %if.merge.221 + +while.exit.219: ; preds = %while.hdr.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.497, i64 1 }) + ret { ptr, i64 } %callN + +if.then.220: ; preds = %while.body.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.498, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.221 + +if.merge.221: ; preds = %if.then.220, %while.body.218 + %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.502, 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.503, 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.217 + +fv.default: ; preds = %if.merge.221 + br label %fv.merge + +fv.case: ; preds = %if.merge.221 + %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.221 + %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.221 + %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.504, i64 7 }, { ptr, i64 } { ptr @str.505, 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.222 + +while.hdr.222: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.223, label %while.exit.224 + +while.body.223: ; preds = %while.hdr.222 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.225, label %if.merge.226 + +while.exit.224: ; preds = %while.hdr.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.506, i64 1 }) + ret { ptr, i64 } %callN + +if.then.225: ; preds = %while.body.223 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.507, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.226 + +if.merge.226: ; preds = %if.then.225, %while.body.223 + %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.511, 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.512, 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.222 + +fv.default: ; preds = %if.merge.226 + br label %fv.merge + +fv.case: ; preds = %if.merge.226 + %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.226 + %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.226 + %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 77, 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.513, i64 9 }, { ptr, i64 } { ptr @str.514, 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.227 + +while.hdr.227: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.228, label %while.exit.229 + +while.body.228: ; preds = %while.hdr.227 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.230, label %if.merge.231 + +while.exit.229: ; preds = %while.hdr.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.515, i64 1 }) + ret { ptr, i64 } %callN + +if.then.230: ; preds = %while.body.228 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.516, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.231 + +if.merge.231: ; preds = %if.then.230, %while.body.228 + %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.519, 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.520, 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.227 + +fv.default: ; preds = %if.merge.231 + br label %fv.merge + +fv.case: ; preds = %if.merge.231 + %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.231 + %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.521, i64 4 }, { ptr, i64 } { ptr @str.522, 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.232 + +while.hdr.232: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.233, label %while.exit.234 + +while.body.233: ; preds = %while.hdr.232 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.235, label %if.merge.236 + +while.exit.234: ; preds = %while.hdr.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.523, i64 1 }) + ret { ptr, i64 } %callN + +if.then.235: ; preds = %while.body.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.524, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.236 + +if.merge.236: ; preds = %if.then.235, %while.body.233 + %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.527, 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.528, 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.232 + +fv.default: ; preds = %if.merge.236 + br label %fv.merge + +fv.case: ; preds = %if.merge.236 + %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.236 + %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.529, i64 6 }, { ptr, i64 } { ptr @str.530, 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.237 + +while.hdr.237: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.238, label %while.exit.239 + +while.body.238: ; preds = %while.hdr.237 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.240, label %if.merge.241 + +while.exit.239: ; preds = %while.hdr.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.531, i64 1 }) + ret { ptr, i64 } %callN + +if.then.240: ; preds = %while.body.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.532, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.241 + +if.merge.241: ; preds = %if.then.240, %while.body.238 + %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.540, 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.541, 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.237 + +fv.default: ; preds = %if.merge.241 + br label %fv.merge + +fv.case: ; preds = %if.merge.241 + %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.241 + %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.241 + %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.241 + %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.241 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.241 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.241 + %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 81, 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.542, i64 6 }, { ptr, i64 } { ptr @str.543, 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.242 + +while.hdr.242: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.243, label %while.exit.244 + +while.body.243: ; preds = %while.hdr.242 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.245, label %if.merge.246 + +while.exit.244: ; preds = %while.hdr.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.544, i64 1 }) + ret { ptr, i64 } %callN + +if.then.245: ; preds = %while.body.243 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.545, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.246 + +if.merge.246: ; preds = %if.then.245, %while.body.243 + %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.550, 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.551, 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.242 + +fv.default: ; preds = %if.merge.246 + br label %fv.merge + +fv.case: ; preds = %if.merge.246 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.246 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.246 + %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.246 + %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__S(ptr %0, { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %1) #0 { entry: @@ -2808,43 +5717,43 @@ entry: %ba.tmp19 = alloca { { ptr, i64 }, i1 }, align 8 %ba.tmp24 = alloca { i1, i1 }, align 8 store { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.202, i64 1 }, { ptr, i64 } { ptr @str.203, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.552, i64 1 }, { ptr, i64 } { ptr @str.553, 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.151 + br label %while.hdr.247 -while.hdr.151: ; preds = %fv.merge, %entry +while.hdr.247: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.152, label %while.exit.153 + br i1 %icmp, label %while.body.248, label %while.exit.249 -while.body.152: ; preds = %while.hdr.151 +while.body.248: ; preds = %while.hdr.247 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.154, label %if.merge.155 + br i1 %icmpN, label %if.then.250, label %if.merge.251 -while.exit.153: ; preds = %while.hdr.151 +while.exit.249: ; preds = %while.hdr.247 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.204, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.554, i64 1 }) ret { ptr, i64 } %callN -if.then.154: ; preds = %while.body.152 +if.then.250: ; preds = %while.body.248 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.555, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.155 + br label %if.merge.251 -if.merge.155: ; preds = %if.then.154, %while.body.152 +if.merge.251: ; preds = %if.then.250, %while.body.248 %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.209, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.559, 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.210, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.560, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } }, ptr %alloca, align 8 @@ -2863,33 +5772,306 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.151 + br label %while.hdr.247 -fv.default: ; preds = %if.merge.155 +fv.default: ; preds = %if.merge.251 br label %fv.merge -fv.case: ; preds = %if.merge.155 +fv.case: ; preds = %if.merge.251 %fv.field = extractvalue { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %loadN, 0 store { i64, i1 } %fv.field, ptr %ba.tmp, align 8 %ba.p2i = ptrtoint ptr %ba.tmp to i64 - %fv.val = insertvalue { i64, i64 } { i64 37, i64 undef }, i64 %ba.p2i, 1 + %fv.val = insertvalue { i64, i64 } { i64 93, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.155 +fv.case17: ; preds = %if.merge.251 %fv.field18 = extractvalue { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %loadN, 1 store { { ptr, i64 }, i1 } %fv.field18, ptr %ba.tmp19, align 8 %ba.p2i20 = ptrtoint ptr %ba.tmp19 to i64 - %fv.val21 = insertvalue { i64, i64 } { i64 38, i64 undef }, i64 %ba.p2i20, 1 + %fv.val21 = insertvalue { i64, i64 } { i64 42, i64 undef }, i64 %ba.p2i20, 1 br label %fv.merge -fv.case22: ; preds = %if.merge.155 +fv.case22: ; preds = %if.merge.251 %fv.field23 = extractvalue { { i64, i1 }, { { ptr, i64 }, i1 }, { i1, i1 } } %loadN, 2 store { i1, i1 } %fv.field23, ptr %ba.tmp24, align 1 %ba.p2i25 = ptrtoint ptr %ba.tmp24 to i64 - %fv.val26 = insertvalue { i64, i64 } { i64 39, i64 undef }, i64 %ba.p2i25, 1 + %fv.val26 = insertvalue { i64, i64 } { i64 94, i64 undef }, i64 %ba.p2i25, 1 br label %fv.merge } +; 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.566, 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.561, 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.259, label %if.merge.260 + +if.then.259: ; 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.568, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.567, 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.260 + +if.merge.260: ; preds = %if.then.259, %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.573, 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.569, 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.261, label %if.merge.262 + +if.then.261: ; 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.575, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.574, 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.262 + +if.merge.262: ; preds = %if.then.261, %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.583, 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.576, 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.263: ; 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.585, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.584, 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.264 + +if.merge.264: ; preds = %if.then.263, %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.263, label %if.merge.264 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.594, 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.586, 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.265, label %if.merge.266 + +if.then.265: ; 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.596, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.595, 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.266 + +if.merge.266: ; preds = %if.then.265, %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.603, 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.597, 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.267, label %if.merge.268 + +if.then.267: ; 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.605, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.604, 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.268 + +if.merge.268: ; preds = %if.then.267, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2897,33 +6079,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.211, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.606, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.277 -while.hdr.160: ; preds = %if.merge.164, %entry +while.hdr.277: ; preds = %if.merge.281, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.161, label %while.exit.162 + br i1 %icmp, label %while.body.278, label %while.exit.279 -while.body.161: ; preds = %while.hdr.160 +while.body.278: ; preds = %while.hdr.277 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.163, label %if.merge.164 + br i1 %icmpN, label %if.then.280, label %if.merge.281 -while.exit.162: ; preds = %while.hdr.160 +while.exit.279: ; preds = %while.hdr.277 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 1 }) ret { ptr, i64 } %call -if.then.163: ; preds = %while.body.161 +if.then.280: ; preds = %while.body.278 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.213, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.164 + br label %if.merge.281 -if.merge.164: ; preds = %if.then.163, %while.body.161 +if.merge.281: ; preds = %if.then.280, %while.body.278 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2937,7 +6119,211 @@ if.merge.164: ; preds = %if.then.163, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.277 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.609, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.282 + +while.hdr.282: ; preds = %if.merge.286, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.283, label %while.exit.284 + +while.body.283: ; preds = %while.hdr.282 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.285, label %if.merge.286 + +while.exit.284: ; preds = %while.hdr.282 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 1 }) + ret { ptr, i64 } %call + +if.then.285: ; preds = %while.body.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.286 + +if.merge.286: ; preds = %if.then.285, %while.body.283 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.282 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.612, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.287 + +while.hdr.287: ; preds = %if.merge.291, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.288, label %while.exit.289 + +while.body.288: ; preds = %while.hdr.287 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.290, label %if.merge.291 + +while.exit.289: ; preds = %while.hdr.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.613, i64 1 }) + ret { ptr, i64 } %call + +if.then.290: ; preds = %while.body.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.291 + +if.merge.291: ; preds = %if.then.290, %while.body.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.287 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.615, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.292 + +while.hdr.292: ; preds = %if.merge.296, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.293, label %while.exit.294 + +while.body.293: ; preds = %while.hdr.292 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.295, label %if.merge.296 + +while.exit.294: ; preds = %while.hdr.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 1 }) + ret { ptr, i64 } %call + +if.then.295: ; preds = %while.body.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.296 + +if.merge.296: ; preds = %if.then.295, %while.body.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.292 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.618, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.297 + +while.hdr.297: ; preds = %if.merge.301, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.298, label %while.exit.299 + +while.body.298: ; preds = %while.hdr.297 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.300, label %if.merge.301 + +while.exit.299: ; preds = %while.hdr.297 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.619, i64 1 }) + ret { ptr, i64 } %call + +if.then.300: ; preds = %while.body.298 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.301 + +if.merge.301: ; preds = %if.then.300, %while.body.298 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.297 } ; Function Attrs: nounwind @@ -2948,33 +6334,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.214, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.621, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.302 -while.hdr.165: ; preds = %if.merge.169, %entry +while.hdr.302: ; preds = %if.merge.306, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.166, label %while.exit.167 + br i1 %icmp, label %while.body.303, label %while.exit.304 -while.body.166: ; preds = %while.hdr.165 +while.body.303: ; preds = %while.hdr.302 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.168, label %if.merge.169 + br i1 %icmpN, label %if.then.305, label %if.merge.306 -while.exit.167: ; preds = %while.hdr.165 +while.exit.304: ; preds = %while.hdr.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.215, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.622, i64 1 }) ret { ptr, i64 } %call -if.then.168: ; preds = %while.body.166 +if.then.305: ; preds = %while.body.303 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.216, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.169 + br label %if.merge.306 -if.merge.169: ; preds = %if.then.168, %while.body.166 +if.merge.306: ; preds = %if.then.305, %while.body.303 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2990,7 +6376,7 @@ if.merge.169: ; preds = %if.then.168, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.302 } ; Function Attrs: nounwind @@ -3000,35 +6386,35 @@ entry: %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.217, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.624, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.174 + br label %while.hdr.314 -while.hdr.174: ; preds = %if.merge.178, %entry +while.hdr.314: ; preds = %if.merge.318, %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.175, label %while.exit.176 + br i1 %icmp, label %while.body.315, label %while.exit.316 -while.body.175: ; preds = %while.hdr.174 +while.body.315: ; preds = %while.hdr.314 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.177, label %if.merge.178 + br i1 %icmpN, label %if.then.317, label %if.merge.318 -while.exit.176: ; preds = %while.hdr.174 +while.exit.316: ; preds = %while.hdr.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.218, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.625, i64 1 }) ret { ptr, i64 } %call -if.then.177: ; preds = %while.body.175 +if.then.317: ; preds = %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.219, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.626, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.178 + br label %if.merge.318 -if.merge.178: ; preds = %if.then.177, %while.body.175 +if.merge.318: ; preds = %if.then.317, %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3044,7 +6430,167 @@ if.merge.178: ; preds = %if.then.177, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.174 + br label %while.hdr.314 +} + +; 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.627, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.319 + +while.hdr.319: ; preds = %if.merge.323, %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.320, label %while.exit.321 + +while.body.320: ; preds = %while.hdr.319 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.322, label %if.merge.323 + +while.exit.321: ; preds = %while.hdr.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.628, i64 1 }) + ret { ptr, i64 } %call + +if.then.322: ; preds = %while.body.320 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.629, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.323 + +if.merge.323: ; preds = %if.then.322, %while.body.320 + %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.319 +} + +; 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.630, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.324 + +while.hdr.324: ; preds = %if.merge.328, %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.325, label %while.exit.326 + +while.body.325: ; preds = %while.hdr.324 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.327, label %if.merge.328 + +while.exit.326: ; preds = %while.hdr.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.631, i64 1 }) + ret { ptr, i64 } %call + +if.then.327: ; preds = %while.body.325 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.632, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.328 + +if.merge.328: ; preds = %if.then.327, %while.body.325 + %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 76, 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.324 +} + +; 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.633, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.329 + +while.hdr.329: ; preds = %if.merge.333, %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.330, label %while.exit.331 + +while.body.330: ; preds = %while.hdr.329 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.332, label %if.merge.333 + +while.exit.331: ; preds = %while.hdr.329 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.634, i64 1 }) + ret { ptr, i64 } %call + +if.then.332: ; preds = %while.body.330 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.635, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.333 + +if.merge.333: ; preds = %if.then.332, %while.body.330 + %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 78, 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.329 } ; Function Attrs: nounwind @@ -3054,35 +6600,35 @@ entry: %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.220, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.636, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.334 -while.hdr.179: ; preds = %if.merge.183, %entry +while.hdr.334: ; preds = %if.merge.338, %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.180, label %while.exit.181 + br i1 %icmp, label %while.body.335, label %while.exit.336 -while.body.180: ; preds = %while.hdr.179 +while.body.335: ; preds = %while.hdr.334 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.182, label %if.merge.183 + br i1 %icmpN, label %if.then.337, label %if.merge.338 -while.exit.181: ; preds = %while.hdr.179 +while.exit.336: ; preds = %while.hdr.334 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.221, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.637, i64 1 }) ret { ptr, i64 } %call -if.then.182: ; preds = %while.body.180 +if.then.337: ; preds = %while.body.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.222, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.638, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.183 + br label %if.merge.338 -if.merge.183: ; preds = %if.then.182, %while.body.180 +if.merge.338: ; preds = %if.then.337, %while.body.335 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3098,7 +6644,7 @@ if.merge.183: ; preds = %if.then.182, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.179 + br label %while.hdr.334 } ; Function Attrs: nounwind @@ -3112,20 +6658,20 @@ entry: 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.204, label %if.else.205 + br i1 %icmp, label %if.then.372, label %if.else.373 -if.then.204: ; preds = %entry - br label %if.merge.206 +if.then.372: ; preds = %entry + br label %if.merge.374 -if.else.205: ; preds = %entry +if.else.373: ; 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.225, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.224, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.206 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.640, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.374 -if.merge.206: ; preds = %if.else.205, %if.then.204 - %bp = phi { ptr, i64 } [ { ptr @str.223, i64 4 }, %if.then.204 ], [ %callN, %if.else.205 ] +if.merge.374: ; preds = %if.else.373, %if.then.372 + %bp = phi { ptr, i64 } [ { ptr @str.639, i64 4 }, %if.then.372 ], [ %callN, %if.else.373 ] ret { ptr, i64 } %bp } @@ -3140,20 +6686,20 @@ entry: 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.220, label %if.else.221 + br i1 %icmp, label %if.then.388, label %if.else.389 -if.then.220: ; preds = %entry - br label %if.merge.222 +if.then.388: ; preds = %entry + br label %if.merge.390 -if.else.221: ; preds = %entry +if.else.389: ; 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.228, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.227, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.222 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.644, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.390 -if.merge.222: ; preds = %if.else.221, %if.then.220 - %bp = phi { ptr, i64 } [ { ptr @str.226, i64 4 }, %if.then.220 ], [ %callN, %if.else.221 ] +if.merge.390: ; preds = %if.else.389, %if.then.388 + %bp = phi { ptr, i64 } [ { ptr @str.642, i64 4 }, %if.then.388 ], [ %callN, %if.else.389 ] ret { ptr, i64 } %bp } @@ -3168,20 +6714,20 @@ entry: 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.223, label %if.else.224 + br i1 %icmp, label %if.then.391, label %if.else.392 -if.then.223: ; preds = %entry - br label %if.merge.225 +if.then.391: ; preds = %entry + br label %if.merge.393 -if.else.224: ; preds = %entry +if.else.392: ; 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.231, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.230, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.225 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.646, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.393 -if.merge.225: ; preds = %if.else.224, %if.then.223 - %bp = phi { ptr, i64 } [ { ptr @str.229, i64 4 }, %if.then.223 ], [ %callN, %if.else.224 ] +if.merge.393: ; preds = %if.else.392, %if.then.391 + %bp = phi { ptr, i64 } [ { ptr @str.645, i64 4 }, %if.then.391 ], [ %callN, %if.else.392 ] ret { ptr, i64 } %bp } @@ -3196,20 +6742,20 @@ entry: 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.226, label %if.else.227 + br i1 %icmp, label %if.then.394, label %if.else.395 -if.then.226: ; preds = %entry - br label %if.merge.228 +if.then.394: ; preds = %entry + br label %if.merge.396 -if.else.227: ; preds = %entry +if.else.395: ; 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.234, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.233, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.228 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.396 -if.merge.228: ; preds = %if.else.227, %if.then.226 - %bp = phi { ptr, i64 } [ { ptr @str.232, i64 4 }, %if.then.226 ], [ %callN, %if.else.227 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi { ptr, i64 } [ { ptr @str.648, i64 4 }, %if.then.394 ], [ %callN, %if.else.395 ] ret { ptr, i64 } %bp } @@ -3224,20 +6770,20 @@ entry: 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.229, label %if.else.230 + br i1 %icmp, label %if.then.397, label %if.else.398 -if.then.229: ; preds = %entry - br label %if.merge.231 +if.then.397: ; preds = %entry + br label %if.merge.399 -if.else.230: ; preds = %entry +if.else.398: ; 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.237, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.236, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.231 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.652, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.399 -if.merge.231: ; preds = %if.else.230, %if.then.229 - %bp = phi { ptr, i64 } [ { ptr @str.235, i64 4 }, %if.then.229 ], [ %callN, %if.else.230 ] +if.merge.399: ; preds = %if.else.398, %if.then.397 + %bp = phi { ptr, i64 } [ { ptr @str.651, i64 4 }, %if.then.397 ], [ %callN, %if.else.398 ] ret { ptr, i64 } %bp } @@ -3251,20 +6797,20 @@ entry: 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.232, label %if.else.233 + br i1 %icmp, label %if.then.400, label %if.else.401 -if.then.232: ; preds = %entry - br label %if.merge.234 +if.then.400: ; preds = %entry + br label %if.merge.402 -if.else.233: ; preds = %entry +if.else.401: ; 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.240, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.239, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.234 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.655, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.402 -if.merge.234: ; preds = %if.else.233, %if.then.232 - %bp = phi { ptr, i64 } [ { ptr @str.238, i64 4 }, %if.then.232 ], [ %callN, %if.else.233 ] +if.merge.402: ; preds = %if.else.401, %if.then.400 + %bp = phi { ptr, i64 } [ { ptr @str.654, i64 4 }, %if.then.400 ], [ %callN, %if.else.401 ] ret { ptr, i64 } %bp } @@ -3279,20 +6825,20 @@ entry: 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.235, label %if.else.236 + br i1 %icmp, label %if.then.403, label %if.else.404 -if.then.235: ; preds = %entry - br label %if.merge.237 +if.then.403: ; preds = %entry + br label %if.merge.405 -if.else.236: ; preds = %entry +if.else.404: ; 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.243, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.242, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.237 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.659, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.658, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.405 -if.merge.237: ; preds = %if.else.236, %if.then.235 - %bp = phi { ptr, i64 } [ { ptr @str.241, i64 4 }, %if.then.235 ], [ %callN, %if.else.236 ] +if.merge.405: ; preds = %if.else.404, %if.then.403 + %bp = phi { ptr, i64 } [ { ptr @str.657, i64 4 }, %if.then.403 ], [ %callN, %if.else.404 ] ret { ptr, i64 } %bp } @@ -3307,25 +6853,25 @@ entry: 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.238, label %if.else.239 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.238: ; preds = %entry - br label %if.merge.240 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.239: ; preds = %entry +if.else.407: ; 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.246, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.245, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.240 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.662, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.661, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.240: ; preds = %if.else.239, %if.then.238 - %bp = phi { ptr, i64 } [ { ptr @str.244, i64 4 }, %if.then.238 ], [ %callN, %if.else.239 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.660, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3335,216 +6881,20 @@ entry: 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.241, label %if.else.242 + br i1 %icmp, label %if.then.409, label %if.else.410 -if.then.241: ; preds = %entry - br label %if.merge.243 +if.then.409: ; preds = %entry + br label %if.merge.411 -if.else.242: ; preds = %entry +if.else.410: ; 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.249, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.248, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.243 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.665, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.664, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.411 -if.merge.243: ; preds = %if.else.242, %if.then.241 - %bp = phi { ptr, i64 } [ { ptr @str.247, i64 4 }, %if.then.241 ], [ %callN, %if.else.242 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.244, label %if.else.245 - -if.then.244: ; preds = %entry - br label %if.merge.246 - -if.else.245: ; 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.252, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.251, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.246 - -if.merge.246: ; preds = %if.else.245, %if.then.244 - %bp = phi { ptr, i64 } [ { ptr @str.250, i64 4 }, %if.then.244 ], [ %callN, %if.else.245 ] - 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.247, label %if.else.248 - -if.then.247: ; preds = %entry - br label %if.merge.249 - -if.else.248: ; 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.255, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.254, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.249 - -if.merge.249: ; preds = %if.else.248, %if.then.247 - %bp = phi { ptr, i64 } [ { ptr @str.253, i64 4 }, %if.then.247 ], [ %callN, %if.else.248 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_S(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.250, label %if.else.251 - -if.then.250: ; preds = %entry - br label %if.merge.252 - -if.else.251: ; 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.258, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.257, i64 2 }, { ptr, i64 } %callN) - br label %if.merge.252 - -if.merge.252: ; preds = %if.else.251, %if.then.250 - %bp = phi { ptr, i64 } [ { ptr @str.256, i64 4 }, %if.then.250 ], [ %callN, %if.else.251 ] - 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.253, label %if.else.254 - -if.then.253: ; preds = %entry - br label %if.merge.255 - -if.else.254: ; 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.261, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.260, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.255 - -if.merge.255: ; preds = %if.else.254, %if.then.253 - %bp = phi { ptr, i64 } [ { ptr @str.259, i64 4 }, %if.then.253 ], [ %callN, %if.else.254 ] - 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.256, label %if.else.257 - -if.then.256: ; preds = %entry - br label %if.merge.258 - -if.else.257: ; 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.264, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.263, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.258 - -if.merge.258: ; preds = %if.else.257, %if.then.256 - %bp = phi { ptr, i64 } [ { ptr @str.262, i64 4 }, %if.then.256 ], [ %callN, %if.else.257 ] - 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.259, label %if.else.260 - -if.then.259: ; preds = %entry - br label %if.merge.261 - -if.else.260: ; 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.267, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.266, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.261 - -if.merge.261: ; preds = %if.else.260, %if.then.259 - %bp = phi { ptr, i64 } [ { ptr @str.265, i64 4 }, %if.then.259 ], [ %callN, %if.else.260 ] - 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.262, label %if.else.263 - -if.then.262: ; preds = %entry - br label %if.merge.264 - -if.else.263: ; 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.270, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.269, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.264 - -if.merge.264: ; preds = %if.else.263, %if.then.262 - %bp = phi { ptr, i64 } [ { ptr @str.268, i64 4 }, %if.then.262 ], [ %callN, %if.else.263 ] +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.663, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] ret { ptr, i64 } %bp } @@ -3559,20 +6909,578 @@ entry: 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.265, label %if.else.266 + br i1 %icmp, label %if.then.412, label %if.else.413 -if.then.265: ; preds = %entry - br label %if.merge.267 +if.then.412: ; preds = %entry + br label %if.merge.414 -if.else.266: ; preds = %entry +if.else.413: ; 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.273, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.272, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.267 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.668, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.667, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.414 -if.merge.267: ; preds = %if.else.266, %if.then.265 - %bp = phi { ptr, i64 } [ { ptr @str.271, i64 4 }, %if.then.265 ], [ %callN, %if.else.266 ] +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.666, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.415, label %if.else.416 + +if.then.415: ; preds = %entry + br label %if.merge.417 + +if.else.416: ; 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.671, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.670, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.417 + +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.669, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] + 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.418, label %if.else.419 + +if.then.418: ; preds = %entry + br label %if.merge.420 + +if.else.419: ; 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.674, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.673, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.420 + +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.672, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] + 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.421, label %if.else.422 + +if.then.421: ; preds = %entry + br label %if.merge.423 + +if.else.422: ; 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.677, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.676, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.423 + +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.675, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] + 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.424, label %if.else.425 + +if.then.424: ; preds = %entry + br label %if.merge.426 + +if.else.425: ; 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.680, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.679, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.426 + +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.678, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] + 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.427, label %if.else.428 + +if.then.427: ; preds = %entry + br label %if.merge.429 + +if.else.428: ; 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.683, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.682, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.429 + +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.681, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] + 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.430, label %if.else.431 + +if.then.430: ; preds = %entry + br label %if.merge.432 + +if.else.431: ; 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.686, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.685, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.432 + +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.684, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] + 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.433, label %if.else.434 + +if.then.433: ; preds = %entry + br label %if.merge.435 + +if.else.434: ; 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.689, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.688, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.435 + +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.687, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] + 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.436, label %if.else.437 + +if.then.436: ; preds = %entry + br label %if.merge.438 + +if.else.437: ; 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.692, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.691, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.438 + +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.690, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + 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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.695, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.694, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.693, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.698, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.697, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.696, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.701, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.700, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.699, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + 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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.704, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.702, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.707, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.706, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.705, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.710, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.709, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.708, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.713, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.712, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.711, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_S(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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.716, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.715, i64 2 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.714, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.719, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.717, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + 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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.722, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.721, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.720, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] + 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.469, label %if.else.470 + +if.then.469: ; preds = %entry + br label %if.merge.471 + +if.else.470: ; 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.725, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.471 + +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.723, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] + 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.472, label %if.else.473 + +if.then.472: ; preds = %entry + br label %if.merge.474 + +if.else.473: ; 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.728, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.727, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.474 + +if.merge.474: ; preds = %if.else.473, %if.then.472 + %bp = phi { ptr, i64 } [ { ptr @str.726, i64 4 }, %if.then.472 ], [ %callN, %if.else.473 ] ret { ptr, i64 } %bp } @@ -3587,40 +7495,43 @@ entry: 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.268, label %if.else.269 + br i1 %icmp, label %if.then.475, label %if.else.476 -if.then.268: ; preds = %entry - br label %if.merge.270 +if.then.475: ; preds = %entry + br label %if.merge.477 -if.else.269: ; preds = %entry +if.else.476: ; 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.276, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.275, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.270 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.731, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.730, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.477 -if.merge.270: ; preds = %if.else.269, %if.then.268 - %bp = phi { ptr, i64 } [ { ptr @str.274, i64 4 }, %if.then.268 ], [ %callN, %if.else.269 ] +if.merge.477: ; preds = %if.else.476, %if.then.475 + %bp = phi { ptr, i64 } [ { ptr @str.729, i64 4 }, %if.then.475 ], [ %callN, %if.else.476 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @optional_to_string__opt_s64(ptr %0, { i64, i1 } %1) #0 { +define internal { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %1) #0 { entry: - %alloca = alloca { i64, i1 }, align 8 - store { i64, i1 } %1, ptr %alloca, align 8 - %load = load { i64, i1 }, ptr %alloca, align 8 - %oh.has = extractvalue { i64, i1 } %load, 1 + %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.276, label %if.merge.277 + br i1 %lnot, label %if.then.486, label %if.merge.487 -if.then.276: ; preds = %entry - ret { ptr, i64 } { ptr @str.277, i64 4 } +if.then.486: ; preds = %entry + ret { ptr, i64 } { ptr @str.732, i64 4 } -if.merge.277: ; preds = %entry - %loadN = load { i64, i1 }, ptr %alloca, align 8 - %ou.val = extractvalue { i64, i1 } %loadN, 0 - %ba.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %ou.val, 1 +if.merge.487: ; 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 39, i64 undef }, i64 %ba.p2i, 1 %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) ret { ptr, i64 } %call } @@ -3634,12 +7545,12 @@ entry: %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.278, label %if.merge.279 + br i1 %lnot, label %if.then.488, label %if.merge.489 -if.then.278: ; preds = %entry - ret { ptr, i64 } { ptr @str.278, i64 4 } +if.then.488: ; preds = %entry + ret { ptr, i64 } { ptr @str.733, i64 4 } -if.merge.279: ; preds = %entry +if.merge.489: ; 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 @@ -3649,6 +7560,75 @@ if.merge.279: ; preds = %entry 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.490, label %if.merge.491 + +if.then.490: ; preds = %entry + ret { ptr, i64 } { ptr @str.734, i64 4 } + +if.merge.491: ; 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 45, 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.492, label %if.merge.493 + +if.then.492: ; preds = %entry + ret { ptr, i64 } { ptr @str.735, i64 4 } + +if.merge.493: ; 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 88, 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_s64(ptr %0, { i64, i1 } %1) #0 { +entry: + %alloca = alloca { i64, i1 }, align 8 + store { i64, i1 } %1, ptr %alloca, align 8 + %load = load { i64, i1 }, ptr %alloca, align 8 + %oh.has = extractvalue { i64, i1 } %load, 1 + %lnot = xor i1 %oh.has, true + br i1 %lnot, label %if.then.494, label %if.merge.495 + +if.then.494: ; preds = %entry + ret { ptr, i64 } { ptr @str.736, i64 4 } + +if.merge.495: ; preds = %entry + %loadN = load { i64, i1 }, ptr %alloca, align 8 + %ou.val = extractvalue { i64, i1 } %loadN, 0 + %ba.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %ou.val, 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_bool(ptr %0, { i1, i1 } %1) #0 { entry: @@ -3657,12 +7637,12 @@ entry: %load = load { i1, i1 }, ptr %alloca, align 1 %oh.has = extractvalue { i1, i1 } %load, 1 %lnot = xor i1 %oh.has, true - br i1 %lnot, label %if.then.280, label %if.merge.281 + br i1 %lnot, label %if.then.496, label %if.merge.497 -if.then.280: ; preds = %entry - ret { ptr, i64 } { ptr @str.279, i64 4 } +if.then.496: ; preds = %entry + ret { ptr, i64 } { ptr @str.737, i64 4 } -if.merge.281: ; preds = %entry +if.merge.497: ; preds = %entry %loadN = load { i1, i1 }, ptr %alloca, align 1 %ou.val = extractvalue { i1, i1 } %loadN, 0 %zN = zext i1 %ou.val to i64 diff --git a/examples/expected/1004-errors-try.ir b/examples/expected/1004-errors-try.ir index eeec8da..d6cbd27 100644 --- a/examples/expected/1004-errors-try.ir +++ b/examples/expected/1004-errors-try.ir @@ -1,267 +1,619 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [75 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] +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [162 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] @tag.str = private constant [1 x i8] zeroinitializer -@tag.str.27 = private constant [4 x i8] c"Bad\00" -@tag.str.28 = private constant [6 x i8] c"Worse\00" -@tag_names = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.27, i64 3 }, { ptr, i64 } { ptr @tag.str.28, i64 5 }] +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag.str.144 = private constant [4 x i8] c"Bad\00" +@tag.str.145 = private constant [6 x i8] c"Worse\00" +@tag_names = private constant [16 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }, { ptr, i64 } { ptr @tag.str.144, i64 3 }, { ptr, i64 } { ptr @tag.str.145, i64 5 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.29 = private constant [5 x i8] c"bool\00" -@tn.str.30 = private constant [3 x i8] c"s8\00" -@tn.str.31 = private constant [4 x i8] c"s16\00" -@tn.str.32 = private constant [4 x i8] c"s32\00" -@tn.str.33 = private constant [4 x i8] c"s64\00" -@tn.str.34 = private constant [3 x i8] c"u8\00" -@tn.str.35 = private constant [4 x i8] c"u16\00" -@tn.str.36 = private constant [4 x i8] c"u32\00" -@tn.str.37 = private constant [4 x i8] c"u64\00" -@tn.str.38 = private constant [4 x i8] c"f32\00" -@tn.str.39 = private constant [4 x i8] c"f64\00" -@tn.str.40 = private constant [7 x i8] c"string\00" -@tn.str.41 = private constant [4 x i8] c"Any\00" -@tn.str.42 = private constant [9 x i8] c"noreturn\00" -@tn.str.43 = private constant [6 x i8] c"isize\00" -@tn.str.44 = private constant [6 x i8] c"usize\00" -@tn.str.45 = private constant [5 x i8] c"void\00" -@tn.str.46 = private constant [6 x i8] c"*void\00" -@tn.str.47 = private constant [16 x i8] c"Source_Location\00" -@tn.str.48 = private constant [11 x i8] c"CAllocator\00" -@tn.str.49 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.50 = private constant [4 x i8] c"GPA\00" -@tn.str.51 = private constant [5 x i8] c"*GPA\00" -@tn.str.52 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.53 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.54 = private constant [10 x i8] c"Allocator\00" -@tn.str.55 = private constant [6 x i8] c"Arena\00" -@tn.str.56 = private constant [7 x i8] c"*Arena\00" -@tn.str.57 = private constant [6 x i8] c"[*]u8\00" -@tn.str.58 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.59 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.60 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.61 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.62 = private constant [8 x i8] c"Context\00" -@tn.str.63 = private constant [7 x i8] c"[4]s64\00" -@tn.str.64 = private constant [9 x i8] c"[]string\00" -@tn.str.65 = private constant [2 x i8] c"E\00" -@tn.str.66 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.67 = private constant [5 x i8] c"*s64\00" -@tn.str.68 = private constant [7 x i8] c"**void\00" -@tn.str.69 = private constant [5 x i8] c"*s32\00" -@tn.str.70 = private constant [3 x i8] c"*E\00" -@tn.str.71 = private constant [8 x i8] c"*string\00" -@tn.str.72 = private constant [6 x i8] c"[]Any\00" -@tn.str.73 = private constant [5 x i8] c"*Any\00" -@tn.str.74 = private constant [7 x i8] c"[1]Any\00" -@tn.str.75 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.76 = private constant [7 x i8] c"*[]Any\00" -@tn.str.77 = private constant [4 x i8] c"*u8\00" -@tn.str.78 = private constant [6 x i8] c"*bool\00" -@tn.str.79 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.80 = private constant [5 x i8] c"*f64\00" -@tn.str.81 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.82 = private constant [11 x i8] c"*Allocator\00" -@tn.str.83 = private constant [9 x i8] c"*Context\00" -@tn.str.84 = private constant [5 x i8] c"*u32\00" -@tn.str.85 = private constant [10 x i8] c"*[]string\00" -@tn.str.86 = private constant [6 x i8] c"**GPA\00" -@tn.str.87 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.88 = private constant [8 x i8] c"**Arena\00" -@tn.str.89 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.90 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.91 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.92 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.93 = private constant [6 x i8] c"**s64\00" -@tn.str.94 = private constant [8 x i8] c"***void\00" -@tn.str.95 = private constant [6 x i8] c"**s32\00" -@tn.str.96 = private constant [4 x i8] c"**E\00" -@tn.str.97 = private constant [9 x i8] c"**string\00" -@tn.str.98 = private constant [6 x i8] c"**Any\00" -@tn.str.99 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.100 = private constant [8 x i8] c"**[]Any\00" -@tn.str.101 = private constant [5 x i8] c"**u8\00" -@tn.str.102 = private constant [7 x i8] c"**bool\00" -@__sx_type_names = private constant [75 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.29, i64 4 }, { ptr, i64 } { ptr @tn.str.30, i64 2 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 3 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 2 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 3 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 6 }, { ptr, i64 } { ptr @tn.str.41, i64 3 }, { ptr, i64 } { ptr @tn.str.42, i64 8 }, { ptr, i64 } { ptr @tn.str.43, i64 5 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 4 }, { ptr, i64 } { ptr @tn.str.46, i64 5 }, { ptr, i64 } { ptr @tn.str.47, i64 15 }, { ptr, i64 } { ptr @tn.str.48, i64 10 }, { ptr, i64 } { ptr @tn.str.49, i64 11 }, { ptr, i64 } { ptr @tn.str.50, i64 3 }, { ptr, i64 } { ptr @tn.str.51, i64 4 }, { ptr, i64 } { ptr @tn.str.52, i64 10 }, { ptr, i64 } { ptr @tn.str.53, i64 11 }, { ptr, i64 } { ptr @tn.str.54, i64 9 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 6 }, { ptr, i64 } { ptr @tn.str.57, i64 5 }, { ptr, i64 } { ptr @tn.str.58, i64 8 }, { ptr, i64 } { ptr @tn.str.59, i64 9 }, { ptr, i64 } { ptr @tn.str.60, i64 17 }, { ptr, i64 } { ptr @tn.str.61, i64 18 }, { ptr, i64 } { ptr @tn.str.62, i64 7 }, { ptr, i64 } { ptr @tn.str.63, i64 6 }, { ptr, i64 } { ptr @tn.str.64, i64 8 }, { ptr, i64 } { ptr @tn.str.65, i64 1 }, { ptr, i64 } { ptr @tn.str.66, i64 12 }, { ptr, i64 } { ptr @tn.str.67, i64 4 }, { ptr, i64 } { ptr @tn.str.68, i64 6 }, { ptr, i64 } { ptr @tn.str.69, i64 4 }, { ptr, i64 } { ptr @tn.str.70, i64 2 }, { ptr, i64 } { ptr @tn.str.71, i64 7 }, { ptr, i64 } { ptr @tn.str.72, i64 5 }, { ptr, i64 } { ptr @tn.str.73, i64 4 }, { ptr, i64 } { ptr @tn.str.74, i64 6 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 6 }, { ptr, i64 } { ptr @tn.str.77, i64 3 }, { ptr, i64 } { ptr @tn.str.78, i64 5 }, { ptr, i64 } { ptr @tn.str.79, i64 7 }, { ptr, i64 } { ptr @tn.str.80, i64 4 }, { ptr, i64 } { ptr @tn.str.81, i64 16 }, { ptr, i64 } { ptr @tn.str.82, i64 10 }, { ptr, i64 } { ptr @tn.str.83, i64 8 }, { ptr, i64 } { ptr @tn.str.84, i64 4 }, { ptr, i64 } { ptr @tn.str.85, i64 9 }, { ptr, i64 } { ptr @tn.str.86, i64 5 }, { ptr, i64 } { ptr @tn.str.87, i64 12 }, { ptr, i64 } { ptr @tn.str.88, i64 7 }, { ptr, i64 } { ptr @tn.str.89, i64 6 }, { ptr, i64 } { ptr @tn.str.90, i64 10 }, { ptr, i64 } { ptr @tn.str.91, i64 19 }, { ptr, i64 } { ptr @tn.str.92, i64 13 }, { ptr, i64 } { ptr @tn.str.93, i64 5 }, { ptr, i64 } { ptr @tn.str.94, i64 7 }, { ptr, i64 } { ptr @tn.str.95, i64 5 }, { ptr, i64 } { ptr @tn.str.96, i64 3 }, { ptr, i64 } { ptr @tn.str.97, i64 8 }, { ptr, i64 } { ptr @tn.str.98, i64 5 }, { ptr, i64 } { ptr @tn.str.99, i64 8 }, { ptr, i64 } { ptr @tn.str.100, i64 7 }, { ptr, i64 } { ptr @tn.str.101, i64 4 }, { ptr, i64 } { ptr @tn.str.102, i64 6 }] -@str.103 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.104 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.105 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.106 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.107 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.108 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.109 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.110 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.111 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.112 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.113 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.114 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.115 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.116 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.117 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.118 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.119 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.120 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.121 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@tn.str.146 = private constant [5 x i8] c"bool\00" +@tn.str.147 = private constant [3 x i8] c"s8\00" +@tn.str.148 = private constant [4 x i8] c"s16\00" +@tn.str.149 = private constant [4 x i8] c"s32\00" +@tn.str.150 = private constant [4 x i8] c"s64\00" +@tn.str.151 = private constant [3 x i8] c"u8\00" +@tn.str.152 = private constant [4 x i8] c"u16\00" +@tn.str.153 = private constant [4 x i8] c"u32\00" +@tn.str.154 = private constant [4 x i8] c"u64\00" +@tn.str.155 = private constant [4 x i8] c"f32\00" +@tn.str.156 = private constant [4 x i8] c"f64\00" +@tn.str.157 = private constant [7 x i8] c"string\00" +@tn.str.158 = private constant [4 x i8] c"Any\00" +@tn.str.159 = private constant [9 x i8] c"noreturn\00" +@tn.str.160 = private constant [6 x i8] c"isize\00" +@tn.str.161 = private constant [6 x i8] c"usize\00" +@tn.str.162 = private constant [5 x i8] c"void\00" +@tn.str.163 = private constant [6 x i8] c"*void\00" +@tn.str.164 = private constant [16 x i8] c"Source_Location\00" +@tn.str.165 = private constant [11 x i8] c"CAllocator\00" +@tn.str.166 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.167 = private constant [4 x i8] c"GPA\00" +@tn.str.168 = private constant [5 x i8] c"*GPA\00" +@tn.str.169 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.170 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.171 = private constant [10 x i8] c"Allocator\00" +@tn.str.172 = private constant [6 x i8] c"Arena\00" +@tn.str.173 = private constant [7 x i8] c"*Arena\00" +@tn.str.174 = private constant [6 x i8] c"[*]u8\00" +@tn.str.175 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.176 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.177 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.178 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.179 = private constant [8 x i8] c"Context\00" +@tn.str.180 = private constant [7 x i8] c"[4]s64\00" +@tn.str.181 = private constant [9 x i8] c"[]string\00" +@tn.str.182 = private constant [9 x i8] c"OpenMode\00" +@tn.str.183 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.184 = private constant [5 x i8] c"File\00" +@tn.str.185 = private constant [6 x i8] c"*File\00" +@tn.str.186 = private constant [6 x i8] c"?File\00" +@tn.str.187 = private constant [8 x i8] c"?string\00" +@tn.str.188 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.189 = private constant [4 x i8] c"*u8\00" +@tn.str.190 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.191 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.192 = private constant [5 x i8] c"*s32\00" +@tn.str.193 = private constant [9 x i8] c"SockAddr\00" +@tn.str.194 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.195 = private constant [5 x i8] c"*u32\00" +@tn.str.196 = private constant [10 x i8] c"JsonError\00" +@tn.str.197 = private constant [6 x i8] c"Array\00" +@tn.str.198 = private constant [7 x i8] c"Object\00" +@tn.str.199 = private constant [6 x i8] c"Value\00" +@tn.str.200 = private constant [7 x i8] c"Member\00" +@tn.str.201 = private constant [9 x i8] c"[*]Value\00" +@tn.str.202 = private constant [7 x i8] c"*Array\00" +@tn.str.203 = private constant [10 x i8] c"[*]Member\00" +@tn.str.204 = private constant [8 x i8] c"*Object\00" +@tn.str.205 = private constant [5 x i8] c"[]u8\00" +@tn.str.206 = private constant [5 x i8] c"Sink\00" +@tn.str.207 = private constant [6 x i8] c"*Sink\00" +@tn.str.208 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.209 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.210 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.211 = private constant [7 x i8] c"Parser\00" +@tn.str.212 = private constant [8 x i8] c"*Parser\00" +@tn.str.213 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.214 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.215 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.216 = private constant [13 x i8] c"Architecture\00" +@tn.str.217 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.218 = private constant [11 x i8] c"() -> bool\00" +@tn.str.219 = private constant [5 x i8] c"*s64\00" +@tn.str.220 = private constant [9 x i8] c"CliError\00" +@tn.str.221 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.222 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.223 = private constant [8 x i8] c"Command\00" +@tn.str.224 = private constant [10 x i8] c"FlagValue\00" +@tn.str.225 = private constant [5 x i8] c"Diag\00" +@tn.str.226 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.227 = private constant [7 x i8] c"Parsed\00" +@tn.str.228 = private constant [8 x i8] c"*Parsed\00" +@tn.str.229 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.230 = private constant [10 x i8] c"[]Command\00" +@tn.str.231 = private constant [6 x i8] c"*Diag\00" +@tn.str.232 = private constant [7 x i8] c"[8]s64\00" +@tn.str.233 = private constant [7 x i8] c"[64]u8\00" +@tn.str.234 = private constant [7 x i8] c"Sha256\00" +@tn.str.235 = private constant [8 x i8] c"*Sha256\00" +@tn.str.236 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.237 = private constant [8 x i8] c"[64]s64\00" +@tn.str.238 = private constant [2 x i8] c"E\00" +@tn.str.239 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.240 = private constant [7 x i8] c"**void\00" +@tn.str.241 = private constant [3 x i8] c"*E\00" +@tn.str.242 = private constant [8 x i8] c"*string\00" +@tn.str.243 = private constant [6 x i8] c"[]Any\00" +@tn.str.244 = private constant [5 x i8] c"*Any\00" +@tn.str.245 = private constant [7 x i8] c"[1]Any\00" +@tn.str.246 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.247 = private constant [7 x i8] c"*[]Any\00" +@tn.str.248 = private constant [6 x i8] c"*bool\00" +@tn.str.249 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.250 = private constant [5 x i8] c"*f64\00" +@tn.str.251 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.252 = private constant [11 x i8] c"*Allocator\00" +@tn.str.253 = private constant [9 x i8] c"*Context\00" +@tn.str.254 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.255 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.256 = private constant [8 x i8] c"*Member\00" +@tn.str.257 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.258 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.259 = private constant [9 x i8] c"*Command\00" +@tn.str.260 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.261 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.262 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.263 = private constant [7 x i8] c"*Value\00" +@tn.str.264 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.265 = private constant [14 x i8] c"*Architecture\00" +@tn.str.266 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.267 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.268 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.269 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.270 = private constant [10 x i8] c"*[]string\00" +@tn.str.271 = private constant [6 x i8] c"*[]u8\00" +@tn.str.272 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.273 = private constant [11 x i8] c"*[]Command\00" +@tn.str.274 = private constant [6 x i8] c"**GPA\00" +@tn.str.275 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.276 = private constant [8 x i8] c"**Arena\00" +@tn.str.277 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.278 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.279 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.280 = private constant [7 x i8] c"**File\00" +@tn.str.281 = private constant [5 x i8] c"**u8\00" +@tn.str.282 = private constant [6 x i8] c"**s32\00" +@tn.str.283 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.284 = private constant [6 x i8] c"**u32\00" +@tn.str.285 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.286 = private constant [8 x i8] c"**Array\00" +@tn.str.287 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.288 = private constant [9 x i8] c"**Object\00" +@tn.str.289 = private constant [7 x i8] c"**Sink\00" +@tn.str.290 = private constant [9 x i8] c"**Parser\00" +@tn.str.291 = private constant [6 x i8] c"**s64\00" +@tn.str.292 = private constant [9 x i8] c"**Parsed\00" +@tn.str.293 = private constant [7 x i8] c"**Diag\00" +@tn.str.294 = private constant [9 x i8] c"**Sha256\00" +@tn.str.295 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.296 = private constant [8 x i8] c"***void\00" +@tn.str.297 = private constant [4 x i8] c"**E\00" +@tn.str.298 = private constant [9 x i8] c"**string\00" +@tn.str.299 = private constant [6 x i8] c"**Any\00" +@tn.str.300 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.301 = private constant [8 x i8] c"**[]Any\00" +@tn.str.302 = private constant [7 x i8] c"**bool\00" +@tn.str.303 = private constant [7 x i8] c"*?File\00" +@tn.str.304 = private constant [9 x i8] c"*?string\00" +@tn.str.305 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.306 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [162 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.146, i64 4 }, { ptr, i64 } { ptr @tn.str.147, i64 2 }, { 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 2 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 3 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 6 }, { ptr, i64 } { ptr @tn.str.158, i64 3 }, { ptr, i64 } { ptr @tn.str.159, i64 8 }, { ptr, i64 } { ptr @tn.str.160, i64 5 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 4 }, { ptr, i64 } { ptr @tn.str.163, i64 5 }, { ptr, i64 } { ptr @tn.str.164, i64 15 }, { ptr, i64 } { ptr @tn.str.165, i64 10 }, { ptr, i64 } { ptr @tn.str.166, i64 11 }, { ptr, i64 } { ptr @tn.str.167, i64 3 }, { ptr, i64 } { ptr @tn.str.168, i64 4 }, { ptr, i64 } { ptr @tn.str.169, i64 10 }, { ptr, i64 } { ptr @tn.str.170, i64 11 }, { ptr, i64 } { ptr @tn.str.171, i64 9 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 6 }, { ptr, i64 } { ptr @tn.str.174, i64 5 }, { ptr, i64 } { ptr @tn.str.175, i64 8 }, { ptr, i64 } { ptr @tn.str.176, i64 9 }, { ptr, i64 } { ptr @tn.str.177, i64 17 }, { ptr, i64 } { ptr @tn.str.178, i64 18 }, { ptr, i64 } { ptr @tn.str.179, i64 7 }, { ptr, i64 } { ptr @tn.str.180, i64 6 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 8 }, { ptr, i64 } { ptr @tn.str.183, i64 8 }, { ptr, i64 } { ptr @tn.str.184, i64 4 }, { ptr, i64 } { ptr @tn.str.185, i64 5 }, { ptr, i64 } { ptr @tn.str.186, i64 5 }, { ptr, i64 } { ptr @tn.str.187, i64 7 }, { ptr, i64 } { ptr @tn.str.188, i64 10 }, { ptr, i64 } { ptr @tn.str.189, i64 3 }, { ptr, i64 } { ptr @tn.str.190, i64 13 }, { ptr, i64 } { ptr @tn.str.191, i64 14 }, { ptr, i64 } { ptr @tn.str.192, i64 4 }, { ptr, i64 } { ptr @tn.str.193, i64 8 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 4 }, { ptr, i64 } { ptr @tn.str.196, i64 9 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 5 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 8 }, { ptr, i64 } { ptr @tn.str.202, i64 6 }, { ptr, i64 } { ptr @tn.str.203, i64 9 }, { ptr, i64 } { ptr @tn.str.204, i64 7 }, { ptr, i64 } { ptr @tn.str.205, i64 4 }, { ptr, i64 } { ptr @tn.str.206, i64 4 }, { ptr, i64 } { ptr @tn.str.207, i64 5 }, { ptr, i64 } { ptr @tn.str.208, i64 16 }, { ptr, i64 } { ptr @tn.str.209, i64 14 }, { ptr, i64 } { ptr @tn.str.210, i64 21 }, { ptr, i64 } { ptr @tn.str.211, i64 6 }, { ptr, i64 } { ptr @tn.str.212, i64 7 }, { ptr, i64 } { ptr @tn.str.213, i64 24 }, { ptr, i64 } { ptr @tn.str.214, i64 23 }, { ptr, i64 } { ptr @tn.str.215, i64 15 }, { ptr, i64 } { ptr @tn.str.216, i64 12 }, { ptr, i64 } { ptr @tn.str.217, i64 12 }, { ptr, i64 } { ptr @tn.str.218, i64 10 }, { ptr, i64 } { ptr @tn.str.219, i64 4 }, { ptr, i64 } { ptr @tn.str.220, i64 8 }, { ptr, i64 } { ptr @tn.str.221, i64 8 }, { ptr, i64 } { ptr @tn.str.222, i64 10 }, { ptr, i64 } { ptr @tn.str.223, i64 7 }, { ptr, i64 } { ptr @tn.str.224, i64 9 }, { ptr, i64 } { ptr @tn.str.225, i64 4 }, { ptr, i64 } { ptr @tn.str.226, i64 13 }, { ptr, i64 } { ptr @tn.str.227, i64 6 }, { ptr, i64 } { ptr @tn.str.228, i64 7 }, { ptr, i64 } { ptr @tn.str.229, i64 18 }, { ptr, i64 } { ptr @tn.str.230, i64 9 }, { ptr, i64 } { ptr @tn.str.231, i64 5 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 6 }, { ptr, i64 } { ptr @tn.str.234, i64 6 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 7 }, { ptr, i64 } { ptr @tn.str.237, i64 7 }, { ptr, i64 } { ptr @tn.str.238, i64 1 }, { ptr, i64 } { ptr @tn.str.239, i64 12 }, { ptr, i64 } { ptr @tn.str.240, i64 6 }, { ptr, i64 } { ptr @tn.str.241, i64 2 }, { ptr, i64 } { ptr @tn.str.242, i64 7 }, { ptr, i64 } { ptr @tn.str.243, i64 5 }, { ptr, i64 } { ptr @tn.str.244, i64 4 }, { ptr, i64 } { ptr @tn.str.245, i64 6 }, { ptr, i64 } { ptr @tn.str.246, i64 7 }, { ptr, i64 } { ptr @tn.str.247, i64 6 }, { ptr, i64 } { ptr @tn.str.248, i64 5 }, { ptr, i64 } { ptr @tn.str.249, i64 7 }, { ptr, i64 } { ptr @tn.str.250, i64 4 }, { ptr, i64 } { ptr @tn.str.251, i64 16 }, { ptr, i64 } { ptr @tn.str.252, i64 10 }, { ptr, i64 } { ptr @tn.str.253, i64 8 }, { ptr, i64 } { ptr @tn.str.254, i64 11 }, { ptr, i64 } { ptr @tn.str.255, i64 14 }, { ptr, i64 } { ptr @tn.str.256, i64 7 }, { ptr, i64 } { ptr @tn.str.257, i64 13 }, { ptr, i64 } { ptr @tn.str.258, i64 9 }, { ptr, i64 } { ptr @tn.str.259, i64 8 }, { ptr, i64 } { ptr @tn.str.260, i64 10 }, { ptr, i64 } { ptr @tn.str.261, i64 9 }, { ptr, i64 } { ptr @tn.str.262, i64 9 }, { ptr, i64 } { ptr @tn.str.263, i64 6 }, { ptr, i64 } { ptr @tn.str.264, i64 16 }, { ptr, i64 } { ptr @tn.str.265, i64 13 }, { ptr, i64 } { ptr @tn.str.266, i64 14 }, { ptr, i64 } { ptr @tn.str.267, i64 7 }, { ptr, i64 } { ptr @tn.str.268, i64 7 }, { ptr, i64 } { ptr @tn.str.269, i64 8 }, { ptr, i64 } { ptr @tn.str.270, i64 9 }, { ptr, i64 } { ptr @tn.str.271, i64 5 }, { ptr, i64 } { ptr @tn.str.272, i64 11 }, { ptr, i64 } { ptr @tn.str.273, i64 10 }, { ptr, i64 } { ptr @tn.str.274, i64 5 }, { ptr, i64 } { ptr @tn.str.275, i64 12 }, { ptr, i64 } { ptr @tn.str.276, i64 7 }, { ptr, i64 } { ptr @tn.str.277, i64 6 }, { ptr, i64 } { ptr @tn.str.278, i64 10 }, { ptr, i64 } { ptr @tn.str.279, i64 19 }, { ptr, i64 } { ptr @tn.str.280, i64 6 }, { ptr, i64 } { ptr @tn.str.281, i64 4 }, { ptr, i64 } { ptr @tn.str.282, i64 5 }, { ptr, i64 } { ptr @tn.str.283, i64 10 }, { ptr, i64 } { ptr @tn.str.284, i64 5 }, { ptr, i64 } { ptr @tn.str.285, i64 9 }, { ptr, i64 } { ptr @tn.str.286, i64 7 }, { ptr, i64 } { ptr @tn.str.287, i64 10 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 6 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 5 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 6 }, { ptr, i64 } { ptr @tn.str.294, i64 8 }, { ptr, i64 } { ptr @tn.str.295, i64 13 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 3 }, { ptr, i64 } { ptr @tn.str.298, i64 8 }, { ptr, i64 } { ptr @tn.str.299, i64 5 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 7 }, { ptr, i64 } { ptr @tn.str.302, i64 6 }, { ptr, i64 } { ptr @tn.str.303, i64 6 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }, { ptr, i64 } { ptr @tn.str.305, i64 15 }, { ptr, i64 } { ptr @tn.str.306, i64 8 }] +@str.307 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.311 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.312 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.313 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.314 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.315 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.316 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.317 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.318 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.319 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.320 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.321 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.322 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.323 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.324 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.325 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.326 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.327 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @frame.str = private unnamed_addr constant [19 x i8] c"1004-errors-try.sx\00" -@frame.str.122 = private unnamed_addr constant [6 x i8] c"inner\00" -@frame.str.123 = private unnamed_addr constant [34 x i8] c" if n < 0 { raise error.Bad; }\00" -@trace.frame = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 18 }, i32 13, i32 16, { ptr, i64 } { ptr @frame.str.122, i64 5 }, { ptr, i64 } { ptr @frame.str.123, i64 33 } } -@frame.str.124 = private unnamed_addr constant [6 x i8] c"outer\00" -@frame.str.125 = private unnamed_addr constant [18 x i8] c" try inner(n);\00" -@trace.frame.126 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 18 }, i32 19, i32 5, { ptr, i64 } { ptr @frame.str.124, i64 5 }, { ptr, i64 } { ptr @frame.str.125, i64 17 } } -@str.127 = private unnamed_addr constant [16 x i8] c"try result: {}\0A\00", align 1 -@str.128 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.129 = private unnamed_addr constant [16 x i8] c"try result: {}\0A\00", align 1 -@str.130 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.131 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.132 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.133 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@frame.str.328 = private unnamed_addr constant [6 x i8] c"inner\00" +@frame.str.329 = private unnamed_addr constant [34 x i8] c" if n < 0 { raise error.Bad; }\00" +@trace.frame = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 18 }, i32 13, i32 16, { ptr, i64 } { ptr @frame.str.328, i64 5 }, { ptr, i64 } { ptr @frame.str.329, i64 33 } } +@frame.str.330 = private unnamed_addr constant [6 x i8] c"outer\00" +@frame.str.331 = private unnamed_addr constant [18 x i8] c" try inner(n);\00" +@trace.frame.332 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 18 }, i32 19, i32 5, { ptr, i64 } { ptr @frame.str.330, i64 5 }, { ptr, i64 } { ptr @frame.str.331, i64 17 } } +@str.333 = private unnamed_addr constant [16 x i8] c"try result: {}\0A\00", align 1 +@str.334 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.335 = private unnamed_addr constant [16 x i8] c"try result: {}\0A\00", align 1 +@str.336 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.337 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.338 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.339 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.134 = private constant [5 x i8] c"line\00" -@fld.str.135 = private constant [4 x i8] c"col\00" -@fld.str.136 = 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.134, i64 4 }, { ptr, i64 } { ptr @fld.str.135, i64 3 }, { ptr, i64 } { ptr @fld.str.136, i64 4 }] -@str.137 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.138 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.139 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.140 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.141 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.142 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.143 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.144 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.145 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.146 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.147 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.148 = private constant [12 x i8] c"alloc_count\00" -@field_names.149 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.148, i64 11 }] -@str.150 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.151 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.152 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.153 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.154 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.155 = private constant [5 x i8] c"next\00" -@fld.str.156 = private constant [4 x i8] c"cap\00" -@field_names.157 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.155, i64 4 }, { ptr, i64 } { ptr @fld.str.156, i64 3 }] -@str.158 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.159 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.160 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.161 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.162 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.163 = private constant [4 x i8] c"ctx\00" -@fld.str.164 = private constant [6 x i8] c"alloc\00" -@fld.str.165 = private constant [8 x i8] c"dealloc\00" -@field_names.166 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.163, i64 3 }, { ptr, i64 } { ptr @fld.str.164, i64 5 }, { ptr, i64 } { ptr @fld.str.165, i64 7 }] -@str.167 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.168 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.169 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.170 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.171 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.172 = private constant [6 x i8] c"first\00" -@fld.str.173 = private constant [10 x i8] c"end_index\00" -@fld.str.174 = private constant [7 x i8] c"parent\00" -@field_names.175 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.172, i64 5 }, { ptr, i64 } { ptr @fld.str.173, i64 9 }, { ptr, i64 } { ptr @fld.str.174, i64 6 }] -@str.176 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.177 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.178 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.179 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.180 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.181 = private constant [4 x i8] c"buf\00" -@fld.str.182 = private constant [4 x i8] c"len\00" -@fld.str.183 = private constant [4 x i8] c"pos\00" -@field_names.184 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.181, i64 3 }, { ptr, i64 } { ptr @fld.str.182, i64 3 }, { ptr, i64 } { ptr @fld.str.183, i64 3 }] -@str.185 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.186 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.187 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.188 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.189 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.190 = private constant [7 x i8] c"parent\00" -@fld.str.191 = private constant [12 x i8] c"alloc_count\00" -@fld.str.192 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.193 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.194 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.190, i64 6 }, { ptr, i64 } { ptr @fld.str.191, i64 11 }, { ptr, i64 } { ptr @fld.str.192, i64 13 }, { ptr, i64 } { ptr @fld.str.193, i64 17 }] -@str.195 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.196 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.197 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.198 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.199 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.200 = private constant [10 x i8] c"allocator\00" -@fld.str.201 = private constant [5 x i8] c"data\00" -@field_names.202 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.200, i64 9 }, { ptr, i64 } { ptr @fld.str.201, i64 4 }] -@str.203 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.204 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.205 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.206 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.207 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.208 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.209 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.210 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.212 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.213 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.214 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.215 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.216 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.217 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.218 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.219 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.220 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.221 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.222 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.223 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.224 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.225 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.226 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.227 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.228 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.229 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.230 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.231 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.232 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.233 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.234 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.235 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.236 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.237 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.238 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.239 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.240 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.241 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.242 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.243 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.244 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.245 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.246 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.247 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.248 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.249 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.250 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.251 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.252 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.253 = private unnamed_addr constant [11 x i8] c"*error_set\00", align 1 -@str.254 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.255 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.256 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.257 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.258 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.259 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.260 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.261 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.262 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.263 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.264 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.265 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.266 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.267 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.268 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.269 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.270 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.271 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.272 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.340 = private constant [5 x i8] c"line\00" +@fld.str.341 = private constant [4 x i8] c"col\00" +@fld.str.342 = 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.340, i64 4 }, { ptr, i64 } { ptr @fld.str.341, i64 3 }, { ptr, i64 } { ptr @fld.str.342, i64 4 }] +@str.343 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.344 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.345 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.346 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.347 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.348 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.349 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.350 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.351 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.353 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.354 = private constant [12 x i8] c"alloc_count\00" +@field_names.355 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.354, i64 11 }] +@str.356 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.357 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.358 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.360 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.361 = private constant [5 x i8] c"next\00" +@fld.str.362 = private constant [4 x i8] c"cap\00" +@field_names.363 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.361, i64 4 }, { ptr, i64 } { ptr @fld.str.362, i64 3 }] +@str.364 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.365 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.366 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.367 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.368 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.369 = private constant [4 x i8] c"ctx\00" +@fld.str.370 = private constant [6 x i8] c"alloc\00" +@fld.str.371 = private constant [8 x i8] c"dealloc\00" +@field_names.372 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.369, i64 3 }, { ptr, i64 } { ptr @fld.str.370, i64 5 }, { ptr, i64 } { ptr @fld.str.371, i64 7 }] +@str.373 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.374 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.375 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.376 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.377 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.378 = private constant [6 x i8] c"first\00" +@fld.str.379 = private constant [10 x i8] c"end_index\00" +@fld.str.380 = private constant [7 x i8] c"parent\00" +@field_names.381 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.378, i64 5 }, { ptr, i64 } { ptr @fld.str.379, i64 9 }, { ptr, i64 } { ptr @fld.str.380, i64 6 }] +@str.382 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.383 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.384 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.385 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.386 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.387 = private constant [4 x i8] c"buf\00" +@fld.str.388 = private constant [4 x i8] c"len\00" +@fld.str.389 = private constant [4 x i8] c"pos\00" +@field_names.390 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.387, i64 3 }, { ptr, i64 } { ptr @fld.str.388, i64 3 }, { ptr, i64 } { ptr @fld.str.389, i64 3 }] +@str.391 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.392 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.393 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.394 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.395 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.396 = private constant [7 x i8] c"parent\00" +@fld.str.397 = private constant [12 x i8] c"alloc_count\00" +@fld.str.398 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.399 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.400 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.396, i64 6 }, { ptr, i64 } { ptr @fld.str.397, i64 11 }, { ptr, i64 } { ptr @fld.str.398, i64 13 }, { ptr, i64 } { ptr @fld.str.399, i64 17 }] +@str.401 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.402 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.403 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.404 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.405 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.406 = private constant [10 x i8] c"allocator\00" +@fld.str.407 = private constant [5 x i8] c"data\00" +@field_names.408 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.406, i64 9 }, { ptr, i64 } { ptr @fld.str.407, i64 4 }] +@str.409 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.410 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.412 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.413 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.414 = private constant [3 x i8] c"fd\00" +@field_names.415 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.414, i64 2 }] +@str.416 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.417 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.420 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.421 = private constant [5 x i8] c"file\00" +@fld.str.422 = private constant [5 x i8] c"line\00" +@fld.str.423 = private constant [4 x i8] c"col\00" +@fld.str.424 = private constant [5 x i8] c"func\00" +@fld.str.425 = private constant [10 x i8] c"line_text\00" +@field_names.426 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.421, i64 4 }, { ptr, i64 } { ptr @fld.str.422, i64 4 }, { ptr, i64 } { ptr @fld.str.423, i64 3 }, { ptr, i64 } { ptr @fld.str.424, i64 4 }, { ptr, i64 } { ptr @fld.str.425, i64 9 }] +@str.427 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.428 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.429 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.430 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.431 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.432 = private constant [10 x i8] c"exit_code\00" +@fld.str.433 = private constant [7 x i8] c"stdout\00" +@field_names.434 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.432, i64 9 }, { ptr, i64 } { ptr @fld.str.433, i64 6 }] +@str.435 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.436 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.437 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.438 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.439 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.440 = private constant [8 x i8] c"sin_len\00" +@fld.str.441 = private constant [11 x i8] c"sin_family\00" +@fld.str.442 = private constant [9 x i8] c"sin_port\00" +@fld.str.443 = private constant [9 x i8] c"sin_addr\00" +@fld.str.444 = private constant [9 x i8] c"sin_zero\00" +@field_names.445 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.440, i64 7 }, { ptr, i64 } { ptr @fld.str.441, i64 10 }, { ptr, i64 } { ptr @fld.str.442, i64 8 }, { ptr, i64 } { ptr @fld.str.443, i64 8 }, { ptr, i64 } { ptr @fld.str.444, i64 8 }] +@str.446 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.447 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.448 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.449 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.450 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.451 = private constant [6 x i8] c"items\00" +@fld.str.452 = private constant [4 x i8] c"len\00" +@fld.str.453 = private constant [4 x i8] c"cap\00" +@field_names.454 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.451, i64 5 }, { ptr, i64 } { ptr @fld.str.452, i64 3 }, { ptr, i64 } { ptr @fld.str.453, i64 3 }] +@str.455 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.456 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.457 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.458 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.459 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.460 = private constant [6 x i8] c"items\00" +@fld.str.461 = private constant [4 x i8] c"len\00" +@fld.str.462 = private constant [4 x i8] c"cap\00" +@field_names.463 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.460, i64 5 }, { ptr, i64 } { ptr @fld.str.461, i64 3 }, { ptr, i64 } { ptr @fld.str.462, i64 3 }] +@str.464 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.465 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.466 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.467 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.468 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.469 = private constant [4 x i8] c"key\00" +@fld.str.470 = private constant [4 x i8] c"val\00" +@field_names.471 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.469, i64 3 }, { ptr, i64 } { ptr @fld.str.470, i64 3 }] +@str.472 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.473 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.474 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.475 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.476 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.477 = private constant [4 x i8] c"dst\00" +@fld.str.478 = private constant [4 x i8] c"pos\00" +@fld.str.479 = private constant [5 x i8] c"file\00" +@field_names.480 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.477, i64 3 }, { ptr, i64 } { ptr @fld.str.478, i64 3 }, { ptr, i64 } { ptr @fld.str.479, i64 4 }] +@str.481 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.482 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.483 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.484 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.485 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.486 = private constant [4 x i8] c"src\00" +@fld.str.487 = private constant [4 x i8] c"pos\00" +@fld.str.488 = private constant [6 x i8] c"alloc\00" +@field_names.489 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.486, i64 3 }, { ptr, i64 } { ptr @fld.str.487, i64 3 }, { ptr, i64 } { ptr @fld.str.488, i64 5 }] +@str.490 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.491 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.493 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.494 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.495 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.496 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.497 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.498 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.499 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.500 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.501 = private constant [5 x i8] c"name\00" +@fld.str.502 = private constant [12 x i8] c"takes_value\00" +@fld.str.503 = private constant [9 x i8] c"required\00" +@field_names.504 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.501, i64 4 }, { ptr, i64 } { ptr @fld.str.502, i64 11 }, { ptr, i64 } { ptr @fld.str.503, i64 8 }] +@str.505 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.506 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.507 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.508 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.509 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.510 = private constant [6 x i8] c"group\00" +@fld.str.511 = private constant [8 x i8] c"command\00" +@fld.str.512 = private constant [6 x i8] c"flags\00" +@field_names.513 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.510, i64 5 }, { ptr, i64 } { ptr @fld.str.511, i64 7 }, { ptr, i64 } { ptr @fld.str.512, i64 5 }] +@str.514 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.515 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.516 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.517 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.518 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.519 = private constant [4 x i8] c"set\00" +@fld.str.520 = private constant [6 x i8] c"value\00" +@field_names.521 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.519, i64 3 }, { ptr, i64 } { ptr @fld.str.520, i64 5 }] +@str.522 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.523 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.524 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.525 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.526 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.527 = private constant [6 x i8] c"index\00" +@fld.str.528 = private constant [6 x i8] c"token\00" +@field_names.529 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.527, i64 5 }, { ptr, i64 } { ptr @fld.str.528, i64 5 }] +@str.530 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.531 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.532 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.533 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.534 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.535 = private constant [6 x i8] c"group\00" +@fld.str.536 = private constant [8 x i8] c"command\00" +@fld.str.537 = private constant [10 x i8] c"cmd_index\00" +@fld.str.538 = private constant [5 x i8] c"json\00" +@fld.str.539 = private constant [5 x i8] c"rest\00" +@fld.str.540 = private constant [5 x i8] c"spec\00" +@fld.str.541 = private constant [7 x i8] c"values\00" +@field_names.542 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.535, i64 5 }, { ptr, i64 } { ptr @fld.str.536, i64 7 }, { ptr, i64 } { ptr @fld.str.537, i64 9 }, { ptr, i64 } { ptr @fld.str.538, i64 4 }, { ptr, i64 } { ptr @fld.str.539, i64 4 }, { ptr, i64 } { ptr @fld.str.540, i64 4 }, { ptr, i64 } { ptr @fld.str.541, i64 6 }] +@str.543 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.544 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.545 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.546 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.547 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.548 = private constant [2 x i8] c"h\00" +@fld.str.549 = private constant [4 x i8] c"buf\00" +@fld.str.550 = private constant [8 x i8] c"buf_len\00" +@fld.str.551 = private constant [10 x i8] c"total_len\00" +@field_names.552 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.548, i64 1 }, { ptr, i64 } { ptr @fld.str.549, i64 3 }, { ptr, i64 } { ptr @fld.str.550, i64 7 }, { ptr, i64 } { ptr @fld.str.551, i64 9 }] +@str.553 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.554 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.555 = private constant [5 x i8] c"read\00" +@fld.str.556 = private constant [6 x i8] c"write\00" +@fld.str.557 = private constant [7 x i8] c"append\00" +@fld.str.558 = private constant [11 x i8] c"read_write\00" +@field_names.559 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.555, i64 4 }, { ptr, i64 } { ptr @fld.str.556, i64 5 }, { ptr, i64 } { ptr @fld.str.557, i64 6 }, { ptr, i64 } { ptr @fld.str.558, i64 10 }] +@str.560 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.562 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.563 = private constant [4 x i8] c"set\00" +@fld.str.564 = private constant [8 x i8] c"current\00" +@fld.str.565 = private constant [4 x i8] c"end\00" +@field_names.566 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.563, i64 3 }, { ptr, i64 } { ptr @fld.str.564, i64 7 }, { ptr, i64 } { ptr @fld.str.565, i64 3 }] +@str.567 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.570 = private constant [6 x i8] c"null_\00" +@fld.str.571 = private constant [6 x i8] c"bool_\00" +@fld.str.572 = private constant [5 x i8] c"int_\00" +@fld.str.573 = private constant [4 x i8] c"str\00" +@fld.str.574 = private constant [6 x i8] c"array\00" +@fld.str.575 = private constant [7 x i8] c"object\00" +@field_names.576 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.570, i64 5 }, { ptr, i64 } { ptr @fld.str.571, i64 5 }, { ptr, i64 } { ptr @fld.str.572, i64 4 }, { ptr, i64 } { ptr @fld.str.573, i64 3 }, { ptr, i64 } { ptr @fld.str.574, i64 5 }, { ptr, i64 } { ptr @fld.str.575, i64 6 }] +@str.577 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.578 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.579 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.580 = private constant [6 x i8] c"macos\00" +@fld.str.581 = private constant [6 x i8] c"linux\00" +@fld.str.582 = private constant [8 x i8] c"windows\00" +@fld.str.583 = private constant [5 x i8] c"wasm\00" +@fld.str.584 = private constant [4 x i8] c"ios\00" +@fld.str.585 = private constant [8 x i8] c"android\00" +@fld.str.586 = private constant [8 x i8] c"unknown\00" +@field_names.587 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.580, i64 5 }, { ptr, i64 } { ptr @fld.str.581, i64 5 }, { ptr, i64 } { ptr @fld.str.582, i64 7 }, { ptr, i64 } { ptr @fld.str.583, i64 4 }, { ptr, i64 } { ptr @fld.str.584, i64 3 }, { ptr, i64 } { ptr @fld.str.585, i64 7 }, { ptr, i64 } { ptr @fld.str.586, i64 7 }] +@str.588 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.589 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.590 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.591 = private constant [8 x i8] c"aarch64\00" +@fld.str.592 = private constant [7 x i8] c"x86_64\00" +@fld.str.593 = private constant [7 x i8] c"wasm32\00" +@fld.str.594 = private constant [7 x i8] c"wasm64\00" +@fld.str.595 = private constant [8 x i8] c"unknown\00" +@field_names.596 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.591, i64 7 }, { ptr, i64 } { ptr @fld.str.592, i64 6 }, { ptr, i64 } { ptr @fld.str.593, i64 6 }, { ptr, i64 } { ptr @fld.str.594, i64 6 }, { ptr, i64 } { ptr @fld.str.595, i64 7 }] +@str.597 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.598 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.600 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.601 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.602 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.603 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.604 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.607 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.609 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.610 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.612 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.613 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.616 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.618 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.619 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.622 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.624 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.625 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.627 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.628 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.629 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.630 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.631 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.632 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.633 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.634 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.635 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.636 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.637 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.638 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.639 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.640 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.641 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.642 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.643 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.644 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.645 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.646 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.647 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.648 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.649 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.650 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.651 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.652 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.653 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.654 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.655 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.656 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.657 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.658 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.659 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.660 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.661 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.662 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.663 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.664 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.665 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.666 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.667 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.668 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.669 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.670 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.671 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.672 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.673 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.674 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.675 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.676 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.677 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.678 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.679 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.680 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.681 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.682 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.683 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.684 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.685 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.686 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.687 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.688 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.689 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.690 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.691 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.692 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.693 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.694 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.695 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.696 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.697 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.698 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.699 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.700 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.701 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.702 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.703 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.704 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.705 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.706 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.707 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.708 = private unnamed_addr constant [11 x i8] c"*error_set\00", align 1 +@str.709 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.710 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.711 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.712 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.713 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.714 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.715 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.716 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.717 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.718 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.719 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.720 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.721 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.722 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.723 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.724 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.725 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.728 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -493,7 +845,7 @@ entry: br i1 %icmp, label %if.then.66, label %if.merge.67 if.then.66: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.67: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -620,7 +972,7 @@ if.else.89: ; preds = %entry br label %if.merge.90 if.merge.90: ; preds = %if.else.89, %if.then.88 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.88 ], [ { ptr @str.23, i64 5 }, %if.else.89 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.88 ], [ { ptr @str.127, i64 5 }, %if.else.89 ] ret { ptr, i64 } %bp } @@ -789,38 +1141,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.214 + br label %while.hdr.381 -while.hdr.214: ; preds = %if.merge.219, %entry +while.hdr.381: ; preds = %if.merge.386, %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.215, label %while.exit.216 + br i1 %icmp, label %while.body.382, label %while.exit.383 -while.body.215: ; preds = %while.hdr.214 +while.body.382: ; preds = %while.hdr.381 %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.217, label %if.else.218 + br i1 %icmpN, label %if.then.384, label %if.else.385 -while.exit.216: ; preds = %while.hdr.214 +while.exit.383: ; preds = %while.hdr.381 ret void -if.then.217: ; preds = %while.body.215 +if.then.384: ; preds = %while.body.382 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.219 + br label %if.merge.386 -if.else.218: ; preds = %while.body.215 +if.else.385: ; preds = %while.body.382 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.219 + br label %if.merge.386 -if.merge.219: ; preds = %if.else.218, %if.then.217 - %bp = phi i64 [ %addN, %if.then.217 ], [ %addN, %if.else.218 ] +if.merge.386: ; preds = %if.else.385, %if.then.384 + %bp = phi i64 [ %addN, %if.then.384 ], [ %addN, %if.else.385 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -833,7 +1185,7 @@ if.merge.219: ; preds = %if.else.218, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.214 + br label %while.hdr.381 } ; Function Attrs: nounwind @@ -951,12 +1303,12 @@ entry: 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.212, label %if.merge.213 + br i1 %icmp, label %if.then.379, label %if.merge.380 -if.then.212: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.379: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.213: ; preds = %entry +if.merge.380: ; 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 @@ -987,14 +1339,14 @@ if.merge.213: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.220 + br label %while.hdr.387 -while.hdr.220: ; preds = %if.merge.224, %if.merge.213 +while.hdr.387: ; preds = %if.merge.391, %if.merge.380 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.221, label %while.exit.222 + br i1 %icmpN, label %while.body.388, label %while.exit.389 -while.body.221: ; preds = %while.hdr.220 +while.body.388: ; preds = %while.hdr.387 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1002,9 +1354,9 @@ while.body.221: ; preds = %while.hdr.220 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.223, label %if.merge.224 + br i1 %icmpN, label %if.then.390, label %if.merge.391 -while.exit.222: ; preds = %if.then.223, %while.hdr.220 +while.exit.389: ; preds = %if.then.390, %while.hdr.387 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1012,14 +1364,14 @@ while.exit.222: ; preds = %if.then.223, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.223: ; preds = %while.body.221 - br label %while.exit.222 +if.then.390: ; preds = %while.body.388 + br label %while.exit.389 -if.merge.224: ; preds = %while.body.221 +if.merge.391: ; preds = %while.body.388 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.220 + br label %while.hdr.387 } ; Function Attrs: nounwind @@ -1096,13 +1448,15 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1135,11 +1489,42 @@ entry: i64 30, label %match.arm.53 i64 32, label %match.arm.53 i64 34, label %match.arm.53 - i64 37, label %match.arm.55 + i64 39, label %match.arm.53 + i64 43, label %match.arm.53 + i64 45, label %match.arm.53 + i64 48, label %match.arm.53 + i64 52, label %match.arm.53 + i64 53, label %match.arm.53 + i64 55, label %match.arm.53 + i64 61, label %match.arm.53 + i64 66, label %match.arm.53 + i64 72, label %match.arm.53 + i64 76, label %match.arm.53 + i64 78, label %match.arm.53 + i64 79, label %match.arm.53 + i64 80, label %match.arm.53 + i64 82, label %match.arm.53 + i64 89, label %match.arm.53 + i64 37, label %match.arm.54 + i64 38, label %match.arm.54 + i64 54, label %match.arm.54 + i64 70, label %match.arm.54 + i64 71, label %match.arm.54 + i64 51, label %match.arm.55 + i64 64, label %match.arm.55 + i64 75, label %match.arm.55 + i64 93, label %match.arm.55 i64 35, label %match.arm.57 - i64 46, label %match.arm.57 + i64 81, label %match.arm.57 + i64 87, label %match.arm.57 + i64 88, label %match.arm.57 + i64 92, label %match.arm.57 + i64 100, label %match.arm.57 i64 36, label %match.arm.58 - i64 44, label %match.arm.58 + i64 60, label %match.arm.58 + i64 77, label %match.arm.58 + i64 85, label %match.arm.58 + i64 98, label %match.arm.58 i64 18, label %match.arm.59 i64 21, label %match.arm.59 i64 23, label %match.arm.59 @@ -1148,26 +1533,42 @@ entry: i64 29, label %match.arm.59 i64 31, label %match.arm.59 i64 33, label %match.arm.59 - i64 38, label %match.arm.59 - i64 39, label %match.arm.59 i64 40, label %match.arm.59 - i64 41, label %match.arm.59 - i64 42, label %match.arm.59 - i64 43, label %match.arm.59 - i64 45, label %match.arm.59 + i64 44, label %match.arm.59 i64 47, label %match.arm.59 - i64 48, label %match.arm.59 i64 49, label %match.arm.59 i64 50, label %match.arm.59 + i64 56, label %match.arm.59 + i64 57, label %match.arm.59 + i64 58, label %match.arm.59 + i64 59, label %match.arm.59 + i64 62, label %match.arm.59 + i64 67, label %match.arm.59 + i64 74, label %match.arm.59 + i64 83, label %match.arm.59 + i64 86, label %match.arm.59 + i64 90, label %match.arm.59 + i64 94, label %match.arm.59 + i64 95, label %match.arm.59 + i64 96, label %match.arm.59 + i64 97, label %match.arm.59 + i64 99, label %match.arm.59 + i64 101, label %match.arm.59 + i64 102, label %match.arm.59 + i64 103, label %match.arm.59 + i64 41, label %match.arm.60 + i64 42, label %match.arm.60 + i64 46, label %match.arm.60 + i64 91, label %match.arm.60 i64 13, label %match.arm.61 ] -match.merge.47: ; preds = %dispatch.merge.188, %dispatch.merge.174, %dispatch.merge.160, %dispatch.merge.104, %float.merge.93, %if.merge.65, %match.unr.62, %match.arm.61, %match.arm.55, %match.arm.51, %match.arm.50, %match.arm.48 +match.merge.47: ; preds = %dispatch.merge.482, %dispatch.merge.343, %dispatch.merge.311, %dispatch.merge.273, %dispatch.merge.256, %dispatch.merge.104, %float.merge.93, %if.merge.65, %match.unr.62, %match.arm.61, %match.arm.55, %match.arm.51, %match.arm.50, %match.arm.48 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.48: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.47 match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1176,7 +1577,7 @@ match.arm.49: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [162 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.63, label %if.else.64 @@ -1204,7 +1605,7 @@ match.arm.52: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.91, label %fN.unbox.92 -match.arm.53: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.53: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1218,19 +1619,44 @@ match.arm.53: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.112 i64 32, label %dispatch.case.113 i64 34, label %dispatch.case.114 + i64 39, label %dispatch.case.115 + i64 43, label %dispatch.case.116 + i64 45, label %dispatch.case.117 + i64 48, label %dispatch.case.118 + i64 52, label %dispatch.case.119 + i64 53, label %dispatch.case.120 + i64 55, label %dispatch.case.121 + i64 61, label %dispatch.case.122 + i64 66, label %dispatch.case.123 + i64 72, label %dispatch.case.124 + i64 76, label %dispatch.case.125 + i64 78, label %dispatch.case.126 + i64 79, label %dispatch.case.127 + i64 80, label %dispatch.case.128 + i64 82, label %dispatch.case.129 + i64 89, label %dispatch.case.130 ] -match.arm.54: ; No predecessors! - unreachable - -match.arm.55: ; preds = %entry +match.arm.54: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw21 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw21 to i32 + switch i64 %ua.raw20, label %dispatch.default.257 [ + i64 37, label %dispatch.case.258 + i64 38, label %dispatch.case.259 + i64 54, label %dispatch.case.260 + i64 70, label %dispatch.case.261 + i64 71, label %dispatch.case.262 + ] + +match.arm.55: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [3 x { ptr, i64 }], ptr @tag_names, i64 0, i64 %etn.idx + %etn.gep = getelementptr inbounds [16 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.47 @@ -1238,60 +1664,87 @@ match.arm.55: ; preds = %entry match.arm.56: ; No predecessors! unreachable -match.arm.57: ; preds = %entry, %entry - %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 - %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw25, label %dispatch.default.161 [ - i64 35, label %dispatch.case.162 - i64 46, label %dispatch.case.163 - ] - -match.arm.58: ; preds = %entry, %entry +match.arm.57: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw29, label %dispatch.default.175 [ - i64 36, label %dispatch.case.176 - i64 44, label %dispatch.case.177 + switch i64 %ua.raw29, label %dispatch.default.274 [ + i64 35, label %dispatch.case.275 + i64 81, label %dispatch.case.276 + i64 87, label %dispatch.case.277 + i64 88, label %dispatch.case.278 + i64 92, label %dispatch.case.279 + i64 100, label %dispatch.case.280 ] -match.arm.59: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.58: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw33, label %dispatch.default.189 [ - i64 18, label %dispatch.case.190 - i64 21, label %dispatch.case.191 - i64 23, label %dispatch.case.192 - i64 25, label %dispatch.case.193 - i64 28, label %dispatch.case.194 - i64 29, label %dispatch.case.195 - i64 31, label %dispatch.case.196 - i64 33, label %dispatch.case.197 - i64 38, label %dispatch.case.198 - i64 39, label %dispatch.case.199 - i64 40, label %dispatch.case.200 - i64 41, label %dispatch.case.201 - i64 42, label %dispatch.case.202 - i64 43, label %dispatch.case.203 - i64 45, label %dispatch.case.204 - i64 47, label %dispatch.case.205 - i64 48, label %dispatch.case.206 - i64 49, label %dispatch.case.207 - i64 50, label %dispatch.case.208 + switch i64 %ua.raw33, label %dispatch.default.312 [ + i64 36, label %dispatch.case.313 + i64 60, label %dispatch.case.314 + i64 77, label %dispatch.case.315 + i64 85, label %dispatch.case.316 + i64 98, label %dispatch.case.317 ] -match.arm.60: ; No predecessors! - unreachable +match.arm.59: ; 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 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw37, label %dispatch.default.344 [ + i64 18, label %dispatch.case.345 + i64 21, label %dispatch.case.346 + i64 23, label %dispatch.case.347 + i64 25, label %dispatch.case.348 + i64 28, label %dispatch.case.349 + i64 29, label %dispatch.case.350 + i64 31, label %dispatch.case.351 + i64 33, label %dispatch.case.352 + i64 40, label %dispatch.case.353 + i64 44, label %dispatch.case.354 + i64 47, label %dispatch.case.355 + i64 49, label %dispatch.case.356 + i64 50, label %dispatch.case.357 + i64 56, label %dispatch.case.358 + i64 57, label %dispatch.case.359 + i64 58, label %dispatch.case.360 + i64 59, label %dispatch.case.361 + i64 62, label %dispatch.case.362 + i64 67, label %dispatch.case.363 + i64 74, label %dispatch.case.364 + i64 83, label %dispatch.case.365 + i64 86, label %dispatch.case.366 + i64 90, label %dispatch.case.367 + i64 94, label %dispatch.case.368 + i64 95, label %dispatch.case.369 + i64 96, label %dispatch.case.370 + i64 97, label %dispatch.case.371 + i64 99, label %dispatch.case.372 + i64 101, label %dispatch.case.373 + i64 102, label %dispatch.case.374 + i64 103, label %dispatch.case.375 + ] + +match.arm.60: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.483 [ + i64 41, label %dispatch.case.484 + i64 42, label %dispatch.case.485 + i64 46, label %dispatch.case.486 + i64 91, label %dispatch.case.487 + ] match.arm.61: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag37 = extractvalue { i64, i64 } %loadN, 0 - %refl.val38 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype39 = icmp eq i64 %refl.tag37, 13 - %refl.tid40 = select i1 %refl.istype39, i64 %refl.val38, i64 %refl.tag37 - %tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid40 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [162 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.47 @@ -1301,15 +1754,15 @@ match.unr.62: ; preds = %entry if.then.63: ; preds = %match.arm.49 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw42) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.65 if.else.64: ; preds = %match.arm.49 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw45 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw45) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.65 @@ -1317,16 +1770,16 @@ if.merge.65: ; preds = %if.else.64, %if.the br label %match.merge.47 f32.unbox.91: ; preds = %match.arm.52 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw47 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.93 f64.unbox.92: ; preds = %match.arm.52 - %ua.raw48 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw48 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.93 @@ -1336,278 +1789,628 @@ float.merge.93: ; preds = %fN.unbox.92, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.47 -dispatch.merge.104: ; preds = %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.default.105 +dispatch.merge.104: ; preds = %dispatch.case.130, %dispatch.case.129, %dispatch.case.128, %dispatch.case.127, %dispatch.case.126, %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.default.105 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.47 dispatch.default.105: ; preds = %match.arm.53 - store { ptr, i64 } { ptr @str.103, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.307, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.106: ; preds = %match.arm.53 - %ua.raw52 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr53 = inttoptr i64 %ua.raw52 to ptr - %ua.load54 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr53, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load54) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.107: ; preds = %match.arm.53 - %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr57 = inttoptr i64 %ua.raw56 to ptr - %ua.load58 = load {}, ptr %ua.ptr57, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load58) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.108: ; preds = %match.arm.53 - %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr - %ua.load62 = load { i64 }, ptr %ua.ptr61, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load62) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.109: ; preds = %match.arm.53 - %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr - %ua.load66 = load { ptr, i64 }, ptr %ua.ptr65, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load66) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.110: ; preds = %match.arm.53 - %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr - %ua.load70 = load { ptr, ptr, ptr }, ptr %ua.ptr69, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load70) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.111: ; preds = %match.arm.53 - %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr - %ua.load74 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr73, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load74) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.112: ; preds = %match.arm.53 - %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr - %ua.load78 = load { ptr, i64, i64 }, ptr %ua.ptr77, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load78) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.113: ; preds = %match.arm.53 - %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr - %ua.load82 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr81, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load82) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 dispatch.case.114: ; preds = %match.arm.53 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load86) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.104 -dispatch.merge.160: ; preds = %dispatch.case.163, %dispatch.case.162, %dispatch.default.161 +dispatch.case.115: ; preds = %match.arm.53 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.116: ; preds = %match.arm.53 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.117: ; preds = %match.arm.53 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.118: ; preds = %match.arm.53 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.119: ; preds = %match.arm.53 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.120: ; preds = %match.arm.53 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.121: ; preds = %match.arm.53 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.122: ; preds = %match.arm.53 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.123: ; preds = %match.arm.53 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.124: ; preds = %match.arm.53 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.125: ; preds = %match.arm.53 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.126: ; preds = %match.arm.53 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.127: ; preds = %match.arm.53 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.128: ; preds = %match.arm.53 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.129: ; preds = %match.arm.53 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.case.130: ; preds = %match.arm.53 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.104 + +dispatch.merge.256: ; preds = %dispatch.case.262, %dispatch.case.261, %dispatch.case.260, %dispatch.case.259, %dispatch.case.258, %dispatch.default.257 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.47 -dispatch.default.161: ; preds = %match.arm.57 - store { ptr, i64 } { ptr @str.104, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.160 +dispatch.default.257: ; preds = %match.arm.54 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.256 -dispatch.case.162: ; preds = %match.arm.57 - %ua.raw89 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr90 = inttoptr i64 %ua.raw89 to ptr - %ua.load91 = load [4 x i64], ptr %ua.ptr90, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load91) +dispatch.case.258: ; preds = %match.arm.54 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.160 + br label %dispatch.merge.256 -dispatch.case.163: ; preds = %match.arm.57 - %ua.raw93 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr94 = inttoptr i64 %ua.raw93 to ptr - %ua.load95 = load [1 x { i64, i64 }], ptr %ua.ptr94, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load95) +dispatch.case.259: ; preds = %match.arm.54 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.160 + br label %dispatch.merge.256 -dispatch.merge.174: ; preds = %dispatch.case.177, %dispatch.case.176, %dispatch.default.175 +dispatch.case.260: ; preds = %match.arm.54 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.256 + +dispatch.case.261: ; preds = %match.arm.54 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.256 + +dispatch.case.262: ; preds = %match.arm.54 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.256 + +dispatch.merge.273: ; preds = %dispatch.case.280, %dispatch.case.279, %dispatch.case.278, %dispatch.case.277, %dispatch.case.276, %dispatch.case.275, %dispatch.default.274 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.47 -dispatch.default.175: ; preds = %match.arm.58 - store { ptr, i64 } { ptr @str.105, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.174 +dispatch.default.274: ; preds = %match.arm.57 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.273 -dispatch.case.176: ; preds = %match.arm.58 - %ua.raw98 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr99 = inttoptr i64 %ua.raw98 to ptr - %ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load100) +dispatch.case.275: ; preds = %match.arm.57 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.174 + br label %dispatch.merge.273 -dispatch.case.177: ; preds = %match.arm.58 - %ua.raw102 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr103 = inttoptr i64 %ua.raw102 to ptr - %ua.load104 = load { ptr, i64 }, ptr %ua.ptr103, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load104) +dispatch.case.276: ; preds = %match.arm.57 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.174 + br label %dispatch.merge.273 -dispatch.merge.188: ; preds = %dispatch.case.208, %dispatch.case.207, %dispatch.case.206, %dispatch.case.205, %dispatch.case.204, %dispatch.case.203, %dispatch.case.202, %dispatch.case.201, %dispatch.case.200, %dispatch.case.199, %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.case.191, %dispatch.case.190, %dispatch.default.189 +dispatch.case.277: ; preds = %match.arm.57 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.273 + +dispatch.case.278: ; preds = %match.arm.57 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.273 + +dispatch.case.279: ; preds = %match.arm.57 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.273 + +dispatch.case.280: ; preds = %match.arm.57 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.273 + +dispatch.merge.311: ; preds = %dispatch.case.317, %dispatch.case.316, %dispatch.case.315, %dispatch.case.314, %dispatch.case.313, %dispatch.default.312 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.47 -dispatch.default.189: ; preds = %match.arm.59 - store { ptr, i64 } { ptr @str.106, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.188 +dispatch.default.312: ; preds = %match.arm.58 + store { ptr, i64 } { ptr @str.310, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.311 -dispatch.case.190: ; preds = %match.arm.59 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw107 to ptr +dispatch.case.313: ; preds = %match.arm.58 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr200 = inttoptr i64 %ua.raw199 to ptr + %ua.load201 = load { ptr, i64 }, ptr %ua.ptr200, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load201) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.311 + +dispatch.case.314: ; preds = %match.arm.58 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.311 + +dispatch.case.315: ; preds = %match.arm.58 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.311 + +dispatch.case.316: ; preds = %match.arm.58 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.311 + +dispatch.case.317: ; preds = %match.arm.58 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.311 + +dispatch.merge.343: ; preds = %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.case.346, %dispatch.case.345, %dispatch.default.344 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.47 + +dispatch.default.344: ; preds = %match.arm.59 + store { ptr, i64 } { ptr @str.311, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.345: ; preds = %match.arm.59 + %ua.raw220 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw220 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.191: ; preds = %match.arm.59 - %ua.raw109 = extractvalue { i64, i64 } %loadN, 1 - %iNp110 = inttoptr i64 %ua.raw109 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp110) +dispatch.case.346: ; preds = %match.arm.59 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %iNp223 = inttoptr i64 %ua.raw222 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp223) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.192: ; preds = %match.arm.59 - %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 - %iNp113 = inttoptr i64 %ua.raw112 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp113) +dispatch.case.347: ; preds = %match.arm.59 + %ua.raw225 = extractvalue { i64, i64 } %loadN, 1 + %iNp226 = inttoptr i64 %ua.raw225 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp226) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.193: ; preds = %match.arm.59 - %ua.raw115 = extractvalue { i64, i64 } %loadN, 1 - %iNp116 = inttoptr i64 %ua.raw115 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp116) +dispatch.case.348: ; preds = %match.arm.59 + %ua.raw228 = extractvalue { i64, i64 } %loadN, 1 + %iNp229 = inttoptr i64 %ua.raw228 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp229) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.194: ; preds = %match.arm.59 - %ua.raw118 = extractvalue { i64, i64 } %loadN, 1 - %iNp119 = inttoptr i64 %ua.raw118 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp119) +dispatch.case.349: ; preds = %match.arm.59 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %iNp232 = inttoptr i64 %ua.raw231 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp232) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.195: ; preds = %match.arm.59 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %iNp122 = inttoptr i64 %ua.raw121 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp122) +dispatch.case.350: ; preds = %match.arm.59 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.196: ; preds = %match.arm.59 - %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 - %iNp125 = inttoptr i64 %ua.raw124 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp125) +dispatch.case.351: ; preds = %match.arm.59 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.197: ; preds = %match.arm.59 - %ua.raw127 = extractvalue { i64, i64 } %loadN, 1 - %iNp128 = inttoptr i64 %ua.raw127 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp128) +dispatch.case.352: ; preds = %match.arm.59 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.198: ; preds = %match.arm.59 - %ua.raw130 = extractvalue { i64, i64 } %loadN, 1 - %iNp131 = inttoptr i64 %ua.raw130 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp131) +dispatch.case.353: ; preds = %match.arm.59 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.199: ; preds = %match.arm.59 - %ua.raw133 = extractvalue { i64, i64 } %loadN, 1 - %iNp134 = inttoptr i64 %ua.raw133 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp134) +dispatch.case.354: ; preds = %match.arm.59 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.200: ; preds = %match.arm.59 - %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 - %iNp137 = inttoptr i64 %ua.raw136 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp137) +dispatch.case.355: ; preds = %match.arm.59 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.201: ; preds = %match.arm.59 - %ua.raw139 = extractvalue { i64, i64 } %loadN, 1 - %iNp140 = inttoptr i64 %ua.raw139 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp140) +dispatch.case.356: ; preds = %match.arm.59 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.202: ; preds = %match.arm.59 - %ua.raw142 = extractvalue { i64, i64 } %loadN, 1 - %iNp143 = inttoptr i64 %ua.raw142 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp143) +dispatch.case.357: ; preds = %match.arm.59 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.203: ; preds = %match.arm.59 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp146) +dispatch.case.358: ; preds = %match.arm.59 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.204: ; preds = %match.arm.59 - %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp149) +dispatch.case.359: ; preds = %match.arm.59 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.205: ; preds = %match.arm.59 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp152) +dispatch.case.360: ; preds = %match.arm.59 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.206: ; preds = %match.arm.59 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp155) +dispatch.case.361: ; preds = %match.arm.59 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.207: ; preds = %match.arm.59 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp158) +dispatch.case.362: ; preds = %match.arm.59 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 -dispatch.case.208: ; preds = %match.arm.59 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp161) +dispatch.case.363: ; preds = %match.arm.59 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.188 + br label %dispatch.merge.343 + +dispatch.case.364: ; preds = %match.arm.59 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.365: ; preds = %match.arm.59 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp280) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.366: ; preds = %match.arm.59 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp283) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.367: ; preds = %match.arm.59 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp286) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.368: ; preds = %match.arm.59 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp289) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.369: ; preds = %match.arm.59 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.370: ; preds = %match.arm.59 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.371: ; preds = %match.arm.59 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.372: ; preds = %match.arm.59 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.373: ; preds = %match.arm.59 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.374: ; preds = %match.arm.59 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.case.375: ; preds = %match.arm.59 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.343 + +dispatch.merge.482: ; preds = %dispatch.case.487, %dispatch.case.486, %dispatch.case.485, %dispatch.case.484, %dispatch.default.483 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.47 + +dispatch.default.483: ; preds = %match.arm.60 + store { ptr, i64 } { ptr @str.312, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.482 + +dispatch.case.484: ; preds = %match.arm.60 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr314 = inttoptr i64 %ua.raw313 to ptr + %ua.load315 = load { { i32 }, i1 }, ptr %ua.ptr314, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load315) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.482 + +dispatch.case.485: ; preds = %match.arm.60 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { ptr, i64 }, i1 }, ptr %ua.ptr318, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.482 + +dispatch.case.486: ; preds = %match.arm.60 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.482 + +dispatch.case.487: ; preds = %match.arm.60 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { [64 x i8], i1 }, ptr %ua.ptr326, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.482 } ; Function Attrs: nounwind @@ -1616,7 +2419,7 @@ 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.107, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.313, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1712,7 +2515,7 @@ if.merge.21: ; preds = %if.merge.35, %if.me if.then.22: ; preds = %if.then.19 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.108, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.314, 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 @@ -1720,7 +2523,7 @@ if.then.22: ; preds = %if.then.19 %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.109, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, 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 @@ -1730,13 +2533,13 @@ if.then.22: ; preds = %if.then.19 %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.110, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.23 if.merge.23: ; preds = %if.then.22, %if.then.19 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, 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 @@ -1744,7 +2547,7 @@ if.merge.23: ; preds = %if.then.22, %if.the %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.112, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1758,7 +2561,7 @@ if.merge.23: ; preds = %if.then.22, %if.the if.then.33: ; preds = %if.else.20 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, 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 @@ -1766,7 +2569,7 @@ if.then.33: ; preds = %if.else.20 %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.114, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, 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 @@ -1777,7 +2580,7 @@ if.then.33: ; preds = %if.else.20 %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.115, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1834,7 +2637,7 @@ if.merge.41: ; preds = %if.merge.44, %if.el if.then.42: ; preds = %if.then.39 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, 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 @@ -1842,7 +2645,7 @@ if.then.42: ; preds = %if.then.39 %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.117, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, 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 @@ -1853,7 +2656,7 @@ if.then.42: ; preds = %if.then.39 %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.118, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1873,7 +2676,7 @@ if.merge.44: ; preds = %if.else.43, %if.the if.then.45: ; preds = %while.exit.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, 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 @@ -1881,7 +2684,7 @@ if.then.45: ; preds = %while.exit.12 %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.120, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, 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 @@ -1892,7 +2695,7 @@ if.then.45: ; preds = %while.exit.12 %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.121, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.46 @@ -1969,6 +2772,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i32 @inner(ptr %0, i32 %1) #0 { entry: @@ -1980,7 +3521,7 @@ entry: br i1 %icmp, label %if.then.0, label %if.merge.1 if.then.0: ; preds = %entry - ret i32 1 + ret i32 14 if.merge.1: ; preds = %entry ret i32 0 @@ -2015,7 +3556,7 @@ entry: %allocaN = alloca i32, align 4 store i32 0, ptr %allocaN, align 4 %load = load i32, ptr %alloca, align 4 - %icmp = icmp eq i32 %load, 1 + %icmp = icmp eq i32 %load, 14 br i1 %icmp, label %if.then.4, label %if.merge.5 if.then.4: ; preds = %entry @@ -2026,7 +3567,7 @@ if.then.4: ; preds = %entry if.merge.5: ; preds = %if.then.4, %entry %loadN = load i32, ptr %allocaN, align 4 - %icmpN = icmp eq i32 %loadN, 1 + %icmpN = icmp eq i32 %loadN, 14 br i1 %icmpN, label %if.then.6, label %if.merge.7 if.then.6: ; preds = %if.merge.5 @@ -2037,7 +3578,7 @@ if.then.6: ; preds = %if.merge.5 if.merge.7: ; preds = %if.then.6, %if.merge.5 %loadN = load i32, ptr %alloca, align 4 - %icmpN = icmp eq i32 %loadN, 2 + %icmpN = icmp eq i32 %loadN, 15 br i1 %icmpN, label %if.then.8, label %if.merge.9 if.then.8: ; preds = %if.merge.7 @@ -2071,7 +3612,7 @@ entry: define internal void @print__ct_s1c36e8f510df0c92__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.127, i64 15 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.333, i64 15 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2087,7 +3628,7 @@ entry: %gepN = getelementptr inbounds { 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.128, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.334, 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 12) @@ -2115,7 +3656,7 @@ entry: ; 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.129, i64 15 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.335, i64 15 }) ret { ptr, i64 } %call } @@ -2126,35 +3667,35 @@ entry: %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.130, i64 15 }, { ptr, i64 } { ptr @str.131, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.336, i64 15 }, { ptr, i64 } { ptr @str.337, 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.115 + br label %while.hdr.131 -while.hdr.115: ; preds = %fv.merge, %entry +while.hdr.131: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.116, label %while.exit.117 + br i1 %icmp, label %while.body.132, label %while.exit.133 -while.body.116: ; preds = %while.hdr.115 +while.body.132: ; preds = %while.hdr.131 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.118, label %if.merge.119 + br i1 %icmpN, label %if.then.134, label %if.merge.135 -while.exit.117: ; preds = %while.hdr.115 +while.exit.133: ; preds = %while.hdr.131 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.338, i64 1 }) ret { ptr, i64 } %callN -if.then.118: ; preds = %while.body.116 +if.then.134: ; preds = %while.body.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.339, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.119 + br label %if.merge.135 -if.merge.119: ; preds = %if.then.118, %while.body.116 +if.merge.135: ; preds = %if.then.134, %while.body.132 %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 @@ -2162,7 +3703,7 @@ if.merge.119: ; preds = %if.then.118, %while %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.137, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.343, 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 @@ -2182,31 +3723,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.115 + br label %while.hdr.131 -fv.default: ; preds = %if.merge.119 +fv.default: ; preds = %if.merge.135 br label %fv.merge -fv.case: ; preds = %if.merge.119 +fv.case: ; preds = %if.merge.135 %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.119 +fv.case17: ; preds = %if.merge.135 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.119 +fv.case20: ; preds = %if.merge.135 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.119 +fv.case24: ; preds = %if.merge.135 %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 @@ -2219,43 +3760,43 @@ 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.138, i64 10 }, { ptr, i64 } { ptr @str.139, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.344, i64 10 }, { ptr, i64 } { ptr @str.345, 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.120 + br label %while.hdr.136 -while.hdr.120: ; preds = %if.merge.124, %entry +while.hdr.136: ; preds = %if.merge.140, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.121, label %while.exit.122 + br i1 %icmp, label %while.body.137, label %while.exit.138 -while.body.121: ; preds = %while.hdr.120 +while.body.137: ; preds = %while.hdr.136 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.123, label %if.merge.124 + br i1 %icmpN, label %if.then.139, label %if.merge.140 -while.exit.122: ; preds = %while.hdr.120 +while.exit.138: ; preds = %while.hdr.136 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.140, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 1 }) ret { ptr, i64 } %callN -if.then.123: ; preds = %while.body.121 +if.then.139: ; preds = %while.body.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.141, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.347, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.124 + br label %if.merge.140 -if.merge.124: ; preds = %if.then.123, %while.body.121 +if.merge.140: ; preds = %if.then.139, %while.body.137 %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.142, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.348, 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.143, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.349, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2266,7 +3807,7 @@ if.merge.124: ; preds = %if.then.123, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.120 + br label %while.hdr.136 } ; Function Attrs: nounwind @@ -2274,43 +3815,43 @@ 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.144, i64 3 }, { ptr, i64 } { ptr @str.145, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.350, i64 3 }, { ptr, i64 } { ptr @str.351, 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.125 + br label %while.hdr.141 -while.hdr.125: ; preds = %fv.merge, %entry +while.hdr.141: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.126, label %while.exit.127 + br i1 %icmp, label %while.body.142, label %while.exit.143 -while.body.126: ; preds = %while.hdr.125 +while.body.142: ; preds = %while.hdr.141 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.128, label %if.merge.129 + br i1 %icmpN, label %if.then.144, label %if.merge.145 -while.exit.127: ; preds = %while.hdr.125 +while.exit.143: ; preds = %while.hdr.141 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.146, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.352, i64 1 }) ret { ptr, i64 } %callN -if.then.128: ; preds = %while.body.126 +if.then.144: ; preds = %while.body.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.147, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.129 + br label %if.merge.145 -if.merge.129: ; preds = %if.then.128, %while.body.126 +if.merge.145: ; preds = %if.then.144, %while.body.142 %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.149, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.355, 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.150, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.356, 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 @@ -2327,12 +3868,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.125 + br label %while.hdr.141 -fv.default: ; preds = %if.merge.129 +fv.default: ; preds = %if.merge.145 br label %fv.merge -fv.case: ; preds = %if.merge.129 +fv.case: ; preds = %if.merge.145 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2343,43 +3884,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.151, i64 10 }, { ptr, i64 } { ptr @str.152, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.357, i64 10 }, { ptr, i64 } { ptr @str.358, 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.130 + br label %while.hdr.146 -while.hdr.130: ; preds = %fv.merge, %entry +while.hdr.146: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.131, label %while.exit.132 + br i1 %icmp, label %while.body.147, label %while.exit.148 -while.body.131: ; preds = %while.hdr.130 +while.body.147: ; preds = %while.hdr.146 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.133, label %if.merge.134 + br i1 %icmpN, label %if.then.149, label %if.merge.150 -while.exit.132: ; preds = %while.hdr.130 +while.exit.148: ; preds = %while.hdr.146 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.153, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, i64 1 }) ret { ptr, i64 } %callN -if.then.133: ; preds = %while.body.131 +if.then.149: ; preds = %while.body.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.154, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.134 + br label %if.merge.150 -if.merge.134: ; preds = %if.then.133, %while.body.131 +if.merge.150: ; preds = %if.then.149, %while.body.147 %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.157, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.363, 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.158, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.364, 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 @@ -2397,18 +3938,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.130 + br label %while.hdr.146 -fv.default: ; preds = %if.merge.134 +fv.default: ; preds = %if.merge.150 br label %fv.merge -fv.case: ; preds = %if.merge.134 +fv.case: ; preds = %if.merge.150 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.134 +fv.case17: ; preds = %if.merge.150 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2419,43 +3960,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.159, i64 9 }, { ptr, i64 } { ptr @str.160, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.365, i64 9 }, { ptr, i64 } { ptr @str.366, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.161, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.162, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.368, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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.166, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.372, 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.167, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, 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 @@ -2474,24 +4015,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.139 +fv.case17: ; preds = %if.merge.155 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.139 +fv.case21: ; preds = %if.merge.155 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2504,43 +4045,43 @@ 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.168, i64 5 }, { ptr, i64 } { ptr @str.169, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.374, i64 5 }, { ptr, i64 } { ptr @str.375, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %fv.merge, %entry +while.hdr.156: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.376, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.377, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.175, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.381, 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.176, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, 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 @@ -2559,23 +4100,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 -fv.default: ; preds = %if.merge.144 +fv.default: ; preds = %if.merge.160 br label %fv.merge -fv.case: ; preds = %if.merge.144 +fv.case: ; preds = %if.merge.160 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.144 +fv.case17: ; preds = %if.merge.160 %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.144 +fv.case20: ; preds = %if.merge.160 %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 @@ -2588,43 +4129,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.177, i64 8 }, { ptr, i64 } { ptr @str.178, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.383, i64 8 }, { ptr, i64 } { ptr @str.384, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.179, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.385, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.180, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.386, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.184, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.390, 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.185, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, 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 @@ -2643,23 +4184,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.149 +fv.case17: ; preds = %if.merge.165 %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.149 +fv.case20: ; preds = %if.merge.165 %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 @@ -2671,43 +4212,43 @@ 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.186, i64 17 }, { ptr, i64 } { ptr @str.187, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.392, i64 17 }, { ptr, i64 } { ptr @str.393, 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.150 + br label %while.hdr.166 -while.hdr.150: ; preds = %fv.merge, %entry +while.hdr.166: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.151, label %while.exit.152 + br i1 %icmp, label %while.body.167, label %while.exit.168 -while.body.151: ; preds = %while.hdr.150 +while.body.167: ; preds = %while.hdr.166 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.153, label %if.merge.154 + br i1 %icmpN, label %if.then.169, label %if.merge.170 -while.exit.152: ; preds = %while.hdr.150 +while.exit.168: ; preds = %while.hdr.166 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.188, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.394, i64 1 }) ret { ptr, i64 } %callN -if.then.153: ; preds = %while.body.151 +if.then.169: ; preds = %while.body.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.189, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.395, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.154 + br label %if.merge.170 -if.merge.154: ; preds = %if.then.153, %while.body.151 +if.merge.170: ; preds = %if.then.169, %while.body.167 %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.194, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.400, 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.195, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.401, 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 @@ -2727,29 +4268,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.150 + br label %while.hdr.166 -fv.default: ; preds = %if.merge.154 +fv.default: ; preds = %if.merge.170 br label %fv.merge -fv.case: ; preds = %if.merge.154 +fv.case: ; preds = %if.merge.170 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.154 +fv.case17: ; preds = %if.merge.170 %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.154 +fv.case20: ; preds = %if.merge.170 %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.154 +fv.case23: ; preds = %if.merge.170 %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 @@ -2761,43 +4302,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.196, i64 7 }, { ptr, i64 } { ptr @str.197, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.402, i64 7 }, { ptr, i64 } { ptr @str.403, 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.155 + br label %while.hdr.171 -while.hdr.155: ; preds = %fv.merge, %entry +while.hdr.171: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.156, label %while.exit.157 + br i1 %icmp, label %while.body.172, label %while.exit.173 -while.body.156: ; preds = %while.hdr.155 +while.body.172: ; preds = %while.hdr.171 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.158, label %if.merge.159 + br i1 %icmpN, label %if.then.174, label %if.merge.175 -while.exit.157: ; preds = %while.hdr.155 +while.exit.173: ; preds = %while.hdr.171 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.198, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.404, i64 1 }) ret { ptr, i64 } %callN -if.then.158: ; preds = %while.body.156 +if.then.174: ; preds = %while.body.172 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.199, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.405, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.159 + br label %if.merge.175 -if.merge.159: ; preds = %if.then.158, %while.body.156 +if.merge.175: ; preds = %if.then.174, %while.body.172 %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.202, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.408, 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.203, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.409, 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 %alloca, align 8 @@ -2815,25 +4356,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.155 + br label %while.hdr.171 -fv.default: ; preds = %if.merge.159 +fv.default: ; preds = %if.merge.175 br label %fv.merge -fv.case: ; preds = %if.merge.159 +fv.case: ; preds = %if.merge.175 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.159 +fv.case17: ; preds = %if.merge.175 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.410, i64 4 }, { ptr, i64 } { ptr @str.411, 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.176 + +while.hdr.176: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.177, label %while.exit.178 + +while.body.177: ; preds = %while.hdr.176 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.179, label %if.merge.180 + +while.exit.178: ; preds = %while.hdr.176 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 1 }) + ret { ptr, i64 } %callN + +if.then.179: ; preds = %while.body.177 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.413, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.180 + +if.merge.180: ; preds = %if.then.179, %while.body.177 + %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.415, 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.416, 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.176 + +fv.default: ; preds = %if.merge.180 + br label %fv.merge + +fv.case: ; preds = %if.merge.180 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.417, i64 10 }, { ptr, i64 } { ptr @str.418, 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.181 + +while.hdr.181: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.182, label %while.exit.183 + +while.body.182: ; preds = %while.hdr.181 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.184, label %if.merge.185 + +while.exit.183: ; preds = %while.hdr.181 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 1 }) + ret { ptr, i64 } %callN + +if.then.184: ; preds = %while.body.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.185 + +if.merge.185: ; preds = %if.then.184, %while.body.182 + %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.426, 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.427, 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.181 + +fv.default: ; preds = %if.merge.185 + br label %fv.merge + +fv.case: ; preds = %if.merge.185 + %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.185 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.185 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.185 + %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.185 + %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.428, i64 13 }, { ptr, i64 } { ptr @str.429, 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.186 + +while.hdr.186: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.187, label %while.exit.188 + +while.body.187: ; preds = %while.hdr.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 + +while.exit.188: ; preds = %while.hdr.186 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.430, i64 1 }) + ret { ptr, i64 } %callN + +if.then.189: ; preds = %while.body.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.431, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.190 + +if.merge.190: ; preds = %if.then.189, %while.body.187 + %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.434, 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.435, 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.186 + +fv.default: ; preds = %if.merge.190 + br label %fv.merge + +fv.case: ; preds = %if.merge.190 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.190 + %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.436, i64 8 }, { ptr, i64 } { ptr @str.437, 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.191 + +while.hdr.191: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.192, label %while.exit.193 + +while.body.192: ; preds = %while.hdr.191 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.194, label %if.merge.195 + +while.exit.193: ; preds = %while.hdr.191 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.438, i64 1 }) + ret { ptr, i64 } %callN + +if.then.194: ; preds = %while.body.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.439, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.195 + +if.merge.195: ; preds = %if.then.194, %while.body.192 + %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.445, 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.446, 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.191 + +fv.default: ; preds = %if.merge.195 + br label %fv.merge + +fv.case: ; preds = %if.merge.195 + %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.195 + %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.195 + %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.195 + %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.195 + %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.447, i64 5 }, { ptr, i64 } { ptr @str.448, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.449, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.450, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.454, 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.455, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.200 + %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.200 + %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.456, i64 6 }, { ptr, i64 } { ptr @str.457, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.458, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.459, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.463, 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.464, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.205 + %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.205 + %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.465, i64 6 }, { ptr, i64 } { ptr @str.466, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.467, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.468, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.471, 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.472, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %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.210 + %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 54, 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.473, i64 4 }, { ptr, i64 } { ptr @str.474, 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.211 + +while.hdr.211: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.475, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.476, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.480, 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.481, 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.211 + +fv.default: ; preds = %if.merge.215 + br label %fv.merge + +fv.case: ; preds = %if.merge.215 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.215 + %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.215 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.482, i64 6 }, { ptr, i64 } { ptr @str.483, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.484, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.485, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.489, 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.490, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %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.220 + %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.220 + %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 26, i64 undef }, i64 %ba.p2i23, 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.491, i64 12 }, { ptr, i64 } { ptr @str.492, 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.221 + +while.hdr.221: ; preds = %if.merge.225, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.494, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.495, 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.496, 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.221 +} + +; 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.497, i64 8 }, { ptr, i64 } { ptr @str.498, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.499, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.500, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.504, 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.505, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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.230 + %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.506, i64 7 }, { ptr, i64 } { ptr @str.507, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.508, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.509, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.513, 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.514, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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.235 + %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.235 + %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 77, 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.515, i64 9 }, { ptr, i64 } { ptr @str.516, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.517, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.518, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.521, 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.522, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.523, i64 4 }, { ptr, i64 } { ptr @str.524, 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.241 + +while.hdr.241: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.525, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.526, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.529, 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.530, 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.241 + +fv.default: ; preds = %if.merge.245 + br label %fv.merge + +fv.case: ; preds = %if.merge.245 + %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.245 + %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.531, i64 6 }, { ptr, i64 } { ptr @str.532, 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.246 + +while.hdr.246: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.247, label %while.exit.248 + +while.body.247: ; preds = %while.hdr.246 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.249, label %if.merge.250 + +while.exit.248: ; preds = %while.hdr.246 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.533, i64 1 }) + ret { ptr, i64 } %callN + +if.then.249: ; preds = %while.body.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.534, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.250 + +if.merge.250: ; preds = %if.then.249, %while.body.247 + %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.542, 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.543, 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.246 + +fv.default: ; preds = %if.merge.250 + br label %fv.merge + +fv.case: ; preds = %if.merge.250 + %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.250 + %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.250 + %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.250 + %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.250 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.250 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.250 + %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 81, 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.544, i64 6 }, { ptr, i64 } { ptr @str.545, 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.251 + +while.hdr.251: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.252, label %while.exit.253 + +while.body.252: ; preds = %while.hdr.251 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.254, label %if.merge.255 + +while.exit.253: ; preds = %while.hdr.251 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.546, i64 1 }) + ret { ptr, i64 } %callN + +if.then.254: ; preds = %while.body.252 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.547, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.255 + +if.merge.255: ; preds = %if.then.254, %while.body.252 + %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.552, 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.553, 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.251 + +fv.default: ; preds = %if.merge.255 + br label %fv.merge + +fv.case: ; preds = %if.merge.255 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.255 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.255 + %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.255 + %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 } @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.559, 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.554, 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.263, label %if.merge.264 + +if.then.263: ; 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.561, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.560, 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.264 + +if.merge.264: ; preds = %if.then.263, %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.566, 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.562, 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.265, label %if.merge.266 + +if.then.265: ; 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.568, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.567, 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.266 + +if.merge.266: ; preds = %if.then.265, %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.576, 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.569, 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.267: ; 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.578, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.577, 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.268 + +if.merge.268: ; preds = %if.then.267, %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.267, label %if.merge.268 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.587, 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.579, 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.269, label %if.merge.270 + +if.then.269: ; 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.589, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.588, 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.270 + +if.merge.270: ; preds = %if.then.269, %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.596, 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.590, 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.271, label %if.merge.272 + +if.then.271: ; 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.598, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.597, 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.272 + +if.merge.272: ; preds = %if.then.271, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2841,33 +6024,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.204, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.599, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.164 + br label %while.hdr.281 -while.hdr.164: ; preds = %if.merge.168, %entry +while.hdr.281: ; preds = %if.merge.285, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.165, label %while.exit.166 + br i1 %icmp, label %while.body.282, label %while.exit.283 -while.body.165: ; preds = %while.hdr.164 +while.body.282: ; preds = %while.hdr.281 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.167, label %if.merge.168 + br i1 %icmpN, label %if.then.284, label %if.merge.285 -while.exit.166: ; preds = %while.hdr.164 +while.exit.283: ; preds = %while.hdr.281 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 1 }) ret { ptr, i64 } %call -if.then.167: ; preds = %while.body.165 +if.then.284: ; preds = %while.body.282 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.206, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.601, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.168 + br label %if.merge.285 -if.merge.168: ; preds = %if.then.167, %while.body.165 +if.merge.285: ; preds = %if.then.284, %while.body.282 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2881,7 +6064,211 @@ if.merge.168: ; preds = %if.then.167, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.164 + br label %while.hdr.281 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.602, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.286 + +while.hdr.286: ; preds = %if.merge.290, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.287, label %while.exit.288 + +while.body.287: ; preds = %while.hdr.286 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.289, label %if.merge.290 + +while.exit.288: ; preds = %while.hdr.286 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 1 }) + ret { ptr, i64 } %call + +if.then.289: ; preds = %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.604, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.290 + +if.merge.290: ; preds = %if.then.289, %while.body.287 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.286 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.605, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.291 + +while.hdr.291: ; preds = %if.merge.295, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.292, label %while.exit.293 + +while.body.292: ; preds = %while.hdr.291 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.294, label %if.merge.295 + +while.exit.293: ; preds = %while.hdr.291 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 1 }) + ret { ptr, i64 } %call + +if.then.294: ; preds = %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.295 + +if.merge.295: ; preds = %if.then.294, %while.body.292 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.291 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.608, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.296 + +while.hdr.296: ; preds = %if.merge.300, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.297, label %while.exit.298 + +while.body.297: ; preds = %while.hdr.296 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.299, label %if.merge.300 + +while.exit.298: ; preds = %while.hdr.296 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.609, i64 1 }) + ret { ptr, i64 } %call + +if.then.299: ; preds = %while.body.297 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.300 + +if.merge.300: ; preds = %if.then.299, %while.body.297 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.296 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.611, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.301 + +while.hdr.301: ; preds = %if.merge.305, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.302, label %while.exit.303 + +while.body.302: ; preds = %while.hdr.301 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.304, label %if.merge.305 + +while.exit.303: ; preds = %while.hdr.301 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 1 }) + ret { ptr, i64 } %call + +if.then.304: ; preds = %while.body.302 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.613, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.305 + +if.merge.305: ; preds = %if.then.304, %while.body.302 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.301 } ; Function Attrs: nounwind @@ -2892,33 +6279,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.207, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.614, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.169 + br label %while.hdr.306 -while.hdr.169: ; preds = %if.merge.173, %entry +while.hdr.306: ; preds = %if.merge.310, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.170, label %while.exit.171 + br i1 %icmp, label %while.body.307, label %while.exit.308 -while.body.170: ; preds = %while.hdr.169 +while.body.307: ; preds = %while.hdr.306 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.172, label %if.merge.173 + br i1 %icmpN, label %if.then.309, label %if.merge.310 -while.exit.171: ; preds = %while.hdr.169 +while.exit.308: ; preds = %while.hdr.306 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 1 }) ret { ptr, i64 } %call -if.then.172: ; preds = %while.body.170 +if.then.309: ; preds = %while.body.307 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.209, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.173 + br label %if.merge.310 -if.merge.173: ; preds = %if.then.172, %while.body.170 +if.merge.310: ; preds = %if.then.309, %while.body.307 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2934,7 +6321,7 @@ if.merge.173: ; preds = %if.then.172, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.169 + br label %while.hdr.306 } ; Function Attrs: nounwind @@ -2944,35 +6331,35 @@ entry: %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.210, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.617, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.178 + br label %while.hdr.318 -while.hdr.178: ; preds = %if.merge.182, %entry +while.hdr.318: ; preds = %if.merge.322, %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.179, label %while.exit.180 + br i1 %icmp, label %while.body.319, label %while.exit.320 -while.body.179: ; preds = %while.hdr.178 +while.body.319: ; preds = %while.hdr.318 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.181, label %if.merge.182 + br i1 %icmpN, label %if.then.321, label %if.merge.322 -while.exit.180: ; preds = %while.hdr.178 +while.exit.320: ; preds = %while.hdr.318 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.211, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 1 }) ret { ptr, i64 } %call -if.then.181: ; preds = %while.body.179 +if.then.321: ; preds = %while.body.319 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.619, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.182 + br label %if.merge.322 -if.merge.182: ; preds = %if.then.181, %while.body.179 +if.merge.322: ; preds = %if.then.321, %while.body.319 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2988,7 +6375,167 @@ if.merge.182: ; preds = %if.then.181, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.178 + br label %while.hdr.318 +} + +; 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.620, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.323 + +while.hdr.323: ; preds = %if.merge.327, %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.324, label %while.exit.325 + +while.body.324: ; preds = %while.hdr.323 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.326, label %if.merge.327 + +while.exit.325: ; preds = %while.hdr.323 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 1 }) + ret { ptr, i64 } %call + +if.then.326: ; preds = %while.body.324 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.622, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.327 + +if.merge.327: ; preds = %if.then.326, %while.body.324 + %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.323 +} + +; 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.623, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.328 + +while.hdr.328: ; preds = %if.merge.332, %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.329, label %while.exit.330 + +while.body.329: ; preds = %while.hdr.328 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.331, label %if.merge.332 + +while.exit.330: ; preds = %while.hdr.328 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 1 }) + ret { ptr, i64 } %call + +if.then.331: ; preds = %while.body.329 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.625, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.332 + +if.merge.332: ; preds = %if.then.331, %while.body.329 + %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 76, 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.328 +} + +; 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.626, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.333 + +while.hdr.333: ; preds = %if.merge.337, %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.334, label %while.exit.335 + +while.body.334: ; preds = %while.hdr.333 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.336, label %if.merge.337 + +while.exit.335: ; preds = %while.hdr.333 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.627, i64 1 }) + ret { ptr, i64 } %call + +if.then.336: ; preds = %while.body.334 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.628, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.337 + +if.merge.337: ; preds = %if.then.336, %while.body.334 + %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 78, 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.333 } ; Function Attrs: nounwind @@ -2998,35 +6545,35 @@ entry: %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.213, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.629, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.183 + br label %while.hdr.338 -while.hdr.183: ; preds = %if.merge.187, %entry +while.hdr.338: ; preds = %if.merge.342, %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.184, label %while.exit.185 + br i1 %icmp, label %while.body.339, label %while.exit.340 -while.body.184: ; preds = %while.hdr.183 +while.body.339: ; preds = %while.hdr.338 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.186, label %if.merge.187 + br i1 %icmpN, label %if.then.341, label %if.merge.342 -while.exit.185: ; preds = %while.hdr.183 +while.exit.340: ; preds = %while.hdr.338 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.214, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.630, i64 1 }) ret { ptr, i64 } %call -if.then.186: ; preds = %while.body.184 +if.then.341: ; preds = %while.body.339 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.215, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.631, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.187 + br label %if.merge.342 -if.merge.187: ; preds = %if.then.186, %while.body.184 +if.merge.342: ; preds = %if.then.341, %while.body.339 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3042,7 +6589,7 @@ if.merge.187: ; preds = %if.then.186, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.183 + br label %while.hdr.338 } ; Function Attrs: nounwind @@ -3056,20 +6603,20 @@ entry: 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.209, label %if.else.210 + br i1 %icmp, label %if.then.376, label %if.else.377 -if.then.209: ; preds = %entry - br label %if.merge.211 +if.then.376: ; preds = %entry + br label %if.merge.378 -if.else.210: ; preds = %entry +if.else.377: ; 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.218, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.217, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.211 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.634, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.633, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.378 -if.merge.211: ; preds = %if.else.210, %if.then.209 - %bp = phi { ptr, i64 } [ { ptr @str.216, i64 4 }, %if.then.209 ], [ %callN, %if.else.210 ] +if.merge.378: ; preds = %if.else.377, %if.then.376 + %bp = phi { ptr, i64 } [ { ptr @str.632, i64 4 }, %if.then.376 ], [ %callN, %if.else.377 ] ret { ptr, i64 } %bp } @@ -3084,20 +6631,20 @@ entry: 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.225, label %if.else.226 + br i1 %icmp, label %if.then.392, label %if.else.393 -if.then.225: ; preds = %entry - br label %if.merge.227 +if.then.392: ; preds = %entry + br label %if.merge.394 -if.else.226: ; preds = %entry +if.else.393: ; 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.221, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.220, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.227 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.637, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.394 -if.merge.227: ; preds = %if.else.226, %if.then.225 - %bp = phi { ptr, i64 } [ { ptr @str.219, i64 4 }, %if.then.225 ], [ %callN, %if.else.226 ] +if.merge.394: ; preds = %if.else.393, %if.then.392 + %bp = phi { ptr, i64 } [ { ptr @str.635, i64 4 }, %if.then.392 ], [ %callN, %if.else.393 ] ret { ptr, i64 } %bp } @@ -3112,20 +6659,20 @@ entry: 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.228, label %if.else.229 + br i1 %icmp, label %if.then.395, label %if.else.396 -if.then.228: ; preds = %entry - br label %if.merge.230 +if.then.395: ; preds = %entry + br label %if.merge.397 -if.else.229: ; preds = %entry +if.else.396: ; 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.224, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.223, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.230 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.640, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.639, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.397 -if.merge.230: ; preds = %if.else.229, %if.then.228 - %bp = phi { ptr, i64 } [ { ptr @str.222, i64 4 }, %if.then.228 ], [ %callN, %if.else.229 ] +if.merge.397: ; preds = %if.else.396, %if.then.395 + %bp = phi { ptr, i64 } [ { ptr @str.638, i64 4 }, %if.then.395 ], [ %callN, %if.else.396 ] ret { ptr, i64 } %bp } @@ -3140,20 +6687,20 @@ entry: 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.231, label %if.else.232 + br i1 %icmp, label %if.then.398, label %if.else.399 -if.then.231: ; preds = %entry - br label %if.merge.233 +if.then.398: ; preds = %entry + br label %if.merge.400 -if.else.232: ; preds = %entry +if.else.399: ; 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.227, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.226, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.233 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.400 -if.merge.233: ; preds = %if.else.232, %if.then.231 - %bp = phi { ptr, i64 } [ { ptr @str.225, i64 4 }, %if.then.231 ], [ %callN, %if.else.232 ] +if.merge.400: ; preds = %if.else.399, %if.then.398 + %bp = phi { ptr, i64 } [ { ptr @str.641, i64 4 }, %if.then.398 ], [ %callN, %if.else.399 ] ret { ptr, i64 } %bp } @@ -3168,20 +6715,20 @@ entry: 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.234, label %if.else.235 + br i1 %icmp, label %if.then.401, label %if.else.402 -if.then.234: ; preds = %entry - br label %if.merge.236 +if.then.401: ; preds = %entry + br label %if.merge.403 -if.else.235: ; preds = %entry +if.else.402: ; 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.230, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.229, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.236 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.646, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.403 -if.merge.236: ; preds = %if.else.235, %if.then.234 - %bp = phi { ptr, i64 } [ { ptr @str.228, i64 4 }, %if.then.234 ], [ %callN, %if.else.235 ] +if.merge.403: ; preds = %if.else.402, %if.then.401 + %bp = phi { ptr, i64 } [ { ptr @str.644, i64 4 }, %if.then.401 ], [ %callN, %if.else.402 ] ret { ptr, i64 } %bp } @@ -3195,20 +6742,20 @@ entry: 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.237, label %if.else.238 + br i1 %icmp, label %if.then.404, label %if.else.405 -if.then.237: ; preds = %entry - br label %if.merge.239 +if.then.404: ; preds = %entry + br label %if.merge.406 -if.else.238: ; preds = %entry +if.else.405: ; 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.233, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.232, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.239 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.406 -if.merge.239: ; preds = %if.else.238, %if.then.237 - %bp = phi { ptr, i64 } [ { ptr @str.231, i64 4 }, %if.then.237 ], [ %callN, %if.else.238 ] +if.merge.406: ; preds = %if.else.405, %if.then.404 + %bp = phi { ptr, i64 } [ { ptr @str.647, i64 4 }, %if.then.404 ], [ %callN, %if.else.405 ] ret { ptr, i64 } %bp } @@ -3223,20 +6770,20 @@ entry: 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.240, label %if.else.241 + br i1 %icmp, label %if.then.407, label %if.else.408 -if.then.240: ; preds = %entry - br label %if.merge.242 +if.then.407: ; preds = %entry + br label %if.merge.409 -if.else.241: ; preds = %entry +if.else.408: ; 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.236, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.235, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.242 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.652, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.409 -if.merge.242: ; preds = %if.else.241, %if.then.240 - %bp = phi { ptr, i64 } [ { ptr @str.234, i64 4 }, %if.then.240 ], [ %callN, %if.else.241 ] +if.merge.409: ; preds = %if.else.408, %if.then.407 + %bp = phi { ptr, i64 } [ { ptr @str.650, i64 4 }, %if.then.407 ], [ %callN, %if.else.408 ] ret { ptr, i64 } %bp } @@ -3251,25 +6798,25 @@ entry: 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.243, label %if.else.244 + br i1 %icmp, label %if.then.410, label %if.else.411 -if.then.243: ; preds = %entry - br label %if.merge.245 +if.then.410: ; preds = %entry + br label %if.merge.412 -if.else.244: ; preds = %entry +if.else.411: ; 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.239, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.238, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.245 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.655, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.412 -if.merge.245: ; preds = %if.else.244, %if.then.243 - %bp = phi { ptr, i64 } [ { ptr @str.237, i64 4 }, %if.then.243 ], [ %callN, %if.else.244 ] +if.merge.412: ; preds = %if.else.411, %if.then.410 + %bp = phi { ptr, i64 } [ { ptr @str.653, i64 4 }, %if.then.410 ], [ %callN, %if.else.411 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3279,244 +6826,20 @@ entry: 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.246, label %if.else.247 + br i1 %icmp, label %if.then.413, label %if.else.414 -if.then.246: ; preds = %entry - br label %if.merge.248 +if.then.413: ; preds = %entry + br label %if.merge.415 -if.else.247: ; preds = %entry +if.else.414: ; 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.242, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.241, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.248 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.658, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.415 -if.merge.248: ; preds = %if.else.247, %if.then.246 - %bp = phi { ptr, i64 } [ { ptr @str.240, i64 4 }, %if.then.246 ], [ %callN, %if.else.247 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.249, label %if.else.250 - -if.then.249: ; preds = %entry - br label %if.merge.251 - -if.else.250: ; 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.245, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.244, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.251 - -if.merge.251: ; preds = %if.else.250, %if.then.249 - %bp = phi { ptr, i64 } [ { ptr @str.243, i64 4 }, %if.then.249 ], [ %callN, %if.else.250 ] - 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.252, label %if.else.253 - -if.then.252: ; preds = %entry - br label %if.merge.254 - -if.else.253: ; 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.248, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.247, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.254 - -if.merge.254: ; preds = %if.else.253, %if.then.252 - %bp = phi { ptr, i64 } [ { ptr @str.246, i64 4 }, %if.then.252 ], [ %callN, %if.else.253 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.255, label %if.else.256 - -if.then.255: ; preds = %entry - br label %if.merge.257 - -if.else.256: ; 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.251, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.250, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.257 - -if.merge.257: ; preds = %if.else.256, %if.then.255 - %bp = phi { ptr, i64 } [ { ptr @str.249, i64 4 }, %if.then.255 ], [ %callN, %if.else.256 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_error_set(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.258, label %if.else.259 - -if.then.258: ; preds = %entry - br label %if.merge.260 - -if.else.259: ; 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.254, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.253, i64 10 }, { ptr, i64 } %callN) - br label %if.merge.260 - -if.merge.260: ; preds = %if.else.259, %if.then.258 - %bp = phi { ptr, i64 } [ { ptr @str.252, i64 4 }, %if.then.258 ], [ %callN, %if.else.259 ] - 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.261, label %if.else.262 - -if.then.261: ; preds = %entry - br label %if.merge.263 - -if.else.262: ; 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.257, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.256, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.263 - -if.merge.263: ; preds = %if.else.262, %if.then.261 - %bp = phi { ptr, i64 } [ { ptr @str.255, i64 4 }, %if.then.261 ], [ %callN, %if.else.262 ] - 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.264, label %if.else.265 - -if.then.264: ; preds = %entry - br label %if.merge.266 - -if.else.265: ; 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.260, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.259, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.266 - -if.merge.266: ; preds = %if.else.265, %if.then.264 - %bp = phi { ptr, i64 } [ { ptr @str.258, i64 4 }, %if.then.264 ], [ %callN, %if.else.265 ] - 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.267, label %if.else.268 - -if.then.267: ; preds = %entry - br label %if.merge.269 - -if.else.268: ; 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.263, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.262, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.269 - -if.merge.269: ; preds = %if.else.268, %if.then.267 - %bp = phi { ptr, i64 } [ { ptr @str.261, i64 4 }, %if.then.267 ], [ %callN, %if.else.268 ] - 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.270, label %if.else.271 - -if.then.270: ; preds = %entry - br label %if.merge.272 - -if.else.271: ; 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.266, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.265, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.272 - -if.merge.272: ; preds = %if.else.271, %if.then.270 - %bp = phi { ptr, i64 } [ { ptr @str.264, i64 4 }, %if.then.270 ], [ %callN, %if.else.271 ] +if.merge.415: ; preds = %if.else.414, %if.then.413 + %bp = phi { ptr, i64 } [ { ptr @str.656, i64 4 }, %if.then.413 ], [ %callN, %if.else.414 ] ret { ptr, i64 } %bp } @@ -3531,20 +6854,578 @@ entry: 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.273, label %if.else.274 + br i1 %icmp, label %if.then.416, label %if.else.417 -if.then.273: ; preds = %entry - br label %if.merge.275 +if.then.416: ; preds = %entry + br label %if.merge.418 -if.else.274: ; preds = %entry +if.else.417: ; 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.269, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.268, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.275 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.661, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.660, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.418 -if.merge.275: ; preds = %if.else.274, %if.then.273 - %bp = phi { ptr, i64 } [ { ptr @str.267, i64 4 }, %if.then.273 ], [ %callN, %if.else.274 ] +if.merge.418: ; preds = %if.else.417, %if.then.416 + %bp = phi { ptr, i64 } [ { ptr @str.659, i64 4 }, %if.then.416 ], [ %callN, %if.else.417 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.419, label %if.else.420 + +if.then.419: ; preds = %entry + br label %if.merge.421 + +if.else.420: ; 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.664, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.663, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.421 + +if.merge.421: ; preds = %if.else.420, %if.then.419 + %bp = phi { ptr, i64 } [ { ptr @str.662, i64 4 }, %if.then.419 ], [ %callN, %if.else.420 ] + 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.422, label %if.else.423 + +if.then.422: ; preds = %entry + br label %if.merge.424 + +if.else.423: ; 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.667, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.666, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.424 + +if.merge.424: ; preds = %if.else.423, %if.then.422 + %bp = phi { ptr, i64 } [ { ptr @str.665, i64 4 }, %if.then.422 ], [ %callN, %if.else.423 ] + 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.425, label %if.else.426 + +if.then.425: ; preds = %entry + br label %if.merge.427 + +if.else.426: ; 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.670, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.669, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.427 + +if.merge.427: ; preds = %if.else.426, %if.then.425 + %bp = phi { ptr, i64 } [ { ptr @str.668, i64 4 }, %if.then.425 ], [ %callN, %if.else.426 ] + 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.428, label %if.else.429 + +if.then.428: ; preds = %entry + br label %if.merge.430 + +if.else.429: ; 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.673, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.672, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.430 + +if.merge.430: ; preds = %if.else.429, %if.then.428 + %bp = phi { ptr, i64 } [ { ptr @str.671, i64 4 }, %if.then.428 ], [ %callN, %if.else.429 ] + 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.431, label %if.else.432 + +if.then.431: ; preds = %entry + br label %if.merge.433 + +if.else.432: ; 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.676, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.675, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.433 + +if.merge.433: ; preds = %if.else.432, %if.then.431 + %bp = phi { ptr, i64 } [ { ptr @str.674, i64 4 }, %if.then.431 ], [ %callN, %if.else.432 ] + 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.434, label %if.else.435 + +if.then.434: ; preds = %entry + br label %if.merge.436 + +if.else.435: ; 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.679, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.678, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.436 + +if.merge.436: ; preds = %if.else.435, %if.then.434 + %bp = phi { ptr, i64 } [ { ptr @str.677, i64 4 }, %if.then.434 ], [ %callN, %if.else.435 ] + 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.437, label %if.else.438 + +if.then.437: ; preds = %entry + br label %if.merge.439 + +if.else.438: ; 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.682, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.681, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.439 + +if.merge.439: ; preds = %if.else.438, %if.then.437 + %bp = phi { ptr, i64 } [ { ptr @str.680, i64 4 }, %if.then.437 ], [ %callN, %if.else.438 ] + 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.440, label %if.else.441 + +if.then.440: ; preds = %entry + br label %if.merge.442 + +if.else.441: ; 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.685, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.684, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.442 + +if.merge.442: ; preds = %if.else.441, %if.then.440 + %bp = phi { ptr, i64 } [ { ptr @str.683, i64 4 }, %if.then.440 ], [ %callN, %if.else.441 ] + 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.443, label %if.else.444 + +if.then.443: ; preds = %entry + br label %if.merge.445 + +if.else.444: ; 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.688, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.687, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.445 + +if.merge.445: ; preds = %if.else.444, %if.then.443 + %bp = phi { ptr, i64 } [ { ptr @str.686, i64 4 }, %if.then.443 ], [ %callN, %if.else.444 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.446, label %if.else.447 + +if.then.446: ; preds = %entry + br label %if.merge.448 + +if.else.447: ; 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.691, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.690, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.448 + +if.merge.448: ; preds = %if.else.447, %if.then.446 + %bp = phi { ptr, i64 } [ { ptr @str.689, i64 4 }, %if.then.446 ], [ %callN, %if.else.447 ] + 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.449, label %if.else.450 + +if.then.449: ; preds = %entry + br label %if.merge.451 + +if.else.450: ; 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.694, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.693, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.451 + +if.merge.451: ; preds = %if.else.450, %if.then.449 + %bp = phi { ptr, i64 } [ { ptr @str.692, i64 4 }, %if.then.449 ], [ %callN, %if.else.450 ] + 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.452, label %if.else.453 + +if.then.452: ; preds = %entry + br label %if.merge.454 + +if.else.453: ; 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.697, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.696, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.454 + +if.merge.454: ; preds = %if.else.453, %if.then.452 + %bp = phi { ptr, i64 } [ { ptr @str.695, i64 4 }, %if.then.452 ], [ %callN, %if.else.453 ] + 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.455, label %if.else.456 + +if.then.455: ; preds = %entry + br label %if.merge.457 + +if.else.456: ; 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.700, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.699, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.457 + +if.merge.457: ; preds = %if.else.456, %if.then.455 + %bp = phi { ptr, i64 } [ { ptr @str.698, i64 4 }, %if.then.455 ], [ %callN, %if.else.456 ] + 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.458, label %if.else.459 + +if.then.458: ; preds = %entry + br label %if.merge.460 + +if.else.459: ; 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.703, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.702, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.460 + +if.merge.460: ; preds = %if.else.459, %if.then.458 + %bp = phi { ptr, i64 } [ { ptr @str.701, i64 4 }, %if.then.458 ], [ %callN, %if.else.459 ] + 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.461, label %if.else.462 + +if.then.461: ; preds = %entry + br label %if.merge.463 + +if.else.462: ; 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.706, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.705, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.463 + +if.merge.463: ; preds = %if.else.462, %if.then.461 + %bp = phi { ptr, i64 } [ { ptr @str.704, i64 4 }, %if.then.461 ], [ %callN, %if.else.462 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_error_set(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.464, label %if.else.465 + +if.then.464: ; preds = %entry + br label %if.merge.466 + +if.else.465: ; 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.709, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.708, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.466 + +if.merge.466: ; preds = %if.else.465, %if.then.464 + %bp = phi { ptr, i64 } [ { ptr @str.707, i64 4 }, %if.then.464 ], [ %callN, %if.else.465 ] + 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.467, label %if.else.468 + +if.then.467: ; preds = %entry + br label %if.merge.469 + +if.else.468: ; 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.712, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.711, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.469 + +if.merge.469: ; preds = %if.else.468, %if.then.467 + %bp = phi { ptr, i64 } [ { ptr @str.710, i64 4 }, %if.then.467 ], [ %callN, %if.else.468 ] + 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.470, label %if.else.471 + +if.then.470: ; preds = %entry + br label %if.merge.472 + +if.else.471: ; 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.715, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.714, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.472 + +if.merge.472: ; preds = %if.else.471, %if.then.470 + %bp = phi { ptr, i64 } [ { ptr @str.713, i64 4 }, %if.then.470 ], [ %callN, %if.else.471 ] + 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.473, label %if.else.474 + +if.then.473: ; preds = %entry + br label %if.merge.475 + +if.else.474: ; 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.718, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.717, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.475 + +if.merge.475: ; preds = %if.else.474, %if.then.473 + %bp = phi { ptr, i64 } [ { ptr @str.716, i64 4 }, %if.then.473 ], [ %callN, %if.else.474 ] + 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.476, label %if.else.477 + +if.then.476: ; preds = %entry + br label %if.merge.478 + +if.else.477: ; 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.721, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.720, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.478 + +if.merge.478: ; preds = %if.else.477, %if.then.476 + %bp = phi { ptr, i64 } [ { ptr @str.719, i64 4 }, %if.then.476 ], [ %callN, %if.else.477 ] ret { ptr, i64 } %bp } @@ -3559,19 +7440,115 @@ entry: 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.276, label %if.else.277 + br i1 %icmp, label %if.then.479, label %if.else.480 -if.then.276: ; preds = %entry - br label %if.merge.278 +if.then.479: ; preds = %entry + br label %if.merge.481 -if.else.277: ; preds = %entry +if.else.480: ; 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.272, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.271, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.278 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.723, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.481 -if.merge.278: ; preds = %if.else.277, %if.then.276 - %bp = phi { ptr, i64 } [ { ptr @str.270, i64 4 }, %if.then.276 ], [ %callN, %if.else.277 ] +if.merge.481: ; preds = %if.else.480, %if.then.479 + %bp = phi { ptr, i64 } [ { ptr @str.722, i64 4 }, %if.then.479 ], [ %callN, %if.else.480 ] 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.488, label %if.merge.489 + +if.then.488: ; preds = %entry + ret { ptr, i64 } { ptr @str.725, i64 4 } + +if.merge.489: ; 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 39, 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.490, label %if.merge.491 + +if.then.490: ; preds = %entry + ret { ptr, i64 } { ptr @str.726, i64 4 } + +if.merge.491: ; 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_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.492, label %if.merge.493 + +if.then.492: ; preds = %entry + ret { ptr, i64 } { ptr @str.727, i64 4 } + +if.merge.493: ; 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 45, 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.494, label %if.merge.495 + +if.then.494: ; preds = %entry + ret { ptr, i64 } { ptr @str.728, i64 4 } + +if.merge.495: ; 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 88, 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/1006-errors-inferred-error-sets.ir b/examples/expected/1006-errors-inferred-error-sets.ir index 42c7b56..a886900 100644 --- a/examples/expected/1006-errors-inferred-error-sets.ir +++ b/examples/expected/1006-errors-inferred-error-sets.ir @@ -1,273 +1,625 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [76 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] +@str.126 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.127 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.128 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.129 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.130 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.131 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [163 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] @tag.str = private constant [1 x i8] zeroinitializer -@tag.str.27 = private constant [4 x i8] c"Foo\00" -@tag.str.28 = private constant [4 x i8] c"Bar\00" -@tag_names = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.27, i64 3 }, { ptr, i64 } { ptr @tag.str.28, i64 3 }] +@tag.str.132 = private constant [9 x i8] c"Overflow\00" +@tag.str.133 = private constant [3 x i8] c"Io\00" +@tag.str.134 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.135 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.136 = private constant [10 x i8] c"BadEscape\00" +@tag.str.137 = private constant [10 x i8] c"BadNumber\00" +@tag.str.138 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.139 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.140 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.141 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.142 = private constant [13 x i8] c"MissingValue\00" +@tag.str.143 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.144 = private constant [13 x i8] c"TooManyFlags\00" +@tag.str.145 = private constant [4 x i8] c"Foo\00" +@tag.str.146 = private constant [4 x i8] c"Bar\00" +@tag_names = private constant [16 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.132, i64 8 }, { ptr, i64 } { ptr @tag.str.133, i64 2 }, { ptr, i64 } { ptr @tag.str.134, i64 15 }, { ptr, i64 } { ptr @tag.str.135, i64 13 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 9 }, { ptr, i64 } { ptr @tag.str.138, i64 15 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 14 }, { ptr, i64 } { ptr @tag.str.141, i64 11 }, { ptr, i64 } { ptr @tag.str.142, i64 12 }, { ptr, i64 } { ptr @tag.str.143, i64 15 }, { ptr, i64 } { ptr @tag.str.144, i64 12 }, { ptr, i64 } { ptr @tag.str.145, i64 3 }, { ptr, i64 } { ptr @tag.str.146, i64 3 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.29 = private constant [5 x i8] c"bool\00" -@tn.str.30 = private constant [3 x i8] c"s8\00" -@tn.str.31 = private constant [4 x i8] c"s16\00" -@tn.str.32 = private constant [4 x i8] c"s32\00" -@tn.str.33 = private constant [4 x i8] c"s64\00" -@tn.str.34 = private constant [3 x i8] c"u8\00" -@tn.str.35 = private constant [4 x i8] c"u16\00" -@tn.str.36 = private constant [4 x i8] c"u32\00" -@tn.str.37 = private constant [4 x i8] c"u64\00" -@tn.str.38 = private constant [4 x i8] c"f32\00" -@tn.str.39 = private constant [4 x i8] c"f64\00" -@tn.str.40 = private constant [7 x i8] c"string\00" -@tn.str.41 = private constant [4 x i8] c"Any\00" -@tn.str.42 = private constant [9 x i8] c"noreturn\00" -@tn.str.43 = private constant [6 x i8] c"isize\00" -@tn.str.44 = private constant [6 x i8] c"usize\00" -@tn.str.45 = private constant [5 x i8] c"void\00" -@tn.str.46 = private constant [6 x i8] c"*void\00" -@tn.str.47 = private constant [16 x i8] c"Source_Location\00" -@tn.str.48 = private constant [11 x i8] c"CAllocator\00" -@tn.str.49 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.50 = private constant [4 x i8] c"GPA\00" -@tn.str.51 = private constant [5 x i8] c"*GPA\00" -@tn.str.52 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.53 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.54 = private constant [10 x i8] c"Allocator\00" -@tn.str.55 = private constant [6 x i8] c"Arena\00" -@tn.str.56 = private constant [7 x i8] c"*Arena\00" -@tn.str.57 = private constant [6 x i8] c"[*]u8\00" -@tn.str.58 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.59 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.60 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.61 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.62 = private constant [8 x i8] c"Context\00" -@tn.str.63 = private constant [7 x i8] c"[4]s64\00" -@tn.str.64 = private constant [9 x i8] c"[]string\00" -@tn.str.65 = private constant [2 x i8] c"A\00" -@tn.str.66 = private constant [2 x i8] c"!\00" -@tn.str.67 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.68 = private constant [5 x i8] c"*s64\00" -@tn.str.69 = private constant [7 x i8] c"**void\00" -@tn.str.70 = private constant [5 x i8] c"*s32\00" -@tn.str.71 = private constant [3 x i8] c"*A\00" -@tn.str.72 = private constant [8 x i8] c"*string\00" -@tn.str.73 = private constant [6 x i8] c"[]Any\00" -@tn.str.74 = private constant [5 x i8] c"*Any\00" -@tn.str.75 = private constant [7 x i8] c"[1]Any\00" -@tn.str.76 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.77 = private constant [7 x i8] c"*[]Any\00" -@tn.str.78 = private constant [4 x i8] c"*u8\00" -@tn.str.79 = private constant [6 x i8] c"*bool\00" -@tn.str.80 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.81 = private constant [5 x i8] c"*f64\00" -@tn.str.82 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.83 = private constant [11 x i8] c"*Allocator\00" -@tn.str.84 = private constant [9 x i8] c"*Context\00" -@tn.str.85 = private constant [5 x i8] c"*u32\00" -@tn.str.86 = private constant [10 x i8] c"*[]string\00" -@tn.str.87 = private constant [6 x i8] c"**GPA\00" -@tn.str.88 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.89 = private constant [8 x i8] c"**Arena\00" -@tn.str.90 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.91 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.92 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.93 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.94 = private constant [6 x i8] c"**s64\00" -@tn.str.95 = private constant [8 x i8] c"***void\00" -@tn.str.96 = private constant [6 x i8] c"**s32\00" -@tn.str.97 = private constant [4 x i8] c"**A\00" -@tn.str.98 = private constant [9 x i8] c"**string\00" -@tn.str.99 = private constant [6 x i8] c"**Any\00" -@tn.str.100 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.101 = private constant [8 x i8] c"**[]Any\00" -@tn.str.102 = private constant [5 x i8] c"**u8\00" -@tn.str.103 = private constant [7 x i8] c"**bool\00" -@__sx_type_names = private constant [76 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.29, i64 4 }, { ptr, i64 } { ptr @tn.str.30, i64 2 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 3 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 2 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 3 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 6 }, { ptr, i64 } { ptr @tn.str.41, i64 3 }, { ptr, i64 } { ptr @tn.str.42, i64 8 }, { ptr, i64 } { ptr @tn.str.43, i64 5 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 4 }, { ptr, i64 } { ptr @tn.str.46, i64 5 }, { ptr, i64 } { ptr @tn.str.47, i64 15 }, { ptr, i64 } { ptr @tn.str.48, i64 10 }, { ptr, i64 } { ptr @tn.str.49, i64 11 }, { ptr, i64 } { ptr @tn.str.50, i64 3 }, { ptr, i64 } { ptr @tn.str.51, i64 4 }, { ptr, i64 } { ptr @tn.str.52, i64 10 }, { ptr, i64 } { ptr @tn.str.53, i64 11 }, { ptr, i64 } { ptr @tn.str.54, i64 9 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 6 }, { ptr, i64 } { ptr @tn.str.57, i64 5 }, { ptr, i64 } { ptr @tn.str.58, i64 8 }, { ptr, i64 } { ptr @tn.str.59, i64 9 }, { ptr, i64 } { ptr @tn.str.60, i64 17 }, { ptr, i64 } { ptr @tn.str.61, i64 18 }, { ptr, i64 } { ptr @tn.str.62, i64 7 }, { ptr, i64 } { ptr @tn.str.63, i64 6 }, { ptr, i64 } { ptr @tn.str.64, i64 8 }, { ptr, i64 } { ptr @tn.str.65, i64 1 }, { ptr, i64 } { ptr @tn.str.66, i64 1 }, { ptr, i64 } { ptr @tn.str.67, i64 12 }, { ptr, i64 } { ptr @tn.str.68, i64 4 }, { ptr, i64 } { ptr @tn.str.69, i64 6 }, { ptr, i64 } { ptr @tn.str.70, i64 4 }, { ptr, i64 } { ptr @tn.str.71, i64 2 }, { ptr, i64 } { ptr @tn.str.72, i64 7 }, { ptr, i64 } { ptr @tn.str.73, i64 5 }, { ptr, i64 } { ptr @tn.str.74, i64 4 }, { ptr, i64 } { ptr @tn.str.75, i64 6 }, { ptr, i64 } { ptr @tn.str.76, i64 7 }, { ptr, i64 } { ptr @tn.str.77, i64 6 }, { ptr, i64 } { ptr @tn.str.78, i64 3 }, { ptr, i64 } { ptr @tn.str.79, i64 5 }, { ptr, i64 } { ptr @tn.str.80, i64 7 }, { ptr, i64 } { ptr @tn.str.81, i64 4 }, { ptr, i64 } { ptr @tn.str.82, i64 16 }, { ptr, i64 } { ptr @tn.str.83, i64 10 }, { ptr, i64 } { ptr @tn.str.84, i64 8 }, { ptr, i64 } { ptr @tn.str.85, i64 4 }, { ptr, i64 } { ptr @tn.str.86, i64 9 }, { ptr, i64 } { ptr @tn.str.87, i64 5 }, { ptr, i64 } { ptr @tn.str.88, i64 12 }, { ptr, i64 } { ptr @tn.str.89, i64 7 }, { ptr, i64 } { ptr @tn.str.90, i64 6 }, { ptr, i64 } { ptr @tn.str.91, i64 10 }, { ptr, i64 } { ptr @tn.str.92, i64 19 }, { ptr, i64 } { ptr @tn.str.93, i64 13 }, { ptr, i64 } { ptr @tn.str.94, i64 5 }, { ptr, i64 } { ptr @tn.str.95, i64 7 }, { ptr, i64 } { ptr @tn.str.96, i64 5 }, { ptr, i64 } { ptr @tn.str.97, i64 3 }, { ptr, i64 } { ptr @tn.str.98, i64 8 }, { ptr, i64 } { ptr @tn.str.99, i64 5 }, { ptr, i64 } { ptr @tn.str.100, i64 8 }, { ptr, i64 } { ptr @tn.str.101, i64 7 }, { ptr, i64 } { ptr @tn.str.102, i64 4 }, { ptr, i64 } { ptr @tn.str.103, i64 6 }] -@str.104 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.105 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.106 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.107 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.108 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.109 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.110 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.111 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.112 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.113 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.114 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.115 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.116 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.117 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.118 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.119 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.120 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.121 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.122 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@tn.str.147 = private constant [5 x i8] c"bool\00" +@tn.str.148 = private constant [3 x i8] c"s8\00" +@tn.str.149 = private constant [4 x i8] c"s16\00" +@tn.str.150 = private constant [4 x i8] c"s32\00" +@tn.str.151 = private constant [4 x i8] c"s64\00" +@tn.str.152 = private constant [3 x i8] c"u8\00" +@tn.str.153 = private constant [4 x i8] c"u16\00" +@tn.str.154 = private constant [4 x i8] c"u32\00" +@tn.str.155 = private constant [4 x i8] c"u64\00" +@tn.str.156 = private constant [4 x i8] c"f32\00" +@tn.str.157 = private constant [4 x i8] c"f64\00" +@tn.str.158 = private constant [7 x i8] c"string\00" +@tn.str.159 = private constant [4 x i8] c"Any\00" +@tn.str.160 = private constant [9 x i8] c"noreturn\00" +@tn.str.161 = private constant [6 x i8] c"isize\00" +@tn.str.162 = private constant [6 x i8] c"usize\00" +@tn.str.163 = private constant [5 x i8] c"void\00" +@tn.str.164 = private constant [6 x i8] c"*void\00" +@tn.str.165 = private constant [16 x i8] c"Source_Location\00" +@tn.str.166 = private constant [11 x i8] c"CAllocator\00" +@tn.str.167 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.168 = private constant [4 x i8] c"GPA\00" +@tn.str.169 = private constant [5 x i8] c"*GPA\00" +@tn.str.170 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.171 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.172 = private constant [10 x i8] c"Allocator\00" +@tn.str.173 = private constant [6 x i8] c"Arena\00" +@tn.str.174 = private constant [7 x i8] c"*Arena\00" +@tn.str.175 = private constant [6 x i8] c"[*]u8\00" +@tn.str.176 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.177 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.178 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.179 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.180 = private constant [8 x i8] c"Context\00" +@tn.str.181 = private constant [7 x i8] c"[4]s64\00" +@tn.str.182 = private constant [9 x i8] c"[]string\00" +@tn.str.183 = private constant [9 x i8] c"OpenMode\00" +@tn.str.184 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.185 = private constant [5 x i8] c"File\00" +@tn.str.186 = private constant [6 x i8] c"*File\00" +@tn.str.187 = private constant [6 x i8] c"?File\00" +@tn.str.188 = private constant [8 x i8] c"?string\00" +@tn.str.189 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.190 = private constant [4 x i8] c"*u8\00" +@tn.str.191 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.192 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.193 = private constant [5 x i8] c"*s32\00" +@tn.str.194 = private constant [9 x i8] c"SockAddr\00" +@tn.str.195 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.196 = private constant [5 x i8] c"*u32\00" +@tn.str.197 = private constant [10 x i8] c"JsonError\00" +@tn.str.198 = private constant [6 x i8] c"Array\00" +@tn.str.199 = private constant [7 x i8] c"Object\00" +@tn.str.200 = private constant [6 x i8] c"Value\00" +@tn.str.201 = private constant [7 x i8] c"Member\00" +@tn.str.202 = private constant [9 x i8] c"[*]Value\00" +@tn.str.203 = private constant [7 x i8] c"*Array\00" +@tn.str.204 = private constant [10 x i8] c"[*]Member\00" +@tn.str.205 = private constant [8 x i8] c"*Object\00" +@tn.str.206 = private constant [5 x i8] c"[]u8\00" +@tn.str.207 = private constant [5 x i8] c"Sink\00" +@tn.str.208 = private constant [6 x i8] c"*Sink\00" +@tn.str.209 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.210 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.211 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.212 = private constant [7 x i8] c"Parser\00" +@tn.str.213 = private constant [8 x i8] c"*Parser\00" +@tn.str.214 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.215 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.216 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.217 = private constant [13 x i8] c"Architecture\00" +@tn.str.218 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.219 = private constant [11 x i8] c"() -> bool\00" +@tn.str.220 = private constant [5 x i8] c"*s64\00" +@tn.str.221 = private constant [9 x i8] c"CliError\00" +@tn.str.222 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.223 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.224 = private constant [8 x i8] c"Command\00" +@tn.str.225 = private constant [10 x i8] c"FlagValue\00" +@tn.str.226 = private constant [5 x i8] c"Diag\00" +@tn.str.227 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.228 = private constant [7 x i8] c"Parsed\00" +@tn.str.229 = private constant [8 x i8] c"*Parsed\00" +@tn.str.230 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.231 = private constant [10 x i8] c"[]Command\00" +@tn.str.232 = private constant [6 x i8] c"*Diag\00" +@tn.str.233 = private constant [7 x i8] c"[8]s64\00" +@tn.str.234 = private constant [7 x i8] c"[64]u8\00" +@tn.str.235 = private constant [7 x i8] c"Sha256\00" +@tn.str.236 = private constant [8 x i8] c"*Sha256\00" +@tn.str.237 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.238 = private constant [8 x i8] c"[64]s64\00" +@tn.str.239 = private constant [2 x i8] c"A\00" +@tn.str.240 = private constant [2 x i8] c"!\00" +@tn.str.241 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.242 = private constant [7 x i8] c"**void\00" +@tn.str.243 = private constant [3 x i8] c"*A\00" +@tn.str.244 = private constant [8 x i8] c"*string\00" +@tn.str.245 = private constant [6 x i8] c"[]Any\00" +@tn.str.246 = private constant [5 x i8] c"*Any\00" +@tn.str.247 = private constant [7 x i8] c"[1]Any\00" +@tn.str.248 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.249 = private constant [7 x i8] c"*[]Any\00" +@tn.str.250 = private constant [6 x i8] c"*bool\00" +@tn.str.251 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.252 = private constant [5 x i8] c"*f64\00" +@tn.str.253 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.254 = private constant [11 x i8] c"*Allocator\00" +@tn.str.255 = private constant [9 x i8] c"*Context\00" +@tn.str.256 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.257 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.258 = private constant [8 x i8] c"*Member\00" +@tn.str.259 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.260 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.261 = private constant [9 x i8] c"*Command\00" +@tn.str.262 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.263 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.264 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.265 = private constant [7 x i8] c"*Value\00" +@tn.str.266 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.267 = private constant [14 x i8] c"*Architecture\00" +@tn.str.268 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.269 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.270 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.271 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.272 = private constant [10 x i8] c"*[]string\00" +@tn.str.273 = private constant [6 x i8] c"*[]u8\00" +@tn.str.274 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.275 = private constant [11 x i8] c"*[]Command\00" +@tn.str.276 = private constant [6 x i8] c"**GPA\00" +@tn.str.277 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.278 = private constant [8 x i8] c"**Arena\00" +@tn.str.279 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.280 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.281 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.282 = private constant [7 x i8] c"**File\00" +@tn.str.283 = private constant [5 x i8] c"**u8\00" +@tn.str.284 = private constant [6 x i8] c"**s32\00" +@tn.str.285 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.286 = private constant [6 x i8] c"**u32\00" +@tn.str.287 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.288 = private constant [8 x i8] c"**Array\00" +@tn.str.289 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.290 = private constant [9 x i8] c"**Object\00" +@tn.str.291 = private constant [7 x i8] c"**Sink\00" +@tn.str.292 = private constant [9 x i8] c"**Parser\00" +@tn.str.293 = private constant [6 x i8] c"**s64\00" +@tn.str.294 = private constant [9 x i8] c"**Parsed\00" +@tn.str.295 = private constant [7 x i8] c"**Diag\00" +@tn.str.296 = private constant [9 x i8] c"**Sha256\00" +@tn.str.297 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.298 = private constant [8 x i8] c"***void\00" +@tn.str.299 = private constant [4 x i8] c"**A\00" +@tn.str.300 = private constant [9 x i8] c"**string\00" +@tn.str.301 = private constant [6 x i8] c"**Any\00" +@tn.str.302 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.303 = private constant [8 x i8] c"**[]Any\00" +@tn.str.304 = private constant [7 x i8] c"**bool\00" +@tn.str.305 = private constant [7 x i8] c"*?File\00" +@tn.str.306 = private constant [9 x i8] c"*?string\00" +@tn.str.307 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.308 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [163 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.147, i64 4 }, { ptr, i64 } { ptr @tn.str.148, i64 2 }, { 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 2 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 3 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 3 }, { ptr, i64 } { ptr @tn.str.158, i64 6 }, { ptr, i64 } { ptr @tn.str.159, i64 3 }, { ptr, i64 } { ptr @tn.str.160, i64 8 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 5 }, { ptr, i64 } { ptr @tn.str.163, i64 4 }, { ptr, i64 } { ptr @tn.str.164, i64 5 }, { ptr, i64 } { ptr @tn.str.165, i64 15 }, { ptr, i64 } { ptr @tn.str.166, i64 10 }, { ptr, i64 } { ptr @tn.str.167, i64 11 }, { ptr, i64 } { ptr @tn.str.168, i64 3 }, { ptr, i64 } { ptr @tn.str.169, i64 4 }, { ptr, i64 } { ptr @tn.str.170, i64 10 }, { ptr, i64 } { ptr @tn.str.171, i64 11 }, { ptr, i64 } { ptr @tn.str.172, i64 9 }, { ptr, i64 } { ptr @tn.str.173, i64 5 }, { ptr, i64 } { ptr @tn.str.174, i64 6 }, { ptr, i64 } { ptr @tn.str.175, i64 5 }, { ptr, i64 } { ptr @tn.str.176, i64 8 }, { ptr, i64 } { ptr @tn.str.177, i64 9 }, { ptr, i64 } { ptr @tn.str.178, i64 17 }, { ptr, i64 } { ptr @tn.str.179, i64 18 }, { ptr, i64 } { ptr @tn.str.180, i64 7 }, { ptr, i64 } { ptr @tn.str.181, i64 6 }, { ptr, i64 } { ptr @tn.str.182, i64 8 }, { ptr, i64 } { ptr @tn.str.183, i64 8 }, { ptr, i64 } { ptr @tn.str.184, i64 8 }, { ptr, i64 } { ptr @tn.str.185, i64 4 }, { ptr, i64 } { ptr @tn.str.186, i64 5 }, { ptr, i64 } { ptr @tn.str.187, i64 5 }, { ptr, i64 } { ptr @tn.str.188, i64 7 }, { ptr, i64 } { ptr @tn.str.189, i64 10 }, { ptr, i64 } { ptr @tn.str.190, i64 3 }, { ptr, i64 } { ptr @tn.str.191, i64 13 }, { ptr, i64 } { ptr @tn.str.192, i64 14 }, { ptr, i64 } { ptr @tn.str.193, i64 4 }, { ptr, i64 } { ptr @tn.str.194, i64 8 }, { ptr, i64 } { ptr @tn.str.195, i64 9 }, { ptr, i64 } { ptr @tn.str.196, i64 4 }, { ptr, i64 } { ptr @tn.str.197, i64 9 }, { ptr, i64 } { ptr @tn.str.198, i64 5 }, { ptr, i64 } { ptr @tn.str.199, i64 6 }, { ptr, i64 } { ptr @tn.str.200, i64 5 }, { ptr, i64 } { ptr @tn.str.201, i64 6 }, { ptr, i64 } { ptr @tn.str.202, i64 8 }, { ptr, i64 } { ptr @tn.str.203, i64 6 }, { ptr, i64 } { ptr @tn.str.204, i64 9 }, { ptr, i64 } { ptr @tn.str.205, i64 7 }, { ptr, i64 } { ptr @tn.str.206, i64 4 }, { ptr, i64 } { ptr @tn.str.207, i64 4 }, { ptr, i64 } { ptr @tn.str.208, i64 5 }, { ptr, i64 } { ptr @tn.str.209, i64 16 }, { ptr, i64 } { ptr @tn.str.210, i64 14 }, { ptr, i64 } { ptr @tn.str.211, i64 21 }, { ptr, i64 } { ptr @tn.str.212, i64 6 }, { ptr, i64 } { ptr @tn.str.213, i64 7 }, { ptr, i64 } { ptr @tn.str.214, i64 24 }, { ptr, i64 } { ptr @tn.str.215, i64 23 }, { ptr, i64 } { ptr @tn.str.216, i64 15 }, { ptr, i64 } { ptr @tn.str.217, i64 12 }, { ptr, i64 } { ptr @tn.str.218, i64 12 }, { ptr, i64 } { ptr @tn.str.219, i64 10 }, { ptr, i64 } { ptr @tn.str.220, i64 4 }, { ptr, i64 } { ptr @tn.str.221, i64 8 }, { ptr, i64 } { ptr @tn.str.222, i64 8 }, { ptr, i64 } { ptr @tn.str.223, i64 10 }, { ptr, i64 } { ptr @tn.str.224, i64 7 }, { ptr, i64 } { ptr @tn.str.225, i64 9 }, { ptr, i64 } { ptr @tn.str.226, i64 4 }, { ptr, i64 } { ptr @tn.str.227, i64 13 }, { ptr, i64 } { ptr @tn.str.228, i64 6 }, { ptr, i64 } { ptr @tn.str.229, i64 7 }, { ptr, i64 } { ptr @tn.str.230, i64 18 }, { ptr, i64 } { ptr @tn.str.231, i64 9 }, { ptr, i64 } { ptr @tn.str.232, i64 5 }, { ptr, i64 } { ptr @tn.str.233, i64 6 }, { ptr, i64 } { ptr @tn.str.234, i64 6 }, { ptr, i64 } { ptr @tn.str.235, i64 6 }, { ptr, i64 } { ptr @tn.str.236, i64 7 }, { ptr, i64 } { ptr @tn.str.237, i64 7 }, { ptr, i64 } { ptr @tn.str.238, i64 7 }, { ptr, i64 } { ptr @tn.str.239, i64 1 }, { ptr, i64 } { ptr @tn.str.240, i64 1 }, { ptr, i64 } { ptr @tn.str.241, i64 12 }, { ptr, i64 } { ptr @tn.str.242, i64 6 }, { ptr, i64 } { ptr @tn.str.243, i64 2 }, { ptr, i64 } { ptr @tn.str.244, i64 7 }, { ptr, i64 } { ptr @tn.str.245, i64 5 }, { ptr, i64 } { ptr @tn.str.246, i64 4 }, { ptr, i64 } { ptr @tn.str.247, i64 6 }, { ptr, i64 } { ptr @tn.str.248, i64 7 }, { ptr, i64 } { ptr @tn.str.249, i64 6 }, { ptr, i64 } { ptr @tn.str.250, i64 5 }, { ptr, i64 } { ptr @tn.str.251, i64 7 }, { ptr, i64 } { ptr @tn.str.252, i64 4 }, { ptr, i64 } { ptr @tn.str.253, i64 16 }, { ptr, i64 } { ptr @tn.str.254, i64 10 }, { ptr, i64 } { ptr @tn.str.255, i64 8 }, { ptr, i64 } { ptr @tn.str.256, i64 11 }, { ptr, i64 } { ptr @tn.str.257, i64 14 }, { ptr, i64 } { ptr @tn.str.258, i64 7 }, { ptr, i64 } { ptr @tn.str.259, i64 13 }, { ptr, i64 } { ptr @tn.str.260, i64 9 }, { ptr, i64 } { ptr @tn.str.261, i64 8 }, { ptr, i64 } { ptr @tn.str.262, i64 10 }, { ptr, i64 } { ptr @tn.str.263, i64 9 }, { ptr, i64 } { ptr @tn.str.264, i64 9 }, { ptr, i64 } { ptr @tn.str.265, i64 6 }, { ptr, i64 } { ptr @tn.str.266, i64 16 }, { ptr, i64 } { ptr @tn.str.267, i64 13 }, { ptr, i64 } { ptr @tn.str.268, i64 14 }, { ptr, i64 } { ptr @tn.str.269, i64 7 }, { ptr, i64 } { ptr @tn.str.270, i64 7 }, { ptr, i64 } { ptr @tn.str.271, i64 8 }, { ptr, i64 } { ptr @tn.str.272, i64 9 }, { ptr, i64 } { ptr @tn.str.273, i64 5 }, { ptr, i64 } { ptr @tn.str.274, i64 11 }, { ptr, i64 } { ptr @tn.str.275, i64 10 }, { ptr, i64 } { ptr @tn.str.276, i64 5 }, { ptr, i64 } { ptr @tn.str.277, i64 12 }, { ptr, i64 } { ptr @tn.str.278, i64 7 }, { ptr, i64 } { ptr @tn.str.279, i64 6 }, { ptr, i64 } { ptr @tn.str.280, i64 10 }, { ptr, i64 } { ptr @tn.str.281, i64 19 }, { ptr, i64 } { ptr @tn.str.282, i64 6 }, { ptr, i64 } { ptr @tn.str.283, i64 4 }, { ptr, i64 } { ptr @tn.str.284, i64 5 }, { ptr, i64 } { ptr @tn.str.285, i64 10 }, { ptr, i64 } { ptr @tn.str.286, i64 5 }, { ptr, i64 } { ptr @tn.str.287, i64 9 }, { ptr, i64 } { ptr @tn.str.288, i64 7 }, { ptr, i64 } { ptr @tn.str.289, i64 10 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 6 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 5 }, { ptr, i64 } { ptr @tn.str.294, i64 8 }, { ptr, i64 } { ptr @tn.str.295, i64 6 }, { ptr, i64 } { ptr @tn.str.296, i64 8 }, { ptr, i64 } { ptr @tn.str.297, i64 13 }, { ptr, i64 } { ptr @tn.str.298, i64 7 }, { ptr, i64 } { ptr @tn.str.299, i64 3 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 5 }, { ptr, i64 } { ptr @tn.str.302, i64 8 }, { ptr, i64 } { ptr @tn.str.303, i64 7 }, { ptr, i64 } { ptr @tn.str.304, i64 6 }, { ptr, i64 } { ptr @tn.str.305, i64 6 }, { ptr, i64 } { ptr @tn.str.306, i64 8 }, { ptr, i64 } { ptr @tn.str.307, i64 15 }, { ptr, i64 } { ptr @tn.str.308, i64 8 }] +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.311 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.312 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.313 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.314 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.315 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.316 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.317 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.318 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.319 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.320 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.321 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.322 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.323 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.324 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.325 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.326 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.327 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.328 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.329 = private unnamed_addr constant [5 x i8] c")); \00", align 1 @frame.str = private unnamed_addr constant [35 x i8] c"1006-errors-inferred-error-sets.sx\00" -@frame.str.123 = private unnamed_addr constant [5 x i8] c"leaf\00" -@frame.str.124 = private unnamed_addr constant [34 x i8] c" if n < 0 { raise error.Foo; }\00" -@trace.frame = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 34 }, i32 15, i32 16, { ptr, i64 } { ptr @frame.str.123, i64 4 }, { ptr, i64 } { ptr @frame.str.124, i64 33 } } -@frame.str.125 = private unnamed_addr constant [4 x i8] c"mid\00" -@frame.str.126 = private unnamed_addr constant [17 x i8] c" try leaf(n);\00" -@trace.frame.127 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 34 }, i32 22, i32 5, { ptr, i64 } { ptr @frame.str.125, i64 3 }, { ptr, i64 } { ptr @frame.str.126, i64 16 } } -@frame.str.128 = private unnamed_addr constant [37 x i8] c" if n == 100 { raise error.Bar; }\00" -@trace.frame.129 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 34 }, i32 23, i32 19, { ptr, i64 } { ptr @frame.str.125, i64 3 }, { ptr, i64 } { ptr @frame.str.128, i64 36 } } -@frame.str.130 = private unnamed_addr constant [4 x i8] c"run\00" -@frame.str.131 = private unnamed_addr constant [16 x i8] c" try mid(n);\00" -@trace.frame.132 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 34 }, i32 29, i32 5, { ptr, i64 } { ptr @frame.str.130, i64 3 }, { ptr, i64 } { ptr @frame.str.131, i64 15 } } -@str.133 = private unnamed_addr constant [21 x i8] c"inferred result: {}\0A\00", align 1 -@str.134 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.135 = private unnamed_addr constant [21 x i8] c"inferred result: {}\0A\00", align 1 -@str.136 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.137 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.138 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.139 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@frame.str.330 = private unnamed_addr constant [5 x i8] c"leaf\00" +@frame.str.331 = private unnamed_addr constant [34 x i8] c" if n < 0 { raise error.Foo; }\00" +@trace.frame = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 34 }, i32 15, i32 16, { ptr, i64 } { ptr @frame.str.330, i64 4 }, { ptr, i64 } { ptr @frame.str.331, i64 33 } } +@frame.str.332 = private unnamed_addr constant [4 x i8] c"mid\00" +@frame.str.333 = private unnamed_addr constant [17 x i8] c" try leaf(n);\00" +@trace.frame.334 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 34 }, i32 22, i32 5, { ptr, i64 } { ptr @frame.str.332, i64 3 }, { ptr, i64 } { ptr @frame.str.333, i64 16 } } +@frame.str.335 = private unnamed_addr constant [37 x i8] c" if n == 100 { raise error.Bar; }\00" +@trace.frame.336 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 34 }, i32 23, i32 19, { ptr, i64 } { ptr @frame.str.332, i64 3 }, { ptr, i64 } { ptr @frame.str.335, i64 36 } } +@frame.str.337 = private unnamed_addr constant [4 x i8] c"run\00" +@frame.str.338 = private unnamed_addr constant [16 x i8] c" try mid(n);\00" +@trace.frame.339 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 34 }, i32 29, i32 5, { ptr, i64 } { ptr @frame.str.337, i64 3 }, { ptr, i64 } { ptr @frame.str.338, i64 15 } } +@str.340 = private unnamed_addr constant [21 x i8] c"inferred result: {}\0A\00", align 1 +@str.341 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.342 = private unnamed_addr constant [21 x i8] c"inferred result: {}\0A\00", align 1 +@str.343 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.344 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.345 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.346 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.140 = private constant [5 x i8] c"line\00" -@fld.str.141 = private constant [4 x i8] c"col\00" -@fld.str.142 = 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.140, i64 4 }, { ptr, i64 } { ptr @fld.str.141, i64 3 }, { ptr, i64 } { ptr @fld.str.142, i64 4 }] -@str.143 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.144 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.145 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.146 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.147 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.148 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.149 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.150 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.152 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.153 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.154 = private constant [12 x i8] c"alloc_count\00" -@field_names.155 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.154, i64 11 }] -@str.156 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.157 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.158 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.159 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.160 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.161 = private constant [5 x i8] c"next\00" -@fld.str.162 = private constant [4 x i8] c"cap\00" -@field_names.163 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.161, i64 4 }, { ptr, i64 } { ptr @fld.str.162, i64 3 }] -@str.164 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.165 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.166 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.167 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.168 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.169 = private constant [4 x i8] c"ctx\00" -@fld.str.170 = private constant [6 x i8] c"alloc\00" -@fld.str.171 = private constant [8 x i8] c"dealloc\00" -@field_names.172 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.169, i64 3 }, { ptr, i64 } { ptr @fld.str.170, i64 5 }, { ptr, i64 } { ptr @fld.str.171, i64 7 }] -@str.173 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.174 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.175 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.176 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.177 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.178 = private constant [6 x i8] c"first\00" -@fld.str.179 = private constant [10 x i8] c"end_index\00" -@fld.str.180 = private constant [7 x i8] c"parent\00" -@field_names.181 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.178, i64 5 }, { ptr, i64 } { ptr @fld.str.179, i64 9 }, { ptr, i64 } { ptr @fld.str.180, i64 6 }] -@str.182 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.183 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.184 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.185 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.186 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.187 = private constant [4 x i8] c"buf\00" -@fld.str.188 = private constant [4 x i8] c"len\00" -@fld.str.189 = private constant [4 x i8] c"pos\00" -@field_names.190 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.187, i64 3 }, { ptr, i64 } { ptr @fld.str.188, i64 3 }, { ptr, i64 } { ptr @fld.str.189, i64 3 }] -@str.191 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.192 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.193 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.194 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.195 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.196 = private constant [7 x i8] c"parent\00" -@fld.str.197 = private constant [12 x i8] c"alloc_count\00" -@fld.str.198 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.199 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.200 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.196, i64 6 }, { ptr, i64 } { ptr @fld.str.197, i64 11 }, { ptr, i64 } { ptr @fld.str.198, i64 13 }, { ptr, i64 } { ptr @fld.str.199, i64 17 }] -@str.201 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.202 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.203 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.204 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.205 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.206 = private constant [10 x i8] c"allocator\00" -@fld.str.207 = private constant [5 x i8] c"data\00" -@field_names.208 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.206, i64 9 }, { ptr, i64 } { ptr @fld.str.207, i64 4 }] -@str.209 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.210 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.212 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.213 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.214 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.215 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.216 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.217 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.218 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.219 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.220 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.221 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.222 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.223 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.224 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.225 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.226 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.227 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.228 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.229 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.230 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.231 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.232 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.233 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.234 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.235 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.236 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.237 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.238 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.239 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.240 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.241 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.242 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.243 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.244 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.245 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.246 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.247 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.248 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.249 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.250 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.251 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.252 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.253 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.254 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.255 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.256 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.257 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.258 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.259 = private unnamed_addr constant [11 x i8] c"*error_set\00", align 1 -@str.260 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.261 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.262 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.263 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.264 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.265 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.266 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.267 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.268 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.269 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.270 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.271 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.272 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.273 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.274 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.275 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.276 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.277 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.278 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.347 = private constant [5 x i8] c"line\00" +@fld.str.348 = private constant [4 x i8] c"col\00" +@fld.str.349 = 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.347, i64 4 }, { ptr, i64 } { ptr @fld.str.348, i64 3 }, { ptr, i64 } { ptr @fld.str.349, i64 4 }] +@str.350 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.351 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.352 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.353 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.354 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.355 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.356 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.357 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.358 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.359 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.360 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.361 = private constant [12 x i8] c"alloc_count\00" +@field_names.362 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.361, i64 11 }] +@str.363 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.364 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.365 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.366 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.367 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.368 = private constant [5 x i8] c"next\00" +@fld.str.369 = private constant [4 x i8] c"cap\00" +@field_names.370 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.368, i64 4 }, { ptr, i64 } { ptr @fld.str.369, i64 3 }] +@str.371 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.372 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.373 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.374 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.375 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.376 = private constant [4 x i8] c"ctx\00" +@fld.str.377 = private constant [6 x i8] c"alloc\00" +@fld.str.378 = private constant [8 x i8] c"dealloc\00" +@field_names.379 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.376, i64 3 }, { ptr, i64 } { ptr @fld.str.377, i64 5 }, { ptr, i64 } { ptr @fld.str.378, i64 7 }] +@str.380 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.381 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.382 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.383 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.384 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.385 = private constant [6 x i8] c"first\00" +@fld.str.386 = private constant [10 x i8] c"end_index\00" +@fld.str.387 = private constant [7 x i8] c"parent\00" +@field_names.388 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.385, i64 5 }, { ptr, i64 } { ptr @fld.str.386, i64 9 }, { ptr, i64 } { ptr @fld.str.387, i64 6 }] +@str.389 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.390 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.391 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.392 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.393 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.394 = private constant [4 x i8] c"buf\00" +@fld.str.395 = private constant [4 x i8] c"len\00" +@fld.str.396 = private constant [4 x i8] c"pos\00" +@field_names.397 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.394, i64 3 }, { ptr, i64 } { ptr @fld.str.395, i64 3 }, { ptr, i64 } { ptr @fld.str.396, i64 3 }] +@str.398 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.399 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.400 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.401 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.402 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.403 = private constant [7 x i8] c"parent\00" +@fld.str.404 = private constant [12 x i8] c"alloc_count\00" +@fld.str.405 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.406 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.407 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.403, i64 6 }, { ptr, i64 } { ptr @fld.str.404, i64 11 }, { ptr, i64 } { ptr @fld.str.405, i64 13 }, { ptr, i64 } { ptr @fld.str.406, i64 17 }] +@str.408 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.409 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.410 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.412 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.413 = private constant [10 x i8] c"allocator\00" +@fld.str.414 = private constant [5 x i8] c"data\00" +@field_names.415 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.413, i64 9 }, { ptr, i64 } { ptr @fld.str.414, i64 4 }] +@str.416 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.417 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.418 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.420 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.421 = private constant [3 x i8] c"fd\00" +@field_names.422 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.421, i64 2 }] +@str.423 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.424 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.425 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.426 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.427 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.428 = private constant [5 x i8] c"file\00" +@fld.str.429 = private constant [5 x i8] c"line\00" +@fld.str.430 = private constant [4 x i8] c"col\00" +@fld.str.431 = private constant [5 x i8] c"func\00" +@fld.str.432 = private constant [10 x i8] c"line_text\00" +@field_names.433 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.428, i64 4 }, { ptr, i64 } { ptr @fld.str.429, i64 4 }, { ptr, i64 } { ptr @fld.str.430, i64 3 }, { ptr, i64 } { ptr @fld.str.431, i64 4 }, { ptr, i64 } { ptr @fld.str.432, i64 9 }] +@str.434 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.435 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.436 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.437 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.438 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.439 = private constant [10 x i8] c"exit_code\00" +@fld.str.440 = private constant [7 x i8] c"stdout\00" +@field_names.441 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.439, i64 9 }, { ptr, i64 } { ptr @fld.str.440, i64 6 }] +@str.442 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.443 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.444 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.445 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.446 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.447 = private constant [8 x i8] c"sin_len\00" +@fld.str.448 = private constant [11 x i8] c"sin_family\00" +@fld.str.449 = private constant [9 x i8] c"sin_port\00" +@fld.str.450 = private constant [9 x i8] c"sin_addr\00" +@fld.str.451 = private constant [9 x i8] c"sin_zero\00" +@field_names.452 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.447, i64 7 }, { ptr, i64 } { ptr @fld.str.448, i64 10 }, { ptr, i64 } { ptr @fld.str.449, i64 8 }, { ptr, i64 } { ptr @fld.str.450, i64 8 }, { ptr, i64 } { ptr @fld.str.451, i64 8 }] +@str.453 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.454 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.455 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.456 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.457 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.458 = private constant [6 x i8] c"items\00" +@fld.str.459 = private constant [4 x i8] c"len\00" +@fld.str.460 = private constant [4 x i8] c"cap\00" +@field_names.461 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.458, i64 5 }, { ptr, i64 } { ptr @fld.str.459, i64 3 }, { ptr, i64 } { ptr @fld.str.460, i64 3 }] +@str.462 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.463 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.464 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.465 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.466 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.467 = private constant [6 x i8] c"items\00" +@fld.str.468 = private constant [4 x i8] c"len\00" +@fld.str.469 = private constant [4 x i8] c"cap\00" +@field_names.470 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.467, i64 5 }, { ptr, i64 } { ptr @fld.str.468, i64 3 }, { ptr, i64 } { ptr @fld.str.469, i64 3 }] +@str.471 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.472 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.473 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.474 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.475 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.476 = private constant [4 x i8] c"key\00" +@fld.str.477 = private constant [4 x i8] c"val\00" +@field_names.478 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.476, i64 3 }, { ptr, i64 } { ptr @fld.str.477, i64 3 }] +@str.479 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.480 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.481 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.482 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.483 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.484 = private constant [4 x i8] c"dst\00" +@fld.str.485 = private constant [4 x i8] c"pos\00" +@fld.str.486 = private constant [5 x i8] c"file\00" +@field_names.487 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.484, i64 3 }, { ptr, i64 } { ptr @fld.str.485, i64 3 }, { ptr, i64 } { ptr @fld.str.486, i64 4 }] +@str.488 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.489 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.490 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.491 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.492 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.493 = private constant [4 x i8] c"src\00" +@fld.str.494 = private constant [4 x i8] c"pos\00" +@fld.str.495 = private constant [6 x i8] c"alloc\00" +@field_names.496 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.493, i64 3 }, { ptr, i64 } { ptr @fld.str.494, i64 3 }, { ptr, i64 } { ptr @fld.str.495, i64 5 }] +@str.497 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.498 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.499 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.500 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.501 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.502 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.503 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.504 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.505 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.506 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.507 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.508 = private constant [5 x i8] c"name\00" +@fld.str.509 = private constant [12 x i8] c"takes_value\00" +@fld.str.510 = private constant [9 x i8] c"required\00" +@field_names.511 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.508, i64 4 }, { ptr, i64 } { ptr @fld.str.509, i64 11 }, { ptr, i64 } { ptr @fld.str.510, i64 8 }] +@str.512 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.513 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.514 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.515 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.516 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.517 = private constant [6 x i8] c"group\00" +@fld.str.518 = private constant [8 x i8] c"command\00" +@fld.str.519 = private constant [6 x i8] c"flags\00" +@field_names.520 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.517, i64 5 }, { ptr, i64 } { ptr @fld.str.518, i64 7 }, { ptr, i64 } { ptr @fld.str.519, i64 5 }] +@str.521 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.522 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.523 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.524 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.525 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.526 = private constant [4 x i8] c"set\00" +@fld.str.527 = private constant [6 x i8] c"value\00" +@field_names.528 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.526, i64 3 }, { ptr, i64 } { ptr @fld.str.527, i64 5 }] +@str.529 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.530 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.531 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.532 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.533 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.534 = private constant [6 x i8] c"index\00" +@fld.str.535 = private constant [6 x i8] c"token\00" +@field_names.536 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.534, i64 5 }, { ptr, i64 } { ptr @fld.str.535, i64 5 }] +@str.537 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.538 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.539 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.540 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.541 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.542 = private constant [6 x i8] c"group\00" +@fld.str.543 = private constant [8 x i8] c"command\00" +@fld.str.544 = private constant [10 x i8] c"cmd_index\00" +@fld.str.545 = private constant [5 x i8] c"json\00" +@fld.str.546 = private constant [5 x i8] c"rest\00" +@fld.str.547 = private constant [5 x i8] c"spec\00" +@fld.str.548 = private constant [7 x i8] c"values\00" +@field_names.549 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.542, i64 5 }, { ptr, i64 } { ptr @fld.str.543, i64 7 }, { ptr, i64 } { ptr @fld.str.544, i64 9 }, { ptr, i64 } { ptr @fld.str.545, i64 4 }, { ptr, i64 } { ptr @fld.str.546, i64 4 }, { ptr, i64 } { ptr @fld.str.547, i64 4 }, { ptr, i64 } { ptr @fld.str.548, i64 6 }] +@str.550 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.551 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.552 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.553 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.554 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.555 = private constant [2 x i8] c"h\00" +@fld.str.556 = private constant [4 x i8] c"buf\00" +@fld.str.557 = private constant [8 x i8] c"buf_len\00" +@fld.str.558 = private constant [10 x i8] c"total_len\00" +@field_names.559 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.555, i64 1 }, { ptr, i64 } { ptr @fld.str.556, i64 3 }, { ptr, i64 } { ptr @fld.str.557, i64 7 }, { ptr, i64 } { ptr @fld.str.558, i64 9 }] +@str.560 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.562 = private constant [5 x i8] c"read\00" +@fld.str.563 = private constant [6 x i8] c"write\00" +@fld.str.564 = private constant [7 x i8] c"append\00" +@fld.str.565 = private constant [11 x i8] c"read_write\00" +@field_names.566 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.562, i64 4 }, { ptr, i64 } { ptr @fld.str.563, i64 5 }, { ptr, i64 } { ptr @fld.str.564, i64 6 }, { ptr, i64 } { ptr @fld.str.565, i64 10 }] +@str.567 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.570 = private constant [4 x i8] c"set\00" +@fld.str.571 = private constant [8 x i8] c"current\00" +@fld.str.572 = private constant [4 x i8] c"end\00" +@field_names.573 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.570, i64 3 }, { ptr, i64 } { ptr @fld.str.571, i64 7 }, { ptr, i64 } { ptr @fld.str.572, i64 3 }] +@str.574 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.575 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.576 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.577 = private constant [6 x i8] c"null_\00" +@fld.str.578 = private constant [6 x i8] c"bool_\00" +@fld.str.579 = private constant [5 x i8] c"int_\00" +@fld.str.580 = private constant [4 x i8] c"str\00" +@fld.str.581 = private constant [6 x i8] c"array\00" +@fld.str.582 = private constant [7 x i8] c"object\00" +@field_names.583 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.577, i64 5 }, { ptr, i64 } { ptr @fld.str.578, i64 5 }, { ptr, i64 } { ptr @fld.str.579, i64 4 }, { ptr, i64 } { ptr @fld.str.580, i64 3 }, { ptr, i64 } { ptr @fld.str.581, i64 5 }, { ptr, i64 } { ptr @fld.str.582, i64 6 }] +@str.584 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.585 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.586 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.587 = private constant [6 x i8] c"macos\00" +@fld.str.588 = private constant [6 x i8] c"linux\00" +@fld.str.589 = private constant [8 x i8] c"windows\00" +@fld.str.590 = private constant [5 x i8] c"wasm\00" +@fld.str.591 = private constant [4 x i8] c"ios\00" +@fld.str.592 = private constant [8 x i8] c"android\00" +@fld.str.593 = private constant [8 x i8] c"unknown\00" +@field_names.594 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.587, i64 5 }, { ptr, i64 } { ptr @fld.str.588, i64 5 }, { ptr, i64 } { ptr @fld.str.589, i64 7 }, { ptr, i64 } { ptr @fld.str.590, i64 4 }, { ptr, i64 } { ptr @fld.str.591, i64 3 }, { ptr, i64 } { ptr @fld.str.592, i64 7 }, { ptr, i64 } { ptr @fld.str.593, i64 7 }] +@str.595 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.596 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.597 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.598 = private constant [8 x i8] c"aarch64\00" +@fld.str.599 = private constant [7 x i8] c"x86_64\00" +@fld.str.600 = private constant [7 x i8] c"wasm32\00" +@fld.str.601 = private constant [7 x i8] c"wasm64\00" +@fld.str.602 = private constant [8 x i8] c"unknown\00" +@field_names.603 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.598, i64 7 }, { ptr, i64 } { ptr @fld.str.599, i64 6 }, { ptr, i64 } { ptr @fld.str.600, i64 6 }, { ptr, i64 } { ptr @fld.str.601, i64 6 }, { ptr, i64 } { ptr @fld.str.602, i64 7 }] +@str.604 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.608 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.609 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.611 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.612 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.614 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.617 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.618 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.620 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.623 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.624 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.626 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.627 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.628 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.629 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.630 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.631 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.632 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.633 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.634 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.635 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.636 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.637 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.638 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.639 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.640 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.641 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.642 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.643 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.644 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.645 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.646 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.647 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.648 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.649 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.650 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.651 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.652 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.653 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.654 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.655 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.656 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.657 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.658 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.659 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.660 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.661 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.662 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.663 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.664 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.665 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.666 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.667 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.668 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.669 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.670 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.671 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.672 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.673 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.674 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.675 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.677 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.678 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.679 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.680 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.681 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.682 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.683 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.684 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.685 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.686 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.687 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.688 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.689 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.690 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.691 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.692 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.693 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.694 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.695 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.696 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.698 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.699 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.700 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.701 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.702 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.703 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.704 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.705 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.706 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.707 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.708 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.709 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.710 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.711 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.712 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.713 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.714 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.715 = private unnamed_addr constant [11 x i8] c"*error_set\00", align 1 +@str.716 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.718 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.719 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.722 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.723 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.724 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.725 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.728 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.729 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.730 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.731 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.732 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.733 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.734 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.735 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -499,7 +851,7 @@ entry: br i1 %icmp, label %if.then.68, label %if.merge.69 if.then.68: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.126, i64 1 } if.merge.69: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -626,7 +978,7 @@ if.else.91: ; preds = %entry br label %if.merge.92 if.merge.92: ; preds = %if.else.91, %if.then.90 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.90 ], [ { ptr @str.23, i64 5 }, %if.else.91 ] + %bp = phi { ptr, i64 } [ { ptr @str.127, i64 4 }, %if.then.90 ], [ { ptr @str.128, i64 5 }, %if.else.91 ] ret { ptr, i64 } %bp } @@ -795,38 +1147,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.216 + br label %while.hdr.383 -while.hdr.216: ; preds = %if.merge.221, %entry +while.hdr.383: ; preds = %if.merge.388, %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.217, label %while.exit.218 + br i1 %icmp, label %while.body.384, label %while.exit.385 -while.body.217: ; preds = %while.hdr.216 +while.body.384: ; preds = %while.hdr.383 %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.219, label %if.else.220 + br i1 %icmpN, label %if.then.386, label %if.else.387 -while.exit.218: ; preds = %while.hdr.216 +while.exit.385: ; preds = %while.hdr.383 ret void -if.then.219: ; preds = %while.body.217 +if.then.386: ; preds = %while.body.384 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.221 + br label %if.merge.388 -if.else.220: ; preds = %while.body.217 +if.else.387: ; preds = %while.body.384 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.221 + br label %if.merge.388 -if.merge.221: ; preds = %if.else.220, %if.then.219 - %bp = phi i64 [ %addN, %if.then.219 ], [ %addN, %if.else.220 ] +if.merge.388: ; preds = %if.else.387, %if.then.386 + %bp = phi i64 [ %addN, %if.then.386 ], [ %addN, %if.else.387 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -839,7 +1191,7 @@ if.merge.221: ; preds = %if.else.220, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.216 + br label %while.hdr.383 } ; Function Attrs: nounwind @@ -957,12 +1309,12 @@ entry: 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.214, label %if.merge.215 + br i1 %icmp, label %if.then.381, label %if.merge.382 -if.then.214: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.381: ; preds = %entry + ret { ptr, i64 } { ptr @str.129, i64 1 } -if.merge.215: ; preds = %entry +if.merge.382: ; 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 @@ -993,14 +1345,14 @@ if.merge.215: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.222 + br label %while.hdr.389 -while.hdr.222: ; preds = %if.merge.226, %if.merge.215 +while.hdr.389: ; preds = %if.merge.393, %if.merge.382 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.223, label %while.exit.224 + br i1 %icmpN, label %while.body.390, label %while.exit.391 -while.body.223: ; preds = %while.hdr.222 +while.body.390: ; preds = %while.hdr.389 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1008,9 +1360,9 @@ while.body.223: ; preds = %while.hdr.222 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.225, label %if.merge.226 + br i1 %icmpN, label %if.then.392, label %if.merge.393 -while.exit.224: ; preds = %if.then.225, %while.hdr.222 +while.exit.391: ; preds = %if.then.392, %while.hdr.389 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1018,14 +1370,14 @@ while.exit.224: ; preds = %if.then.225, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.225: ; preds = %while.body.223 - br label %while.exit.224 +if.then.392: ; preds = %while.body.390 + br label %while.exit.391 -if.merge.226: ; preds = %while.body.223 +if.merge.393: ; preds = %while.body.390 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.222 + br label %while.hdr.389 } ; Function Attrs: nounwind @@ -1102,13 +1454,15 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1141,12 +1495,43 @@ entry: i64 30, label %match.arm.55 i64 32, label %match.arm.55 i64 34, label %match.arm.55 - i64 37, label %match.arm.57 - i64 38, label %match.arm.57 + i64 39, label %match.arm.55 + i64 43, label %match.arm.55 + i64 45, label %match.arm.55 + i64 48, label %match.arm.55 + i64 52, label %match.arm.55 + i64 53, label %match.arm.55 + i64 55, label %match.arm.55 + i64 61, label %match.arm.55 + i64 66, label %match.arm.55 + i64 72, label %match.arm.55 + i64 76, label %match.arm.55 + i64 78, label %match.arm.55 + i64 79, label %match.arm.55 + i64 80, label %match.arm.55 + i64 82, label %match.arm.55 + i64 89, label %match.arm.55 + i64 37, label %match.arm.56 + i64 38, label %match.arm.56 + i64 54, label %match.arm.56 + i64 70, label %match.arm.56 + i64 71, label %match.arm.56 + i64 51, label %match.arm.57 + i64 64, label %match.arm.57 + i64 75, label %match.arm.57 + i64 93, label %match.arm.57 + i64 94, label %match.arm.57 i64 35, label %match.arm.59 - i64 47, label %match.arm.59 + i64 81, label %match.arm.59 + i64 87, label %match.arm.59 + i64 88, label %match.arm.59 + i64 92, label %match.arm.59 + i64 101, label %match.arm.59 i64 36, label %match.arm.60 - i64 45, label %match.arm.60 + i64 60, label %match.arm.60 + i64 77, label %match.arm.60 + i64 85, label %match.arm.60 + i64 99, label %match.arm.60 i64 18, label %match.arm.61 i64 21, label %match.arm.61 i64 23, label %match.arm.61 @@ -1155,26 +1540,42 @@ entry: i64 29, label %match.arm.61 i64 31, label %match.arm.61 i64 33, label %match.arm.61 - i64 39, label %match.arm.61 i64 40, label %match.arm.61 - i64 41, label %match.arm.61 - i64 42, label %match.arm.61 - i64 43, label %match.arm.61 i64 44, label %match.arm.61 - i64 46, label %match.arm.61 - i64 48, label %match.arm.61 + i64 47, label %match.arm.61 i64 49, label %match.arm.61 i64 50, label %match.arm.61 - i64 51, label %match.arm.61 + i64 56, label %match.arm.61 + i64 57, label %match.arm.61 + i64 58, label %match.arm.61 + i64 59, label %match.arm.61 + i64 62, label %match.arm.61 + i64 67, label %match.arm.61 + i64 74, label %match.arm.61 + i64 83, label %match.arm.61 + i64 86, label %match.arm.61 + i64 90, label %match.arm.61 + i64 95, label %match.arm.61 + i64 96, label %match.arm.61 + i64 97, label %match.arm.61 + i64 98, label %match.arm.61 + i64 100, label %match.arm.61 + i64 102, label %match.arm.61 + i64 103, label %match.arm.61 + i64 104, label %match.arm.61 + i64 41, label %match.arm.62 + i64 42, label %match.arm.62 + i64 46, label %match.arm.62 + i64 91, label %match.arm.62 i64 13, label %match.arm.63 ] -match.merge.49: ; preds = %dispatch.merge.190, %dispatch.merge.176, %dispatch.merge.162, %dispatch.merge.106, %float.merge.95, %if.merge.67, %match.unr.64, %match.arm.63, %match.arm.57, %match.arm.53, %match.arm.52, %match.arm.50 +match.merge.49: ; preds = %dispatch.merge.484, %dispatch.merge.345, %dispatch.merge.313, %dispatch.merge.275, %dispatch.merge.258, %dispatch.merge.106, %float.merge.95, %if.merge.67, %match.unr.64, %match.arm.63, %match.arm.57, %match.arm.53, %match.arm.52, %match.arm.50 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.50: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.131, i64 0 }, ptr %allocaN, align 8 br label %match.merge.49 match.arm.51: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1183,7 +1584,7 @@ match.arm.51: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [76 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [163 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.65, label %if.else.66 @@ -1211,7 +1612,7 @@ match.arm.54: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.93, label %fN.unbox.94 -match.arm.55: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.55: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1225,19 +1626,44 @@ match.arm.55: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.114 i64 32, label %dispatch.case.115 i64 34, label %dispatch.case.116 + i64 39, label %dispatch.case.117 + i64 43, label %dispatch.case.118 + i64 45, label %dispatch.case.119 + i64 48, label %dispatch.case.120 + i64 52, label %dispatch.case.121 + i64 53, label %dispatch.case.122 + i64 55, label %dispatch.case.123 + i64 61, label %dispatch.case.124 + i64 66, label %dispatch.case.125 + i64 72, label %dispatch.case.126 + i64 76, label %dispatch.case.127 + i64 78, label %dispatch.case.128 + i64 79, label %dispatch.case.129 + i64 80, label %dispatch.case.130 + i64 82, label %dispatch.case.131 + i64 89, label %dispatch.case.132 ] -match.arm.56: ; No predecessors! - unreachable - -match.arm.57: ; preds = %entry, %entry +match.arm.56: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw21 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw21 to i32 + switch i64 %ua.raw20, label %dispatch.default.259 [ + i64 37, label %dispatch.case.260 + i64 38, label %dispatch.case.261 + i64 54, label %dispatch.case.262 + i64 70, label %dispatch.case.263 + i64 71, label %dispatch.case.264 + ] + +match.arm.57: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [3 x { ptr, i64 }], ptr @tag_names, i64 0, i64 %etn.idx + %etn.gep = getelementptr inbounds [16 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.49 @@ -1245,60 +1671,87 @@ match.arm.57: ; preds = %entry, %entry match.arm.58: ; No predecessors! unreachable -match.arm.59: ; preds = %entry, %entry - %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 - %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw25, label %dispatch.default.163 [ - i64 35, label %dispatch.case.164 - i64 47, label %dispatch.case.165 - ] - -match.arm.60: ; preds = %entry, %entry +match.arm.59: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw29, label %dispatch.default.177 [ - i64 36, label %dispatch.case.178 - i64 45, label %dispatch.case.179 + switch i64 %ua.raw29, label %dispatch.default.276 [ + i64 35, label %dispatch.case.277 + i64 81, label %dispatch.case.278 + i64 87, label %dispatch.case.279 + i64 88, label %dispatch.case.280 + i64 92, label %dispatch.case.281 + i64 101, label %dispatch.case.282 ] -match.arm.61: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.60: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw33, label %dispatch.default.191 [ - i64 18, label %dispatch.case.192 - i64 21, label %dispatch.case.193 - i64 23, label %dispatch.case.194 - i64 25, label %dispatch.case.195 - i64 28, label %dispatch.case.196 - i64 29, label %dispatch.case.197 - i64 31, label %dispatch.case.198 - i64 33, label %dispatch.case.199 - i64 39, label %dispatch.case.200 - i64 40, label %dispatch.case.201 - i64 41, label %dispatch.case.202 - i64 42, label %dispatch.case.203 - i64 43, label %dispatch.case.204 - i64 44, label %dispatch.case.205 - i64 46, label %dispatch.case.206 - i64 48, label %dispatch.case.207 - i64 49, label %dispatch.case.208 - i64 50, label %dispatch.case.209 - i64 51, label %dispatch.case.210 + switch i64 %ua.raw33, label %dispatch.default.314 [ + i64 36, label %dispatch.case.315 + i64 60, label %dispatch.case.316 + i64 77, label %dispatch.case.317 + i64 85, label %dispatch.case.318 + i64 99, label %dispatch.case.319 ] -match.arm.62: ; No predecessors! - unreachable +match.arm.61: ; 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 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw37, label %dispatch.default.346 [ + i64 18, label %dispatch.case.347 + i64 21, label %dispatch.case.348 + i64 23, label %dispatch.case.349 + i64 25, label %dispatch.case.350 + i64 28, label %dispatch.case.351 + i64 29, label %dispatch.case.352 + i64 31, label %dispatch.case.353 + i64 33, label %dispatch.case.354 + i64 40, label %dispatch.case.355 + i64 44, label %dispatch.case.356 + i64 47, label %dispatch.case.357 + i64 49, label %dispatch.case.358 + i64 50, label %dispatch.case.359 + i64 56, label %dispatch.case.360 + i64 57, label %dispatch.case.361 + i64 58, label %dispatch.case.362 + i64 59, label %dispatch.case.363 + i64 62, label %dispatch.case.364 + i64 67, label %dispatch.case.365 + i64 74, label %dispatch.case.366 + i64 83, label %dispatch.case.367 + i64 86, label %dispatch.case.368 + i64 90, label %dispatch.case.369 + i64 95, label %dispatch.case.370 + i64 96, label %dispatch.case.371 + i64 97, label %dispatch.case.372 + i64 98, label %dispatch.case.373 + i64 100, label %dispatch.case.374 + i64 102, label %dispatch.case.375 + i64 103, label %dispatch.case.376 + i64 104, label %dispatch.case.377 + ] + +match.arm.62: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.485 [ + i64 41, label %dispatch.case.486 + i64 42, label %dispatch.case.487 + i64 46, label %dispatch.case.488 + i64 91, label %dispatch.case.489 + ] match.arm.63: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag37 = extractvalue { i64, i64 } %loadN, 0 - %refl.val38 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype39 = icmp eq i64 %refl.tag37, 13 - %refl.tid40 = select i1 %refl.istype39, i64 %refl.val38, i64 %refl.tag37 - %tn.gep = getelementptr inbounds [76 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid40 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [163 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.49 @@ -1308,15 +1761,15 @@ match.unr.64: ; preds = %entry if.then.65: ; preds = %match.arm.51 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw42) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.67 if.else.66: ; preds = %match.arm.51 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw45 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw45) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.67 @@ -1324,16 +1777,16 @@ if.merge.67: ; preds = %if.else.66, %if.the br label %match.merge.49 f32.unbox.93: ; preds = %match.arm.54 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw47 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.95 f64.unbox.94: ; preds = %match.arm.54 - %ua.raw48 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw48 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.95 @@ -1343,278 +1796,628 @@ float.merge.95: ; preds = %fN.unbox.94, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.49 -dispatch.merge.106: ; preds = %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.default.107 +dispatch.merge.106: ; preds = %dispatch.case.132, %dispatch.case.131, %dispatch.case.130, %dispatch.case.129, %dispatch.case.128, %dispatch.case.127, %dispatch.case.126, %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.default.107 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.49 dispatch.default.107: ; preds = %match.arm.55 - store { ptr, i64 } { ptr @str.104, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.108: ; preds = %match.arm.55 - %ua.raw52 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr53 = inttoptr i64 %ua.raw52 to ptr - %ua.load54 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr53, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load54) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.109: ; preds = %match.arm.55 - %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr57 = inttoptr i64 %ua.raw56 to ptr - %ua.load58 = load {}, ptr %ua.ptr57, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load58) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.110: ; preds = %match.arm.55 - %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr - %ua.load62 = load { i64 }, ptr %ua.ptr61, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load62) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.111: ; preds = %match.arm.55 - %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr - %ua.load66 = load { ptr, i64 }, ptr %ua.ptr65, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load66) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.112: ; preds = %match.arm.55 - %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr - %ua.load70 = load { ptr, ptr, ptr }, ptr %ua.ptr69, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load70) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.113: ; preds = %match.arm.55 - %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr - %ua.load74 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr73, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load74) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.114: ; preds = %match.arm.55 - %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr - %ua.load78 = load { ptr, i64, i64 }, ptr %ua.ptr77, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load78) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.115: ; preds = %match.arm.55 - %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr - %ua.load82 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr81, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load82) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 dispatch.case.116: ; preds = %match.arm.55 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load86) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.106 -dispatch.merge.162: ; preds = %dispatch.case.165, %dispatch.case.164, %dispatch.default.163 +dispatch.case.117: ; preds = %match.arm.55 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.118: ; preds = %match.arm.55 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.119: ; preds = %match.arm.55 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.120: ; preds = %match.arm.55 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.121: ; preds = %match.arm.55 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.122: ; preds = %match.arm.55 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.123: ; preds = %match.arm.55 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.124: ; preds = %match.arm.55 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.125: ; preds = %match.arm.55 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.126: ; preds = %match.arm.55 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.127: ; preds = %match.arm.55 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.128: ; preds = %match.arm.55 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.129: ; preds = %match.arm.55 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.130: ; preds = %match.arm.55 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.131: ; preds = %match.arm.55 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.case.132: ; preds = %match.arm.55 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.106 + +dispatch.merge.258: ; preds = %dispatch.case.264, %dispatch.case.263, %dispatch.case.262, %dispatch.case.261, %dispatch.case.260, %dispatch.default.259 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.49 -dispatch.default.163: ; preds = %match.arm.59 - store { ptr, i64 } { ptr @str.105, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.162 +dispatch.default.259: ; preds = %match.arm.56 + store { ptr, i64 } { ptr @str.310, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.258 -dispatch.case.164: ; preds = %match.arm.59 - %ua.raw89 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr90 = inttoptr i64 %ua.raw89 to ptr - %ua.load91 = load [4 x i64], ptr %ua.ptr90, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load91) +dispatch.case.260: ; preds = %match.arm.56 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.162 + br label %dispatch.merge.258 -dispatch.case.165: ; preds = %match.arm.59 - %ua.raw93 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr94 = inttoptr i64 %ua.raw93 to ptr - %ua.load95 = load [1 x { i64, i64 }], ptr %ua.ptr94, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load95) +dispatch.case.261: ; preds = %match.arm.56 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.162 + br label %dispatch.merge.258 -dispatch.merge.176: ; preds = %dispatch.case.179, %dispatch.case.178, %dispatch.default.177 +dispatch.case.262: ; preds = %match.arm.56 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.258 + +dispatch.case.263: ; preds = %match.arm.56 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.258 + +dispatch.case.264: ; preds = %match.arm.56 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.258 + +dispatch.merge.275: ; preds = %dispatch.case.282, %dispatch.case.281, %dispatch.case.280, %dispatch.case.279, %dispatch.case.278, %dispatch.case.277, %dispatch.default.276 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.49 -dispatch.default.177: ; preds = %match.arm.60 - store { ptr, i64 } { ptr @str.106, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.176 +dispatch.default.276: ; preds = %match.arm.59 + store { ptr, i64 } { ptr @str.311, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.275 -dispatch.case.178: ; preds = %match.arm.60 - %ua.raw98 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr99 = inttoptr i64 %ua.raw98 to ptr - %ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load100) +dispatch.case.277: ; preds = %match.arm.59 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.176 + br label %dispatch.merge.275 -dispatch.case.179: ; preds = %match.arm.60 - %ua.raw102 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr103 = inttoptr i64 %ua.raw102 to ptr - %ua.load104 = load { ptr, i64 }, ptr %ua.ptr103, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load104) +dispatch.case.278: ; preds = %match.arm.59 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.176 + br label %dispatch.merge.275 -dispatch.merge.190: ; preds = %dispatch.case.210, %dispatch.case.209, %dispatch.case.208, %dispatch.case.207, %dispatch.case.206, %dispatch.case.205, %dispatch.case.204, %dispatch.case.203, %dispatch.case.202, %dispatch.case.201, %dispatch.case.200, %dispatch.case.199, %dispatch.case.198, %dispatch.case.197, %dispatch.case.196, %dispatch.case.195, %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.default.191 +dispatch.case.279: ; preds = %match.arm.59 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.275 + +dispatch.case.280: ; preds = %match.arm.59 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.275 + +dispatch.case.281: ; preds = %match.arm.59 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.275 + +dispatch.case.282: ; preds = %match.arm.59 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.275 + +dispatch.merge.313: ; preds = %dispatch.case.319, %dispatch.case.318, %dispatch.case.317, %dispatch.case.316, %dispatch.case.315, %dispatch.default.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.49 -dispatch.default.191: ; preds = %match.arm.61 - store { ptr, i64 } { ptr @str.107, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.190 +dispatch.default.314: ; preds = %match.arm.60 + store { ptr, i64 } { ptr @str.312, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.313 -dispatch.case.192: ; preds = %match.arm.61 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw107 to ptr +dispatch.case.315: ; preds = %match.arm.60 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr200 = inttoptr i64 %ua.raw199 to ptr + %ua.load201 = load { ptr, i64 }, ptr %ua.ptr200, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load201) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.313 + +dispatch.case.316: ; preds = %match.arm.60 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.313 + +dispatch.case.317: ; preds = %match.arm.60 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.313 + +dispatch.case.318: ; preds = %match.arm.60 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.313 + +dispatch.case.319: ; preds = %match.arm.60 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.313 + +dispatch.merge.345: ; preds = %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.case.352, %dispatch.case.351, %dispatch.case.350, %dispatch.case.349, %dispatch.case.348, %dispatch.case.347, %dispatch.default.346 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.49 + +dispatch.default.346: ; preds = %match.arm.61 + store { ptr, i64 } { ptr @str.313, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.347: ; preds = %match.arm.61 + %ua.raw220 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw220 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.193: ; preds = %match.arm.61 - %ua.raw109 = extractvalue { i64, i64 } %loadN, 1 - %iNp110 = inttoptr i64 %ua.raw109 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp110) +dispatch.case.348: ; preds = %match.arm.61 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %iNp223 = inttoptr i64 %ua.raw222 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp223) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.194: ; preds = %match.arm.61 - %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 - %iNp113 = inttoptr i64 %ua.raw112 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp113) +dispatch.case.349: ; preds = %match.arm.61 + %ua.raw225 = extractvalue { i64, i64 } %loadN, 1 + %iNp226 = inttoptr i64 %ua.raw225 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp226) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.195: ; preds = %match.arm.61 - %ua.raw115 = extractvalue { i64, i64 } %loadN, 1 - %iNp116 = inttoptr i64 %ua.raw115 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp116) +dispatch.case.350: ; preds = %match.arm.61 + %ua.raw228 = extractvalue { i64, i64 } %loadN, 1 + %iNp229 = inttoptr i64 %ua.raw228 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp229) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.196: ; preds = %match.arm.61 - %ua.raw118 = extractvalue { i64, i64 } %loadN, 1 - %iNp119 = inttoptr i64 %ua.raw118 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp119) +dispatch.case.351: ; preds = %match.arm.61 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %iNp232 = inttoptr i64 %ua.raw231 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp232) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.197: ; preds = %match.arm.61 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %iNp122 = inttoptr i64 %ua.raw121 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp122) +dispatch.case.352: ; preds = %match.arm.61 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.198: ; preds = %match.arm.61 - %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 - %iNp125 = inttoptr i64 %ua.raw124 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp125) +dispatch.case.353: ; preds = %match.arm.61 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.199: ; preds = %match.arm.61 - %ua.raw127 = extractvalue { i64, i64 } %loadN, 1 - %iNp128 = inttoptr i64 %ua.raw127 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp128) +dispatch.case.354: ; preds = %match.arm.61 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.200: ; preds = %match.arm.61 - %ua.raw130 = extractvalue { i64, i64 } %loadN, 1 - %iNp131 = inttoptr i64 %ua.raw130 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp131) +dispatch.case.355: ; preds = %match.arm.61 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.201: ; preds = %match.arm.61 - %ua.raw133 = extractvalue { i64, i64 } %loadN, 1 - %iNp134 = inttoptr i64 %ua.raw133 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp134) +dispatch.case.356: ; preds = %match.arm.61 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.202: ; preds = %match.arm.61 - %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 - %iNp137 = inttoptr i64 %ua.raw136 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp137) +dispatch.case.357: ; preds = %match.arm.61 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.203: ; preds = %match.arm.61 - %ua.raw139 = extractvalue { i64, i64 } %loadN, 1 - %iNp140 = inttoptr i64 %ua.raw139 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp140) +dispatch.case.358: ; preds = %match.arm.61 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.204: ; preds = %match.arm.61 - %ua.raw142 = extractvalue { i64, i64 } %loadN, 1 - %iNp143 = inttoptr i64 %ua.raw142 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp143) +dispatch.case.359: ; preds = %match.arm.61 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.205: ; preds = %match.arm.61 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp146) +dispatch.case.360: ; preds = %match.arm.61 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.206: ; preds = %match.arm.61 - %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp149) +dispatch.case.361: ; preds = %match.arm.61 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.207: ; preds = %match.arm.61 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp152) +dispatch.case.362: ; preds = %match.arm.61 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.208: ; preds = %match.arm.61 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp155) +dispatch.case.363: ; preds = %match.arm.61 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.209: ; preds = %match.arm.61 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp158) +dispatch.case.364: ; preds = %match.arm.61 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 -dispatch.case.210: ; preds = %match.arm.61 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp161) +dispatch.case.365: ; preds = %match.arm.61 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.345 + +dispatch.case.366: ; preds = %match.arm.61 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.367: ; preds = %match.arm.61 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp280) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.368: ; preds = %match.arm.61 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp283) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.369: ; preds = %match.arm.61 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp286) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.370: ; preds = %match.arm.61 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp289) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.371: ; preds = %match.arm.61 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.372: ; preds = %match.arm.61 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.373: ; preds = %match.arm.61 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.374: ; preds = %match.arm.61 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.375: ; preds = %match.arm.61 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.376: ; preds = %match.arm.61 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.case.377: ; preds = %match.arm.61 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.345 + +dispatch.merge.484: ; preds = %dispatch.case.489, %dispatch.case.488, %dispatch.case.487, %dispatch.case.486, %dispatch.default.485 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.49 + +dispatch.default.485: ; preds = %match.arm.62 + store { ptr, i64 } { ptr @str.314, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.484 + +dispatch.case.486: ; preds = %match.arm.62 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr314 = inttoptr i64 %ua.raw313 to ptr + %ua.load315 = load { { i32 }, i1 }, ptr %ua.ptr314, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load315) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.484 + +dispatch.case.487: ; preds = %match.arm.62 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { ptr, i64 }, i1 }, ptr %ua.ptr318, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.484 + +dispatch.case.488: ; preds = %match.arm.62 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.484 + +dispatch.case.489: ; preds = %match.arm.62 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { [64 x i8], i1 }, ptr %ua.ptr326, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.484 } ; Function Attrs: nounwind @@ -1623,7 +2426,7 @@ 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.108, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.315, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1719,7 +2522,7 @@ if.merge.23: ; preds = %if.merge.37, %if.me if.then.24: ; preds = %if.then.21 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.109, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, 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 @@ -1727,7 +2530,7 @@ if.then.24: ; preds = %if.then.21 %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.110, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, 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 @@ -1737,13 +2540,13 @@ if.then.24: ; preds = %if.then.21 %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.111, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.25 if.merge.25: ; preds = %if.then.24, %if.then.21 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.112, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, 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 @@ -1751,7 +2554,7 @@ if.merge.25: ; preds = %if.then.24, %if.the %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.113, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1765,7 +2568,7 @@ if.merge.25: ; preds = %if.then.24, %if.the if.then.35: ; preds = %if.else.22 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.114, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, 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 @@ -1773,7 +2576,7 @@ if.then.35: ; preds = %if.else.22 %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.115, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, 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 @@ -1784,7 +2587,7 @@ if.then.35: ; preds = %if.else.22 %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.116, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1841,7 +2644,7 @@ if.merge.43: ; preds = %if.merge.46, %if.el if.then.44: ; preds = %if.then.41 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.117, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, 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 @@ -1849,7 +2652,7 @@ if.then.44: ; preds = %if.then.41 %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.118, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, 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 @@ -1860,7 +2663,7 @@ if.then.44: ; preds = %if.then.41 %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.119, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1880,7 +2683,7 @@ if.merge.46: ; preds = %if.else.45, %if.the if.then.47: ; preds = %while.exit.14 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.120, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, 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 @@ -1888,7 +2691,7 @@ if.then.47: ; preds = %while.exit.14 %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.121, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.328, 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 @@ -1899,7 +2702,7 @@ if.then.47: ; preds = %while.exit.14 %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.122, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.329, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.48 @@ -1976,6 +2779,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i32 @leaf(ptr %0, i32 %1) #0 { entry: @@ -1987,7 +3528,7 @@ entry: br i1 %icmp, label %if.then.0, label %if.merge.1 if.then.0: ; preds = %entry - ret i32 1 + ret i32 14 if.merge.1: ; preds = %entry ret i32 0 @@ -2013,14 +3554,14 @@ try.ok.3: ; preds = %entry br i1 %icmpN, label %if.then.4, label %if.merge.5 if.then.4: ; preds = %try.ok.3 - ret i32 2 + ret i32 15 if.merge.5: ; preds = %try.ok.3 ret i32 0 } ; Function Attrs: nounwind -define internal i32 @run(ptr %0, i32 %1) #0 { +define internal i32 @run.125(ptr %0, i32 %1) #0 { entry: %alloca = alloca i32, align 4 store i32 %1, ptr %alloca, align 4 @@ -2039,13 +3580,13 @@ try.ok.7: ; preds = %entry ; Function Attrs: nounwind define i32 @main() #0 { entry: - %call = call i32 @run(ptr @__sx_default_context, i32 -1) + %call = call i32 @run.125(ptr @__sx_default_context, i32 -1) %alloca = alloca i32, align 4 store i32 %call, ptr %alloca, align 4 %allocaN = alloca i32, align 4 store i32 0, ptr %allocaN, align 4 %load = load i32, ptr %alloca, align 4 - %icmp = icmp eq i32 %load, 1 + %icmp = icmp eq i32 %load, 14 br i1 %icmp, label %if.then.8, label %if.merge.9 if.then.8: ; preds = %entry @@ -2056,7 +3597,7 @@ if.then.8: ; preds = %entry if.merge.9: ; preds = %if.then.8, %entry %loadN = load i32, ptr %alloca, align 4 - %icmpN = icmp eq i32 %loadN, 2 + %icmpN = icmp eq i32 %loadN, 15 br i1 %icmpN, label %if.then.10, label %if.merge.11 if.then.10: ; preds = %if.merge.9 @@ -2090,7 +3631,7 @@ entry: define internal void @print__ct_s5a624c50db282f36__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.133, i64 20 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.340, i64 20 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2106,7 +3647,7 @@ entry: %gepN = getelementptr inbounds { 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.134, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.341, 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 17) @@ -2134,7 +3675,7 @@ entry: ; 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.135, i64 20 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.342, i64 20 }) ret { ptr, i64 } %call } @@ -2145,35 +3686,35 @@ entry: %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.136, i64 15 }, { ptr, i64 } { ptr @str.137, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.343, i64 15 }, { ptr, i64 } { ptr @str.344, 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.117 + br label %while.hdr.133 -while.hdr.117: ; preds = %fv.merge, %entry +while.hdr.133: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.118, label %while.exit.119 + br i1 %icmp, label %while.body.134, label %while.exit.135 -while.body.118: ; preds = %while.hdr.117 +while.body.134: ; preds = %while.hdr.133 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.120, label %if.merge.121 + br i1 %icmpN, label %if.then.136, label %if.merge.137 -while.exit.119: ; preds = %while.hdr.117 +while.exit.135: ; preds = %while.hdr.133 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, i64 1 }) ret { ptr, i64 } %callN -if.then.120: ; preds = %while.body.118 +if.then.136: ; preds = %while.body.134 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.346, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.121 + br label %if.merge.137 -if.merge.121: ; preds = %if.then.120, %while.body.118 +if.merge.137: ; preds = %if.then.136, %while.body.134 %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 @@ -2181,7 +3722,7 @@ if.merge.121: ; preds = %if.then.120, %while %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.143, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.350, 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 @@ -2201,31 +3742,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.117 + br label %while.hdr.133 -fv.default: ; preds = %if.merge.121 +fv.default: ; preds = %if.merge.137 br label %fv.merge -fv.case: ; preds = %if.merge.121 +fv.case: ; preds = %if.merge.137 %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.121 +fv.case17: ; preds = %if.merge.137 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.121 +fv.case20: ; preds = %if.merge.137 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.121 +fv.case24: ; preds = %if.merge.137 %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 @@ -2238,43 +3779,43 @@ 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.144, i64 10 }, { ptr, i64 } { ptr @str.145, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.351, i64 10 }, { ptr, i64 } { ptr @str.352, 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.122 + br label %while.hdr.138 -while.hdr.122: ; preds = %if.merge.126, %entry +while.hdr.138: ; preds = %if.merge.142, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.123, label %while.exit.124 + br i1 %icmp, label %while.body.139, label %while.exit.140 -while.body.123: ; preds = %while.hdr.122 +while.body.139: ; preds = %while.hdr.138 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.125, label %if.merge.126 + br i1 %icmpN, label %if.then.141, label %if.merge.142 -while.exit.124: ; preds = %while.hdr.122 +while.exit.140: ; preds = %while.hdr.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.146, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.353, i64 1 }) ret { ptr, i64 } %callN -if.then.125: ; preds = %while.body.123 +if.then.141: ; preds = %while.body.139 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.147, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.354, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.126 + br label %if.merge.142 -if.merge.126: ; preds = %if.then.125, %while.body.123 +if.merge.142: ; preds = %if.then.141, %while.body.139 %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.148, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.355, 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.149, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.356, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2285,7 +3826,7 @@ if.merge.126: ; preds = %if.then.125, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.122 + br label %while.hdr.138 } ; Function Attrs: nounwind @@ -2293,43 +3834,43 @@ 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.150, i64 3 }, { ptr, i64 } { ptr @str.151, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.357, i64 3 }, { ptr, i64 } { ptr @str.358, 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.127 + br label %while.hdr.143 -while.hdr.127: ; preds = %fv.merge, %entry +while.hdr.143: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.128, label %while.exit.129 + br i1 %icmp, label %while.body.144, label %while.exit.145 -while.body.128: ; preds = %while.hdr.127 +while.body.144: ; preds = %while.hdr.143 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.130, label %if.merge.131 + br i1 %icmpN, label %if.then.146, label %if.merge.147 -while.exit.129: ; preds = %while.hdr.127 +while.exit.145: ; preds = %while.hdr.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, i64 1 }) ret { ptr, i64 } %callN -if.then.130: ; preds = %while.body.128 +if.then.146: ; preds = %while.body.144 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.153, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.131 + br label %if.merge.147 -if.merge.131: ; preds = %if.then.130, %while.body.128 +if.merge.147: ; preds = %if.then.146, %while.body.144 %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.155, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.362, 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.156, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.363, 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 @@ -2346,12 +3887,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.127 + br label %while.hdr.143 -fv.default: ; preds = %if.merge.131 +fv.default: ; preds = %if.merge.147 br label %fv.merge -fv.case: ; preds = %if.merge.131 +fv.case: ; preds = %if.merge.147 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2362,43 +3903,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.157, i64 10 }, { ptr, i64 } { ptr @str.158, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.364, i64 10 }, { ptr, i64 } { ptr @str.365, 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.132 + br label %while.hdr.148 -while.hdr.132: ; preds = %fv.merge, %entry +while.hdr.148: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.133, label %while.exit.134 + br i1 %icmp, label %while.body.149, label %while.exit.150 -while.body.133: ; preds = %while.hdr.132 +while.body.149: ; preds = %while.hdr.148 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.135, label %if.merge.136 + br i1 %icmpN, label %if.then.151, label %if.merge.152 -while.exit.134: ; preds = %while.hdr.132 +while.exit.150: ; preds = %while.hdr.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 1 }) ret { ptr, i64 } %callN -if.then.135: ; preds = %while.body.133 +if.then.151: ; preds = %while.body.149 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.160, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.136 + br label %if.merge.152 -if.merge.136: ; preds = %if.then.135, %while.body.133 +if.merge.152: ; preds = %if.then.151, %while.body.149 %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.163, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.370, 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.164, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.371, 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 @@ -2416,18 +3957,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.132 + br label %while.hdr.148 -fv.default: ; preds = %if.merge.136 +fv.default: ; preds = %if.merge.152 br label %fv.merge -fv.case: ; preds = %if.merge.136 +fv.case: ; preds = %if.merge.152 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.136 +fv.case17: ; preds = %if.merge.152 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2438,43 +3979,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.165, i64 9 }, { ptr, i64 } { ptr @str.166, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.372, i64 9 }, { ptr, i64 } { ptr @str.373, 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.137 + br label %while.hdr.153 -while.hdr.137: ; preds = %fv.merge, %entry +while.hdr.153: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.138, label %while.exit.139 + br i1 %icmp, label %while.body.154, label %while.exit.155 -while.body.138: ; preds = %while.hdr.137 +while.body.154: ; preds = %while.hdr.153 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.140, label %if.merge.141 + br i1 %icmpN, label %if.then.156, label %if.merge.157 -while.exit.139: ; preds = %while.hdr.137 +while.exit.155: ; preds = %while.hdr.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.374, i64 1 }) ret { ptr, i64 } %callN -if.then.140: ; preds = %while.body.138 +if.then.156: ; preds = %while.body.154 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.141 + br label %if.merge.157 -if.merge.141: ; preds = %if.then.140, %while.body.138 +if.merge.157: ; preds = %if.then.156, %while.body.154 %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.172, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.379, 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.173, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.380, 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 @@ -2493,24 +4034,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.137 + br label %while.hdr.153 -fv.default: ; preds = %if.merge.141 +fv.default: ; preds = %if.merge.157 br label %fv.merge -fv.case: ; preds = %if.merge.141 +fv.case: ; preds = %if.merge.157 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.141 +fv.case17: ; preds = %if.merge.157 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.141 +fv.case21: ; preds = %if.merge.157 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2523,43 +4064,43 @@ 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.174, i64 5 }, { ptr, i64 } { ptr @str.175, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.381, i64 5 }, { ptr, i64 } { ptr @str.382, 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.142 + br label %while.hdr.158 -while.hdr.142: ; preds = %fv.merge, %entry +while.hdr.158: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.143, label %while.exit.144 + br i1 %icmp, label %while.body.159, label %while.exit.160 -while.body.143: ; preds = %while.hdr.142 +while.body.159: ; preds = %while.hdr.158 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.145, label %if.merge.146 + br i1 %icmpN, label %if.then.161, label %if.merge.162 -while.exit.144: ; preds = %while.hdr.142 +while.exit.160: ; preds = %while.hdr.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.383, i64 1 }) ret { ptr, i64 } %callN -if.then.145: ; preds = %while.body.143 +if.then.161: ; preds = %while.body.159 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.384, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.146 + br label %if.merge.162 -if.merge.146: ; preds = %if.then.145, %while.body.143 +if.merge.162: ; preds = %if.then.161, %while.body.159 %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.181, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.388, 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.182, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.389, 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 @@ -2578,23 +4119,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.142 + br label %while.hdr.158 -fv.default: ; preds = %if.merge.146 +fv.default: ; preds = %if.merge.162 br label %fv.merge -fv.case: ; preds = %if.merge.146 +fv.case: ; preds = %if.merge.162 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.146 +fv.case17: ; preds = %if.merge.162 %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.146 +fv.case20: ; preds = %if.merge.162 %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 @@ -2607,43 +4148,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.183, i64 8 }, { ptr, i64 } { ptr @str.184, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.390, i64 8 }, { ptr, i64 } { ptr @str.391, 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.147 + br label %while.hdr.163 -while.hdr.147: ; preds = %fv.merge, %entry +while.hdr.163: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.148, label %while.exit.149 + br i1 %icmp, label %while.body.164, label %while.exit.165 -while.body.148: ; preds = %while.hdr.147 +while.body.164: ; preds = %while.hdr.163 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.150, label %if.merge.151 + br i1 %icmpN, label %if.then.166, label %if.merge.167 -while.exit.149: ; preds = %while.hdr.147 +while.exit.165: ; preds = %while.hdr.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.185, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.392, i64 1 }) ret { ptr, i64 } %callN -if.then.150: ; preds = %while.body.148 +if.then.166: ; preds = %while.body.164 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.393, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.151 + br label %if.merge.167 -if.merge.151: ; preds = %if.then.150, %while.body.148 +if.merge.167: ; preds = %if.then.166, %while.body.164 %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.190, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.397, 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.191, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.398, 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 @@ -2662,23 +4203,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.147 + br label %while.hdr.163 -fv.default: ; preds = %if.merge.151 +fv.default: ; preds = %if.merge.167 br label %fv.merge -fv.case: ; preds = %if.merge.151 +fv.case: ; preds = %if.merge.167 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.151 +fv.case17: ; preds = %if.merge.167 %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.151 +fv.case20: ; preds = %if.merge.167 %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 @@ -2690,43 +4231,43 @@ 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.192, i64 17 }, { ptr, i64 } { ptr @str.193, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.399, i64 17 }, { ptr, i64 } { ptr @str.400, 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.152 + br label %while.hdr.168 -while.hdr.152: ; preds = %fv.merge, %entry +while.hdr.168: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.153, label %while.exit.154 + br i1 %icmp, label %while.body.169, label %while.exit.170 -while.body.153: ; preds = %while.hdr.152 +while.body.169: ; preds = %while.hdr.168 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.155, label %if.merge.156 + br i1 %icmpN, label %if.then.171, label %if.merge.172 -while.exit.154: ; preds = %while.hdr.152 +while.exit.170: ; preds = %while.hdr.168 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.194, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.401, i64 1 }) ret { ptr, i64 } %callN -if.then.155: ; preds = %while.body.153 +if.then.171: ; preds = %while.body.169 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.195, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.402, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.156 + br label %if.merge.172 -if.merge.156: ; preds = %if.then.155, %while.body.153 +if.merge.172: ; preds = %if.then.171, %while.body.169 %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.200, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.407, 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.201, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, 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 @@ -2746,29 +4287,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.152 + br label %while.hdr.168 -fv.default: ; preds = %if.merge.156 +fv.default: ; preds = %if.merge.172 br label %fv.merge -fv.case: ; preds = %if.merge.156 +fv.case: ; preds = %if.merge.172 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.156 +fv.case17: ; preds = %if.merge.172 %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.156 +fv.case20: ; preds = %if.merge.172 %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.156 +fv.case23: ; preds = %if.merge.172 %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 @@ -2780,43 +4321,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.202, i64 7 }, { ptr, i64 } { ptr @str.203, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.409, i64 7 }, { ptr, i64 } { ptr @str.410, 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.157 + br label %while.hdr.173 -while.hdr.157: ; preds = %fv.merge, %entry +while.hdr.173: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.158, label %while.exit.159 + br i1 %icmp, label %while.body.174, label %while.exit.175 -while.body.158: ; preds = %while.hdr.157 +while.body.174: ; preds = %while.hdr.173 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.160, label %if.merge.161 + br i1 %icmpN, label %if.then.176, label %if.merge.177 -while.exit.159: ; preds = %while.hdr.157 +while.exit.175: ; preds = %while.hdr.173 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.204, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, i64 1 }) ret { ptr, i64 } %callN -if.then.160: ; preds = %while.body.158 +if.then.176: ; preds = %while.body.174 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.205, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.161 + br label %if.merge.177 -if.merge.161: ; preds = %if.then.160, %while.body.158 +if.merge.177: ; preds = %if.then.176, %while.body.174 %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.208, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.415, 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.209, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.416, 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 %alloca, align 8 @@ -2834,25 +4375,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.157 + br label %while.hdr.173 -fv.default: ; preds = %if.merge.161 +fv.default: ; preds = %if.merge.177 br label %fv.merge -fv.case: ; preds = %if.merge.161 +fv.case: ; preds = %if.merge.177 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.161 +fv.case17: ; preds = %if.merge.177 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.417, i64 4 }, { ptr, i64 } { ptr @str.418, 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.178 + +while.hdr.178: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.179, label %while.exit.180 + +while.body.179: ; preds = %while.hdr.178 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.181, label %if.merge.182 + +while.exit.180: ; preds = %while.hdr.178 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.419, i64 1 }) + ret { ptr, i64 } %callN + +if.then.181: ; preds = %while.body.179 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.182 + +if.merge.182: ; preds = %if.then.181, %while.body.179 + %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.422, 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.423, 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.178 + +fv.default: ; preds = %if.merge.182 + br label %fv.merge + +fv.case: ; preds = %if.merge.182 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.424, i64 10 }, { ptr, i64 } { ptr @str.425, 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.183 + +while.hdr.183: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.184, label %while.exit.185 + +while.body.184: ; preds = %while.hdr.183 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.186, label %if.merge.187 + +while.exit.185: ; preds = %while.hdr.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.426, i64 1 }) + ret { ptr, i64 } %callN + +if.then.186: ; preds = %while.body.184 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.427, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.187 + +if.merge.187: ; preds = %if.then.186, %while.body.184 + %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.433, 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.434, 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.183 + +fv.default: ; preds = %if.merge.187 + br label %fv.merge + +fv.case: ; preds = %if.merge.187 + %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.187 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.187 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.187 + %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.187 + %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.435, i64 13 }, { ptr, i64 } { ptr @str.436, 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.188 + +while.hdr.188: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.189, label %while.exit.190 + +while.body.189: ; preds = %while.hdr.188 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.191, label %if.merge.192 + +while.exit.190: ; preds = %while.hdr.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.437, i64 1 }) + ret { ptr, i64 } %callN + +if.then.191: ; preds = %while.body.189 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.438, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.192 + +if.merge.192: ; preds = %if.then.191, %while.body.189 + %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.441, 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.442, 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.188 + +fv.default: ; preds = %if.merge.192 + br label %fv.merge + +fv.case: ; preds = %if.merge.192 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.192 + %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.443, i64 8 }, { ptr, i64 } { ptr @str.444, 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.193 + +while.hdr.193: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.194, label %while.exit.195 + +while.body.194: ; preds = %while.hdr.193 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.196, label %if.merge.197 + +while.exit.195: ; preds = %while.hdr.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.445, i64 1 }) + ret { ptr, i64 } %callN + +if.then.196: ; preds = %while.body.194 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.446, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.197 + +if.merge.197: ; preds = %if.then.196, %while.body.194 + %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.452, 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.453, 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.193 + +fv.default: ; preds = %if.merge.197 + br label %fv.merge + +fv.case: ; preds = %if.merge.197 + %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.197 + %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.197 + %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.197 + %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.197 + %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.454, i64 5 }, { ptr, i64 } { ptr @str.455, 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.198 + +while.hdr.198: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.199, label %while.exit.200 + +while.body.199: ; preds = %while.hdr.198 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.201, label %if.merge.202 + +while.exit.200: ; preds = %while.hdr.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.456, i64 1 }) + ret { ptr, i64 } %callN + +if.then.201: ; preds = %while.body.199 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.457, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.202 + +if.merge.202: ; preds = %if.then.201, %while.body.199 + %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.461, 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.462, 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.198 + +fv.default: ; preds = %if.merge.202 + br label %fv.merge + +fv.case: ; preds = %if.merge.202 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.202 + %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.202 + %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.463, i64 6 }, { ptr, i64 } { ptr @str.464, 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.203 + +while.hdr.203: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.204, label %while.exit.205 + +while.body.204: ; preds = %while.hdr.203 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.206, label %if.merge.207 + +while.exit.205: ; preds = %while.hdr.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.465, i64 1 }) + ret { ptr, i64 } %callN + +if.then.206: ; preds = %while.body.204 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.466, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.207 + +if.merge.207: ; preds = %if.then.206, %while.body.204 + %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.470, 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.471, 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.203 + +fv.default: ; preds = %if.merge.207 + br label %fv.merge + +fv.case: ; preds = %if.merge.207 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.207 + %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.207 + %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.472, i64 6 }, { ptr, i64 } { ptr @str.473, 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.208 + +while.hdr.208: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.209, label %while.exit.210 + +while.body.209: ; preds = %while.hdr.208 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.211, label %if.merge.212 + +while.exit.210: ; preds = %while.hdr.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.474, i64 1 }) + ret { ptr, i64 } %callN + +if.then.211: ; preds = %while.body.209 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.475, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.212 + +if.merge.212: ; preds = %if.then.211, %while.body.209 + %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.478, 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.479, 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.208 + +fv.default: ; preds = %if.merge.212 + br label %fv.merge + +fv.case: ; preds = %if.merge.212 + %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.212 + %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 54, 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.480, i64 4 }, { ptr, i64 } { ptr @str.481, 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.213 + +while.hdr.213: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.214, label %while.exit.215 + +while.body.214: ; preds = %while.hdr.213 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.216, label %if.merge.217 + +while.exit.215: ; preds = %while.hdr.213 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.482, i64 1 }) + ret { ptr, i64 } %callN + +if.then.216: ; preds = %while.body.214 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.483, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.217 + +if.merge.217: ; preds = %if.then.216, %while.body.214 + %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.487, 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.488, 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.213 + +fv.default: ; preds = %if.merge.217 + br label %fv.merge + +fv.case: ; preds = %if.merge.217 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.217 + %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.217 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.489, i64 6 }, { ptr, i64 } { ptr @str.490, 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.218 + +while.hdr.218: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.219, label %while.exit.220 + +while.body.219: ; preds = %while.hdr.218 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.221, label %if.merge.222 + +while.exit.220: ; preds = %while.hdr.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.491, i64 1 }) + ret { ptr, i64 } %callN + +if.then.221: ; preds = %while.body.219 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.492, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.222 + +if.merge.222: ; preds = %if.then.221, %while.body.219 + %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.496, 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.497, 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.218 + +fv.default: ; preds = %if.merge.222 + br label %fv.merge + +fv.case: ; preds = %if.merge.222 + %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.222 + %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.222 + %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 26, i64 undef }, i64 %ba.p2i23, 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.498, i64 12 }, { ptr, i64 } { ptr @str.499, 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.223 + +while.hdr.223: ; preds = %if.merge.227, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.224, label %while.exit.225 + +while.body.224: ; preds = %while.hdr.223 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.226, label %if.merge.227 + +while.exit.225: ; preds = %while.hdr.223 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.500, i64 1 }) + ret { ptr, i64 } %callN + +if.then.226: ; preds = %while.body.224 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.501, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.227 + +if.merge.227: ; preds = %if.then.226, %while.body.224 + %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.502, 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.503, 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.223 +} + +; 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.504, i64 8 }, { ptr, i64 } { ptr @str.505, 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.228 + +while.hdr.228: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.229, label %while.exit.230 + +while.body.229: ; preds = %while.hdr.228 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.231, label %if.merge.232 + +while.exit.230: ; preds = %while.hdr.228 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.506, i64 1 }) + ret { ptr, i64 } %callN + +if.then.231: ; preds = %while.body.229 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.507, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.232 + +if.merge.232: ; preds = %if.then.231, %while.body.229 + %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.511, 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.512, 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.228 + +fv.default: ; preds = %if.merge.232 + br label %fv.merge + +fv.case: ; preds = %if.merge.232 + %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.232 + %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.232 + %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.513, i64 7 }, { ptr, i64 } { ptr @str.514, 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.233 + +while.hdr.233: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.234, label %while.exit.235 + +while.body.234: ; preds = %while.hdr.233 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.236, label %if.merge.237 + +while.exit.235: ; preds = %while.hdr.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.515, i64 1 }) + ret { ptr, i64 } %callN + +if.then.236: ; preds = %while.body.234 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.516, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.237 + +if.merge.237: ; preds = %if.then.236, %while.body.234 + %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.520, 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.521, 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.233 + +fv.default: ; preds = %if.merge.237 + br label %fv.merge + +fv.case: ; preds = %if.merge.237 + %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.237 + %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.237 + %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 77, 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.522, i64 9 }, { ptr, i64 } { ptr @str.523, 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.238 + +while.hdr.238: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.239, label %while.exit.240 + +while.body.239: ; preds = %while.hdr.238 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.241, label %if.merge.242 + +while.exit.240: ; preds = %while.hdr.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.524, i64 1 }) + ret { ptr, i64 } %callN + +if.then.241: ; preds = %while.body.239 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.525, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.242 + +if.merge.242: ; preds = %if.then.241, %while.body.239 + %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.528, 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.529, 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.238 + +fv.default: ; preds = %if.merge.242 + br label %fv.merge + +fv.case: ; preds = %if.merge.242 + %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.242 + %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.530, i64 4 }, { ptr, i64 } { ptr @str.531, 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.243 + +while.hdr.243: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.244, label %while.exit.245 + +while.body.244: ; preds = %while.hdr.243 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.246, label %if.merge.247 + +while.exit.245: ; preds = %while.hdr.243 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.532, i64 1 }) + ret { ptr, i64 } %callN + +if.then.246: ; preds = %while.body.244 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.533, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.247 + +if.merge.247: ; preds = %if.then.246, %while.body.244 + %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.536, 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.537, 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.243 + +fv.default: ; preds = %if.merge.247 + br label %fv.merge + +fv.case: ; preds = %if.merge.247 + %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.247 + %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.538, i64 6 }, { ptr, i64 } { ptr @str.539, 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.248 + +while.hdr.248: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.249, label %while.exit.250 + +while.body.249: ; preds = %while.hdr.248 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.251, label %if.merge.252 + +while.exit.250: ; preds = %while.hdr.248 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.540, i64 1 }) + ret { ptr, i64 } %callN + +if.then.251: ; preds = %while.body.249 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.541, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.252 + +if.merge.252: ; preds = %if.then.251, %while.body.249 + %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.549, 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.550, 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.248 + +fv.default: ; preds = %if.merge.252 + br label %fv.merge + +fv.case: ; preds = %if.merge.252 + %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.252 + %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.252 + %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.252 + %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.252 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.252 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.252 + %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 81, 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.551, i64 6 }, { ptr, i64 } { ptr @str.552, 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.253 + +while.hdr.253: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.254, label %while.exit.255 + +while.body.254: ; preds = %while.hdr.253 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.256, label %if.merge.257 + +while.exit.255: ; preds = %while.hdr.253 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.553, i64 1 }) + ret { ptr, i64 } %callN + +if.then.256: ; preds = %while.body.254 + %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 + br label %if.merge.257 + +if.merge.257: ; preds = %if.then.256, %while.body.254 + %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.559, 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.560, 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.253 + +fv.default: ; preds = %if.merge.257 + br label %fv.merge + +fv.case: ; preds = %if.merge.257 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.257 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.257 + %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.257 + %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 } @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.566, 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.561, 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.265, label %if.merge.266 + +if.then.265: ; 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.568, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.567, 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.266 + +if.merge.266: ; preds = %if.then.265, %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.573, 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.569, 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.267, label %if.merge.268 + +if.then.267: ; 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.575, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.574, 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.268 + +if.merge.268: ; preds = %if.then.267, %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.583, 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.576, 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.269: ; 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.585, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.584, 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.270 + +if.merge.270: ; preds = %if.then.269, %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.269, label %if.merge.270 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.594, 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.586, 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.271, label %if.merge.272 + +if.then.271: ; 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.596, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.595, 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.272 + +if.merge.272: ; preds = %if.then.271, %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.603, 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.597, 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.273, label %if.merge.274 + +if.then.273: ; 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.605, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.604, 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.274 + +if.merge.274: ; preds = %if.then.273, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2860,33 +6043,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.210, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.606, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.166 + br label %while.hdr.283 -while.hdr.166: ; preds = %if.merge.170, %entry +while.hdr.283: ; preds = %if.merge.287, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.167, label %while.exit.168 + br i1 %icmp, label %while.body.284, label %while.exit.285 -while.body.167: ; preds = %while.hdr.166 +while.body.284: ; preds = %while.hdr.283 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.169, label %if.merge.170 + br i1 %icmpN, label %if.then.286, label %if.merge.287 -while.exit.168: ; preds = %while.hdr.166 +while.exit.285: ; preds = %while.hdr.283 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.211, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 1 }) ret { ptr, i64 } %call -if.then.169: ; preds = %while.body.167 +if.then.286: ; preds = %while.body.284 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.170 + br label %if.merge.287 -if.merge.170: ; preds = %if.then.169, %while.body.167 +if.merge.287: ; preds = %if.then.286, %while.body.284 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2900,7 +6083,211 @@ if.merge.170: ; preds = %if.then.169, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.166 + br label %while.hdr.283 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.609, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.288 + +while.hdr.288: ; preds = %if.merge.292, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.289, label %while.exit.290 + +while.body.289: ; preds = %while.hdr.288 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.291, label %if.merge.292 + +while.exit.290: ; preds = %while.hdr.288 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 1 }) + ret { ptr, i64 } %call + +if.then.291: ; preds = %while.body.289 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.292 + +if.merge.292: ; preds = %if.then.291, %while.body.289 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.288 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.612, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.293 + +while.hdr.293: ; preds = %if.merge.297, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.294, label %while.exit.295 + +while.body.294: ; preds = %while.hdr.293 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.296, label %if.merge.297 + +while.exit.295: ; preds = %while.hdr.293 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.613, i64 1 }) + ret { ptr, i64 } %call + +if.then.296: ; preds = %while.body.294 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.297 + +if.merge.297: ; preds = %if.then.296, %while.body.294 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.293 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.615, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.298 + +while.hdr.298: ; preds = %if.merge.302, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.299, label %while.exit.300 + +while.body.299: ; preds = %while.hdr.298 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.301, label %if.merge.302 + +while.exit.300: ; preds = %while.hdr.298 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 1 }) + ret { ptr, i64 } %call + +if.then.301: ; preds = %while.body.299 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.302 + +if.merge.302: ; preds = %if.then.301, %while.body.299 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.298 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.618, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.303 + +while.hdr.303: ; preds = %if.merge.307, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.304, label %while.exit.305 + +while.body.304: ; preds = %while.hdr.303 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.306, label %if.merge.307 + +while.exit.305: ; preds = %while.hdr.303 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.619, i64 1 }) + ret { ptr, i64 } %call + +if.then.306: ; preds = %while.body.304 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.307 + +if.merge.307: ; preds = %if.then.306, %while.body.304 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.303 } ; Function Attrs: nounwind @@ -2911,33 +6298,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.213, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.621, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.171 + br label %while.hdr.308 -while.hdr.171: ; preds = %if.merge.175, %entry +while.hdr.308: ; preds = %if.merge.312, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.172, label %while.exit.173 + br i1 %icmp, label %while.body.309, label %while.exit.310 -while.body.172: ; preds = %while.hdr.171 +while.body.309: ; preds = %while.hdr.308 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.174, label %if.merge.175 + br i1 %icmpN, label %if.then.311, label %if.merge.312 -while.exit.173: ; preds = %while.hdr.171 +while.exit.310: ; preds = %while.hdr.308 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.214, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.622, i64 1 }) ret { ptr, i64 } %call -if.then.174: ; preds = %while.body.172 +if.then.311: ; preds = %while.body.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.215, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.175 + br label %if.merge.312 -if.merge.175: ; preds = %if.then.174, %while.body.172 +if.merge.312: ; preds = %if.then.311, %while.body.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2953,7 +6340,7 @@ if.merge.175: ; preds = %if.then.174, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.171 + br label %while.hdr.308 } ; Function Attrs: nounwind @@ -2963,35 +6350,35 @@ entry: %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.216, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.624, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.180 + br label %while.hdr.320 -while.hdr.180: ; preds = %if.merge.184, %entry +while.hdr.320: ; preds = %if.merge.324, %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.181, label %while.exit.182 + br i1 %icmp, label %while.body.321, label %while.exit.322 -while.body.181: ; preds = %while.hdr.180 +while.body.321: ; preds = %while.hdr.320 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.183, label %if.merge.184 + br i1 %icmpN, label %if.then.323, label %if.merge.324 -while.exit.182: ; preds = %while.hdr.180 +while.exit.322: ; preds = %while.hdr.320 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.217, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.625, i64 1 }) ret { ptr, i64 } %call -if.then.183: ; preds = %while.body.181 +if.then.323: ; preds = %while.body.321 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.218, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.626, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.184 + br label %if.merge.324 -if.merge.184: ; preds = %if.then.183, %while.body.181 +if.merge.324: ; preds = %if.then.323, %while.body.321 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3007,7 +6394,167 @@ if.merge.184: ; preds = %if.then.183, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.180 + br label %while.hdr.320 +} + +; 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.627, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.325 + +while.hdr.325: ; preds = %if.merge.329, %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.326, label %while.exit.327 + +while.body.326: ; preds = %while.hdr.325 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.328, label %if.merge.329 + +while.exit.327: ; preds = %while.hdr.325 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.628, i64 1 }) + ret { ptr, i64 } %call + +if.then.328: ; preds = %while.body.326 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.629, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.329 + +if.merge.329: ; preds = %if.then.328, %while.body.326 + %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.325 +} + +; 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.630, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.330 + +while.hdr.330: ; preds = %if.merge.334, %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.331, label %while.exit.332 + +while.body.331: ; preds = %while.hdr.330 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.333, label %if.merge.334 + +while.exit.332: ; preds = %while.hdr.330 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.631, i64 1 }) + ret { ptr, i64 } %call + +if.then.333: ; preds = %while.body.331 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.632, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.334 + +if.merge.334: ; preds = %if.then.333, %while.body.331 + %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 76, 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.330 +} + +; 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.633, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.335 + +while.hdr.335: ; preds = %if.merge.339, %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.336, label %while.exit.337 + +while.body.336: ; preds = %while.hdr.335 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.338, label %if.merge.339 + +while.exit.337: ; preds = %while.hdr.335 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.634, i64 1 }) + ret { ptr, i64 } %call + +if.then.338: ; preds = %while.body.336 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.635, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.339 + +if.merge.339: ; preds = %if.then.338, %while.body.336 + %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 78, 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.335 } ; Function Attrs: nounwind @@ -3017,35 +6564,35 @@ entry: %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.219, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.636, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.185 + br label %while.hdr.340 -while.hdr.185: ; preds = %if.merge.189, %entry +while.hdr.340: ; preds = %if.merge.344, %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.186, label %while.exit.187 + br i1 %icmp, label %while.body.341, label %while.exit.342 -while.body.186: ; preds = %while.hdr.185 +while.body.341: ; preds = %while.hdr.340 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.188, label %if.merge.189 + br i1 %icmpN, label %if.then.343, label %if.merge.344 -while.exit.187: ; preds = %while.hdr.185 +while.exit.342: ; preds = %while.hdr.340 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.220, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.637, i64 1 }) ret { ptr, i64 } %call -if.then.188: ; preds = %while.body.186 +if.then.343: ; preds = %while.body.341 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.221, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.638, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.189 + br label %if.merge.344 -if.merge.189: ; preds = %if.then.188, %while.body.186 +if.merge.344: ; preds = %if.then.343, %while.body.341 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3061,7 +6608,7 @@ if.merge.189: ; preds = %if.then.188, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.185 + br label %while.hdr.340 } ; Function Attrs: nounwind @@ -3075,20 +6622,20 @@ entry: 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.211, label %if.else.212 + br i1 %icmp, label %if.then.378, label %if.else.379 -if.then.211: ; preds = %entry - br label %if.merge.213 +if.then.378: ; preds = %entry + br label %if.merge.380 -if.else.212: ; preds = %entry +if.else.379: ; 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.224, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.223, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.213 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.640, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.380 -if.merge.213: ; preds = %if.else.212, %if.then.211 - %bp = phi { ptr, i64 } [ { ptr @str.222, i64 4 }, %if.then.211 ], [ %callN, %if.else.212 ] +if.merge.380: ; preds = %if.else.379, %if.then.378 + %bp = phi { ptr, i64 } [ { ptr @str.639, i64 4 }, %if.then.378 ], [ %callN, %if.else.379 ] ret { ptr, i64 } %bp } @@ -3103,20 +6650,20 @@ entry: 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.227, label %if.else.228 + br i1 %icmp, label %if.then.394, label %if.else.395 -if.then.227: ; preds = %entry - br label %if.merge.229 +if.then.394: ; preds = %entry + br label %if.merge.396 -if.else.228: ; preds = %entry +if.else.395: ; 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.227, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.226, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.229 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.644, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.396 -if.merge.229: ; preds = %if.else.228, %if.then.227 - %bp = phi { ptr, i64 } [ { ptr @str.225, i64 4 }, %if.then.227 ], [ %callN, %if.else.228 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi { ptr, i64 } [ { ptr @str.642, i64 4 }, %if.then.394 ], [ %callN, %if.else.395 ] ret { ptr, i64 } %bp } @@ -3131,20 +6678,20 @@ entry: 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.230, label %if.else.231 + br i1 %icmp, label %if.then.397, label %if.else.398 -if.then.230: ; preds = %entry - br label %if.merge.232 +if.then.397: ; preds = %entry + br label %if.merge.399 -if.else.231: ; preds = %entry +if.else.398: ; 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.230, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.229, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.232 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.646, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.399 -if.merge.232: ; preds = %if.else.231, %if.then.230 - %bp = phi { ptr, i64 } [ { ptr @str.228, i64 4 }, %if.then.230 ], [ %callN, %if.else.231 ] +if.merge.399: ; preds = %if.else.398, %if.then.397 + %bp = phi { ptr, i64 } [ { ptr @str.645, i64 4 }, %if.then.397 ], [ %callN, %if.else.398 ] ret { ptr, i64 } %bp } @@ -3159,20 +6706,20 @@ entry: 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.233, label %if.else.234 + br i1 %icmp, label %if.then.400, label %if.else.401 -if.then.233: ; preds = %entry - br label %if.merge.235 +if.then.400: ; preds = %entry + br label %if.merge.402 -if.else.234: ; preds = %entry +if.else.401: ; 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.233, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.232, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.235 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.402 -if.merge.235: ; preds = %if.else.234, %if.then.233 - %bp = phi { ptr, i64 } [ { ptr @str.231, i64 4 }, %if.then.233 ], [ %callN, %if.else.234 ] +if.merge.402: ; preds = %if.else.401, %if.then.400 + %bp = phi { ptr, i64 } [ { ptr @str.648, i64 4 }, %if.then.400 ], [ %callN, %if.else.401 ] ret { ptr, i64 } %bp } @@ -3187,20 +6734,20 @@ entry: 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.236, label %if.else.237 + br i1 %icmp, label %if.then.403, label %if.else.404 -if.then.236: ; preds = %entry - br label %if.merge.238 +if.then.403: ; preds = %entry + br label %if.merge.405 -if.else.237: ; preds = %entry +if.else.404: ; 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.236, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.235, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.238 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.652, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.405 -if.merge.238: ; preds = %if.else.237, %if.then.236 - %bp = phi { ptr, i64 } [ { ptr @str.234, i64 4 }, %if.then.236 ], [ %callN, %if.else.237 ] +if.merge.405: ; preds = %if.else.404, %if.then.403 + %bp = phi { ptr, i64 } [ { ptr @str.651, i64 4 }, %if.then.403 ], [ %callN, %if.else.404 ] ret { ptr, i64 } %bp } @@ -3214,20 +6761,20 @@ entry: 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.239, label %if.else.240 + br i1 %icmp, label %if.then.406, label %if.else.407 -if.then.239: ; preds = %entry - br label %if.merge.241 +if.then.406: ; preds = %entry + br label %if.merge.408 -if.else.240: ; preds = %entry +if.else.407: ; 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.239, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.238, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.241 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.655, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.408 -if.merge.241: ; preds = %if.else.240, %if.then.239 - %bp = phi { ptr, i64 } [ { ptr @str.237, i64 4 }, %if.then.239 ], [ %callN, %if.else.240 ] +if.merge.408: ; preds = %if.else.407, %if.then.406 + %bp = phi { ptr, i64 } [ { ptr @str.654, i64 4 }, %if.then.406 ], [ %callN, %if.else.407 ] ret { ptr, i64 } %bp } @@ -3242,20 +6789,20 @@ entry: 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.242, label %if.else.243 + br i1 %icmp, label %if.then.409, label %if.else.410 -if.then.242: ; preds = %entry - br label %if.merge.244 +if.then.409: ; preds = %entry + br label %if.merge.411 -if.else.243: ; preds = %entry +if.else.410: ; 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.242, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.241, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.244 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.659, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.658, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.411 -if.merge.244: ; preds = %if.else.243, %if.then.242 - %bp = phi { ptr, i64 } [ { ptr @str.240, i64 4 }, %if.then.242 ], [ %callN, %if.else.243 ] +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi { ptr, i64 } [ { ptr @str.657, i64 4 }, %if.then.409 ], [ %callN, %if.else.410 ] ret { ptr, i64 } %bp } @@ -3270,25 +6817,25 @@ entry: 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.245, label %if.else.246 + br i1 %icmp, label %if.then.412, label %if.else.413 -if.then.245: ; preds = %entry - br label %if.merge.247 +if.then.412: ; preds = %entry + br label %if.merge.414 -if.else.246: ; preds = %entry +if.else.413: ; 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.245, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.244, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.247 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.662, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.661, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.414 -if.merge.247: ; preds = %if.else.246, %if.then.245 - %bp = phi { ptr, i64 } [ { ptr @str.243, i64 4 }, %if.then.245 ], [ %callN, %if.else.246 ] +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.660, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3298,244 +6845,20 @@ entry: 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.248, label %if.else.249 + br i1 %icmp, label %if.then.415, label %if.else.416 -if.then.248: ; preds = %entry - br label %if.merge.250 +if.then.415: ; preds = %entry + br label %if.merge.417 -if.else.249: ; preds = %entry +if.else.416: ; 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.248, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.247, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.250 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.665, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.664, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.417 -if.merge.250: ; preds = %if.else.249, %if.then.248 - %bp = phi { ptr, i64 } [ { ptr @str.246, i64 4 }, %if.then.248 ], [ %callN, %if.else.249 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.251, label %if.else.252 - -if.then.251: ; preds = %entry - br label %if.merge.253 - -if.else.252: ; 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.251, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.250, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.253 - -if.merge.253: ; preds = %if.else.252, %if.then.251 - %bp = phi { ptr, i64 } [ { ptr @str.249, i64 4 }, %if.then.251 ], [ %callN, %if.else.252 ] - 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.254, label %if.else.255 - -if.then.254: ; preds = %entry - br label %if.merge.256 - -if.else.255: ; 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.254, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.253, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.256 - -if.merge.256: ; preds = %if.else.255, %if.then.254 - %bp = phi { ptr, i64 } [ { ptr @str.252, i64 4 }, %if.then.254 ], [ %callN, %if.else.255 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.257, label %if.else.258 - -if.then.257: ; preds = %entry - br label %if.merge.259 - -if.else.258: ; 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.257, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.256, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.259 - -if.merge.259: ; preds = %if.else.258, %if.then.257 - %bp = phi { ptr, i64 } [ { ptr @str.255, i64 4 }, %if.then.257 ], [ %callN, %if.else.258 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_error_set(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.260, label %if.else.261 - -if.then.260: ; preds = %entry - br label %if.merge.262 - -if.else.261: ; 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.260, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.259, i64 10 }, { ptr, i64 } %callN) - br label %if.merge.262 - -if.merge.262: ; preds = %if.else.261, %if.then.260 - %bp = phi { ptr, i64 } [ { ptr @str.258, i64 4 }, %if.then.260 ], [ %callN, %if.else.261 ] - 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.263, label %if.else.264 - -if.then.263: ; preds = %entry - br label %if.merge.265 - -if.else.264: ; 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.263, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.262, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.265 - -if.merge.265: ; preds = %if.else.264, %if.then.263 - %bp = phi { ptr, i64 } [ { ptr @str.261, i64 4 }, %if.then.263 ], [ %callN, %if.else.264 ] - 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.266, label %if.else.267 - -if.then.266: ; preds = %entry - br label %if.merge.268 - -if.else.267: ; 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.266, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.265, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.268 - -if.merge.268: ; preds = %if.else.267, %if.then.266 - %bp = phi { ptr, i64 } [ { ptr @str.264, i64 4 }, %if.then.266 ], [ %callN, %if.else.267 ] - 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.269, label %if.else.270 - -if.then.269: ; preds = %entry - br label %if.merge.271 - -if.else.270: ; 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.269, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.268, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.271 - -if.merge.271: ; preds = %if.else.270, %if.then.269 - %bp = phi { ptr, i64 } [ { ptr @str.267, i64 4 }, %if.then.269 ], [ %callN, %if.else.270 ] - 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.272, label %if.else.273 - -if.then.272: ; preds = %entry - br label %if.merge.274 - -if.else.273: ; 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.272, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.271, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.274 - -if.merge.274: ; preds = %if.else.273, %if.then.272 - %bp = phi { ptr, i64 } [ { ptr @str.270, i64 4 }, %if.then.272 ], [ %callN, %if.else.273 ] +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.663, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] ret { ptr, i64 } %bp } @@ -3550,20 +6873,578 @@ entry: 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.275, label %if.else.276 + br i1 %icmp, label %if.then.418, label %if.else.419 -if.then.275: ; preds = %entry - br label %if.merge.277 +if.then.418: ; preds = %entry + br label %if.merge.420 -if.else.276: ; preds = %entry +if.else.419: ; 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.275, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.274, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.277 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.668, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.667, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.420 -if.merge.277: ; preds = %if.else.276, %if.then.275 - %bp = phi { ptr, i64 } [ { ptr @str.273, i64 4 }, %if.then.275 ], [ %callN, %if.else.276 ] +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.666, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.421, label %if.else.422 + +if.then.421: ; preds = %entry + br label %if.merge.423 + +if.else.422: ; 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.671, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.670, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.423 + +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.669, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] + 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.424, label %if.else.425 + +if.then.424: ; preds = %entry + br label %if.merge.426 + +if.else.425: ; 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.674, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.673, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.426 + +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.672, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] + 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.427, label %if.else.428 + +if.then.427: ; preds = %entry + br label %if.merge.429 + +if.else.428: ; 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.677, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.676, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.429 + +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.675, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] + 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.430, label %if.else.431 + +if.then.430: ; preds = %entry + br label %if.merge.432 + +if.else.431: ; 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.680, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.679, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.432 + +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.678, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] + 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.433, label %if.else.434 + +if.then.433: ; preds = %entry + br label %if.merge.435 + +if.else.434: ; 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.683, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.682, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.435 + +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.681, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] + 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.436, label %if.else.437 + +if.then.436: ; preds = %entry + br label %if.merge.438 + +if.else.437: ; 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.686, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.685, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.438 + +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.684, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + 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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.689, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.688, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.687, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + 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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.692, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.691, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.690, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.695, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.694, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.693, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.698, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.697, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.696, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.701, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.700, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.699, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.704, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.703, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.702, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.707, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.706, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.705, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + 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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.710, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.709, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.708, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.713, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.712, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.711, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_error_set(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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.716, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.715, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.714, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] + 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.469, label %if.else.470 + +if.then.469: ; preds = %entry + br label %if.merge.471 + +if.else.470: ; 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.719, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.471 + +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.717, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] + 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.472, label %if.else.473 + +if.then.472: ; preds = %entry + br label %if.merge.474 + +if.else.473: ; 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.722, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.721, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.474 + +if.merge.474: ; preds = %if.else.473, %if.then.472 + %bp = phi { ptr, i64 } [ { ptr @str.720, i64 4 }, %if.then.472 ], [ %callN, %if.else.473 ] + 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.475, label %if.else.476 + +if.then.475: ; preds = %entry + br label %if.merge.477 + +if.else.476: ; 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.725, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.477 + +if.merge.477: ; preds = %if.else.476, %if.then.475 + %bp = phi { ptr, i64 } [ { ptr @str.723, i64 4 }, %if.then.475 ], [ %callN, %if.else.476 ] + 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.478, label %if.else.479 + +if.then.478: ; preds = %entry + br label %if.merge.480 + +if.else.479: ; 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.728, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.727, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.480 + +if.merge.480: ; preds = %if.else.479, %if.then.478 + %bp = phi { ptr, i64 } [ { ptr @str.726, i64 4 }, %if.then.478 ], [ %callN, %if.else.479 ] ret { ptr, i64 } %bp } @@ -3578,19 +7459,115 @@ entry: 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.278, label %if.else.279 + br i1 %icmp, label %if.then.481, label %if.else.482 -if.then.278: ; preds = %entry - br label %if.merge.280 +if.then.481: ; preds = %entry + br label %if.merge.483 -if.else.279: ; preds = %entry +if.else.482: ; 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.278, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.277, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.280 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.731, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.730, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.483 -if.merge.280: ; preds = %if.else.279, %if.then.278 - %bp = phi { ptr, i64 } [ { ptr @str.276, i64 4 }, %if.then.278 ], [ %callN, %if.else.279 ] +if.merge.483: ; preds = %if.else.482, %if.then.481 + %bp = phi { ptr, i64 } [ { ptr @str.729, i64 4 }, %if.then.481 ], [ %callN, %if.else.482 ] 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.490, label %if.merge.491 + +if.then.490: ; preds = %entry + ret { ptr, i64 } { ptr @str.732, i64 4 } + +if.merge.491: ; 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 39, 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.492, label %if.merge.493 + +if.then.492: ; preds = %entry + ret { ptr, i64 } { ptr @str.733, i64 4 } + +if.merge.493: ; 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_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.494, label %if.merge.495 + +if.then.494: ; preds = %entry + ret { ptr, i64 } { ptr @str.734, i64 4 } + +if.merge.495: ; 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 45, 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.496, label %if.merge.497 + +if.then.496: ; preds = %entry + ret { ptr, i64 } { ptr @str.735, i64 4 } + +if.merge.497: ; 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 88, 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/1009-errors-catch.ir b/examples/expected/1009-errors-catch.ir index 07f6150..39e6abb 100644 --- a/examples/expected/1009-errors-catch.ir +++ b/examples/expected/1009-errors-catch.ir @@ -1,269 +1,621 @@ @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [75 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] -@tag.str = private constant [1 x i8] zeroinitializer -@tag.str.27 = private constant [4 x i8] c"Bad\00" -@tag.str.28 = private constant [6 x i8] c"Empty\00" -@tag_names = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.27, i64 3 }, { ptr, i64 } { ptr @tag.str.28, i64 5 }] -@tn.str = private constant [13 x i8] c"\00" -@tn.str.29 = private constant [5 x i8] c"bool\00" -@tn.str.30 = private constant [3 x i8] c"s8\00" -@tn.str.31 = private constant [4 x i8] c"s16\00" -@tn.str.32 = private constant [4 x i8] c"s32\00" -@tn.str.33 = private constant [4 x i8] c"s64\00" -@tn.str.34 = private constant [3 x i8] c"u8\00" -@tn.str.35 = private constant [4 x i8] c"u16\00" -@tn.str.36 = private constant [4 x i8] c"u32\00" -@tn.str.37 = private constant [4 x i8] c"u64\00" -@tn.str.38 = private constant [4 x i8] c"f32\00" -@tn.str.39 = private constant [4 x i8] c"f64\00" -@tn.str.40 = private constant [7 x i8] c"string\00" -@tn.str.41 = private constant [4 x i8] c"Any\00" -@tn.str.42 = private constant [9 x i8] c"noreturn\00" -@tn.str.43 = private constant [6 x i8] c"isize\00" -@tn.str.44 = private constant [6 x i8] c"usize\00" -@tn.str.45 = private constant [5 x i8] c"void\00" -@tn.str.46 = private constant [6 x i8] c"*void\00" -@tn.str.47 = private constant [16 x i8] c"Source_Location\00" -@tn.str.48 = private constant [11 x i8] c"CAllocator\00" -@tn.str.49 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.50 = private constant [4 x i8] c"GPA\00" -@tn.str.51 = private constant [5 x i8] c"*GPA\00" -@tn.str.52 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.53 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.54 = private constant [10 x i8] c"Allocator\00" -@tn.str.55 = private constant [6 x i8] c"Arena\00" -@tn.str.56 = private constant [7 x i8] c"*Arena\00" -@tn.str.57 = private constant [6 x i8] c"[*]u8\00" -@tn.str.58 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.59 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.60 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.61 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.62 = private constant [8 x i8] c"Context\00" -@tn.str.63 = private constant [7 x i8] c"[4]s64\00" -@tn.str.64 = private constant [9 x i8] c"[]string\00" -@tn.str.65 = private constant [2 x i8] c"E\00" -@tn.str.66 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.67 = private constant [5 x i8] c"*s64\00" -@tn.str.68 = private constant [7 x i8] c"**void\00" -@tn.str.69 = private constant [5 x i8] c"*s32\00" -@tn.str.70 = private constant [3 x i8] c"*E\00" -@tn.str.71 = private constant [8 x i8] c"*string\00" -@tn.str.72 = private constant [6 x i8] c"[]Any\00" -@tn.str.73 = private constant [5 x i8] c"*Any\00" -@tn.str.74 = private constant [7 x i8] c"[1]Any\00" -@tn.str.75 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.76 = private constant [7 x i8] c"*[]Any\00" -@tn.str.77 = private constant [4 x i8] c"*u8\00" -@tn.str.78 = private constant [6 x i8] c"*bool\00" -@tn.str.79 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.80 = private constant [5 x i8] c"*f64\00" -@tn.str.81 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.82 = private constant [11 x i8] c"*Allocator\00" -@tn.str.83 = private constant [9 x i8] c"*Context\00" -@tn.str.84 = private constant [5 x i8] c"*u32\00" -@tn.str.85 = private constant [10 x i8] c"*[]string\00" -@tn.str.86 = private constant [6 x i8] c"**GPA\00" -@tn.str.87 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.88 = private constant [8 x i8] c"**Arena\00" -@tn.str.89 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.90 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.91 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.92 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.93 = private constant [6 x i8] c"**s64\00" -@tn.str.94 = private constant [8 x i8] c"***void\00" -@tn.str.95 = private constant [6 x i8] c"**s32\00" -@tn.str.96 = private constant [4 x i8] c"**E\00" -@tn.str.97 = private constant [9 x i8] c"**string\00" -@tn.str.98 = private constant [6 x i8] c"**Any\00" -@tn.str.99 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.100 = private constant [8 x i8] c"**[]Any\00" -@tn.str.101 = private constant [5 x i8] c"**u8\00" -@tn.str.102 = private constant [7 x i8] c"**bool\00" -@__sx_type_names = private constant [75 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.29, i64 4 }, { ptr, i64 } { ptr @tn.str.30, i64 2 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 3 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 2 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 3 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 6 }, { ptr, i64 } { ptr @tn.str.41, i64 3 }, { ptr, i64 } { ptr @tn.str.42, i64 8 }, { ptr, i64 } { ptr @tn.str.43, i64 5 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 4 }, { ptr, i64 } { ptr @tn.str.46, i64 5 }, { ptr, i64 } { ptr @tn.str.47, i64 15 }, { ptr, i64 } { ptr @tn.str.48, i64 10 }, { ptr, i64 } { ptr @tn.str.49, i64 11 }, { ptr, i64 } { ptr @tn.str.50, i64 3 }, { ptr, i64 } { ptr @tn.str.51, i64 4 }, { ptr, i64 } { ptr @tn.str.52, i64 10 }, { ptr, i64 } { ptr @tn.str.53, i64 11 }, { ptr, i64 } { ptr @tn.str.54, i64 9 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 6 }, { ptr, i64 } { ptr @tn.str.57, i64 5 }, { ptr, i64 } { ptr @tn.str.58, i64 8 }, { ptr, i64 } { ptr @tn.str.59, i64 9 }, { ptr, i64 } { ptr @tn.str.60, i64 17 }, { ptr, i64 } { ptr @tn.str.61, i64 18 }, { ptr, i64 } { ptr @tn.str.62, i64 7 }, { ptr, i64 } { ptr @tn.str.63, i64 6 }, { ptr, i64 } { ptr @tn.str.64, i64 8 }, { ptr, i64 } { ptr @tn.str.65, i64 1 }, { ptr, i64 } { ptr @tn.str.66, i64 12 }, { ptr, i64 } { ptr @tn.str.67, i64 4 }, { ptr, i64 } { ptr @tn.str.68, i64 6 }, { ptr, i64 } { ptr @tn.str.69, i64 4 }, { ptr, i64 } { ptr @tn.str.70, i64 2 }, { ptr, i64 } { ptr @tn.str.71, i64 7 }, { ptr, i64 } { ptr @tn.str.72, i64 5 }, { ptr, i64 } { ptr @tn.str.73, i64 4 }, { ptr, i64 } { ptr @tn.str.74, i64 6 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 6 }, { ptr, i64 } { ptr @tn.str.77, i64 3 }, { ptr, i64 } { ptr @tn.str.78, i64 5 }, { ptr, i64 } { ptr @tn.str.79, i64 7 }, { ptr, i64 } { ptr @tn.str.80, i64 4 }, { ptr, i64 } { ptr @tn.str.81, i64 16 }, { ptr, i64 } { ptr @tn.str.82, i64 10 }, { ptr, i64 } { ptr @tn.str.83, i64 8 }, { ptr, i64 } { ptr @tn.str.84, i64 4 }, { ptr, i64 } { ptr @tn.str.85, i64 9 }, { ptr, i64 } { ptr @tn.str.86, i64 5 }, { ptr, i64 } { ptr @tn.str.87, i64 12 }, { ptr, i64 } { ptr @tn.str.88, i64 7 }, { ptr, i64 } { ptr @tn.str.89, i64 6 }, { ptr, i64 } { ptr @tn.str.90, i64 10 }, { ptr, i64 } { ptr @tn.str.91, i64 19 }, { ptr, i64 } { ptr @tn.str.92, i64 13 }, { ptr, i64 } { ptr @tn.str.93, i64 5 }, { ptr, i64 } { ptr @tn.str.94, i64 7 }, { ptr, i64 } { ptr @tn.str.95, i64 5 }, { ptr, i64 } { ptr @tn.str.96, i64 3 }, { ptr, i64 } { ptr @tn.str.97, i64 8 }, { ptr, i64 } { ptr @tn.str.98, i64 5 }, { ptr, i64 } { ptr @tn.str.99, i64 8 }, { ptr, i64 } { ptr @tn.str.100, i64 7 }, { ptr, i64 } { ptr @tn.str.101, i64 4 }, { ptr, i64 } { ptr @tn.str.102, i64 6 }] -@str.103 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.104 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.105 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.106 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.107 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.108 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.109 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.110 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.111 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.112 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.113 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.114 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.115 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.116 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.117 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.118 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.119 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.120 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.121 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@frame.str = private unnamed_addr constant [21 x i8] c"1009-errors-catch.sx\00" -@frame.str.122 = private unnamed_addr constant [5 x i8] c"must\00" -@frame.str.123 = private unnamed_addr constant [35 x i8] c" if n < 0 { raise error.Bad; }\00" -@trace.frame = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 20 }, i32 16, i32 17, { ptr, i64 } { ptr @frame.str.122, i64 4 }, { ptr, i64 } { ptr @frame.str.123, i64 34 } } -@frame.str.124 = private unnamed_addr constant [37 x i8] c" if n == 0 { raise error.Empty; }\00" -@trace.frame.125 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 20 }, i32 17, i32 17, { ptr, i64 } { ptr @frame.str.122, i64 4 }, { ptr, i64 } { ptr @frame.str.124, i64 36 } } -@frame.str.126 = private unnamed_addr constant [12 x i8] c"handle_some\00" -@frame.str.127 = private unnamed_addr constant [65 x i8] c" raise e; // re-raise the rest\00" -@trace.frame.128 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 20 }, i32 46, i32 9, { ptr, i64 } { ptr @frame.str.126, i64 11 }, { ptr, i64 } { ptr @frame.str.127, i64 64 } } -@str.129 = private unnamed_addr constant [18 x i8] c"catch result: {}\0A\00", align 1 +@str.125 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.126 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.127 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.128 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.129 = private unnamed_addr constant [4 x i8] c"\00", align 1 @str.130 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.131 = private unnamed_addr constant [18 x i8] c"catch result: {}\0A\00", align 1 -@str.132 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.133 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.134 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@__sx_type_is_unsigned = private constant [162 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.131 = private constant [9 x i8] c"Overflow\00" +@tag.str.132 = private constant [3 x i8] c"Io\00" +@tag.str.133 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.134 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.135 = private constant [10 x i8] c"BadEscape\00" +@tag.str.136 = private constant [10 x i8] c"BadNumber\00" +@tag.str.137 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.138 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.139 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.140 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.141 = private constant [13 x i8] c"MissingValue\00" +@tag.str.142 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.143 = private constant [13 x i8] c"TooManyFlags\00" +@tag.str.144 = private constant [4 x i8] c"Bad\00" +@tag.str.145 = private constant [6 x i8] c"Empty\00" +@tag_names = private constant [16 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.131, i64 8 }, { ptr, i64 } { ptr @tag.str.132, i64 2 }, { ptr, i64 } { ptr @tag.str.133, i64 15 }, { ptr, i64 } { ptr @tag.str.134, i64 13 }, { ptr, i64 } { ptr @tag.str.135, i64 9 }, { ptr, i64 } { ptr @tag.str.136, i64 9 }, { ptr, i64 } { ptr @tag.str.137, i64 15 }, { ptr, i64 } { ptr @tag.str.138, i64 14 }, { ptr, i64 } { ptr @tag.str.139, i64 14 }, { ptr, i64 } { ptr @tag.str.140, i64 11 }, { ptr, i64 } { ptr @tag.str.141, i64 12 }, { ptr, i64 } { ptr @tag.str.142, i64 15 }, { ptr, i64 } { ptr @tag.str.143, i64 12 }, { ptr, i64 } { ptr @tag.str.144, i64 3 }, { ptr, i64 } { ptr @tag.str.145, i64 5 }] +@tn.str = private constant [13 x i8] c"\00" +@tn.str.146 = private constant [5 x i8] c"bool\00" +@tn.str.147 = private constant [3 x i8] c"s8\00" +@tn.str.148 = private constant [4 x i8] c"s16\00" +@tn.str.149 = private constant [4 x i8] c"s32\00" +@tn.str.150 = private constant [4 x i8] c"s64\00" +@tn.str.151 = private constant [3 x i8] c"u8\00" +@tn.str.152 = private constant [4 x i8] c"u16\00" +@tn.str.153 = private constant [4 x i8] c"u32\00" +@tn.str.154 = private constant [4 x i8] c"u64\00" +@tn.str.155 = private constant [4 x i8] c"f32\00" +@tn.str.156 = private constant [4 x i8] c"f64\00" +@tn.str.157 = private constant [7 x i8] c"string\00" +@tn.str.158 = private constant [4 x i8] c"Any\00" +@tn.str.159 = private constant [9 x i8] c"noreturn\00" +@tn.str.160 = private constant [6 x i8] c"isize\00" +@tn.str.161 = private constant [6 x i8] c"usize\00" +@tn.str.162 = private constant [5 x i8] c"void\00" +@tn.str.163 = private constant [6 x i8] c"*void\00" +@tn.str.164 = private constant [16 x i8] c"Source_Location\00" +@tn.str.165 = private constant [11 x i8] c"CAllocator\00" +@tn.str.166 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.167 = private constant [4 x i8] c"GPA\00" +@tn.str.168 = private constant [5 x i8] c"*GPA\00" +@tn.str.169 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.170 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.171 = private constant [10 x i8] c"Allocator\00" +@tn.str.172 = private constant [6 x i8] c"Arena\00" +@tn.str.173 = private constant [7 x i8] c"*Arena\00" +@tn.str.174 = private constant [6 x i8] c"[*]u8\00" +@tn.str.175 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.176 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.177 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.178 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.179 = private constant [8 x i8] c"Context\00" +@tn.str.180 = private constant [7 x i8] c"[4]s64\00" +@tn.str.181 = private constant [9 x i8] c"[]string\00" +@tn.str.182 = private constant [9 x i8] c"OpenMode\00" +@tn.str.183 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.184 = private constant [5 x i8] c"File\00" +@tn.str.185 = private constant [6 x i8] c"*File\00" +@tn.str.186 = private constant [6 x i8] c"?File\00" +@tn.str.187 = private constant [8 x i8] c"?string\00" +@tn.str.188 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.189 = private constant [4 x i8] c"*u8\00" +@tn.str.190 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.191 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.192 = private constant [5 x i8] c"*s32\00" +@tn.str.193 = private constant [9 x i8] c"SockAddr\00" +@tn.str.194 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.195 = private constant [5 x i8] c"*u32\00" +@tn.str.196 = private constant [10 x i8] c"JsonError\00" +@tn.str.197 = private constant [6 x i8] c"Array\00" +@tn.str.198 = private constant [7 x i8] c"Object\00" +@tn.str.199 = private constant [6 x i8] c"Value\00" +@tn.str.200 = private constant [7 x i8] c"Member\00" +@tn.str.201 = private constant [9 x i8] c"[*]Value\00" +@tn.str.202 = private constant [7 x i8] c"*Array\00" +@tn.str.203 = private constant [10 x i8] c"[*]Member\00" +@tn.str.204 = private constant [8 x i8] c"*Object\00" +@tn.str.205 = private constant [5 x i8] c"[]u8\00" +@tn.str.206 = private constant [5 x i8] c"Sink\00" +@tn.str.207 = private constant [6 x i8] c"*Sink\00" +@tn.str.208 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.209 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.210 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.211 = private constant [7 x i8] c"Parser\00" +@tn.str.212 = private constant [8 x i8] c"*Parser\00" +@tn.str.213 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.214 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.215 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.216 = private constant [13 x i8] c"Architecture\00" +@tn.str.217 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.218 = private constant [11 x i8] c"() -> bool\00" +@tn.str.219 = private constant [5 x i8] c"*s64\00" +@tn.str.220 = private constant [9 x i8] c"CliError\00" +@tn.str.221 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.222 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.223 = private constant [8 x i8] c"Command\00" +@tn.str.224 = private constant [10 x i8] c"FlagValue\00" +@tn.str.225 = private constant [5 x i8] c"Diag\00" +@tn.str.226 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.227 = private constant [7 x i8] c"Parsed\00" +@tn.str.228 = private constant [8 x i8] c"*Parsed\00" +@tn.str.229 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.230 = private constant [10 x i8] c"[]Command\00" +@tn.str.231 = private constant [6 x i8] c"*Diag\00" +@tn.str.232 = private constant [7 x i8] c"[8]s64\00" +@tn.str.233 = private constant [7 x i8] c"[64]u8\00" +@tn.str.234 = private constant [7 x i8] c"Sha256\00" +@tn.str.235 = private constant [8 x i8] c"*Sha256\00" +@tn.str.236 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.237 = private constant [8 x i8] c"[64]s64\00" +@tn.str.238 = private constant [2 x i8] c"E\00" +@tn.str.239 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.240 = private constant [7 x i8] c"**void\00" +@tn.str.241 = private constant [3 x i8] c"*E\00" +@tn.str.242 = private constant [8 x i8] c"*string\00" +@tn.str.243 = private constant [6 x i8] c"[]Any\00" +@tn.str.244 = private constant [5 x i8] c"*Any\00" +@tn.str.245 = private constant [7 x i8] c"[1]Any\00" +@tn.str.246 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.247 = private constant [7 x i8] c"*[]Any\00" +@tn.str.248 = private constant [6 x i8] c"*bool\00" +@tn.str.249 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.250 = private constant [5 x i8] c"*f64\00" +@tn.str.251 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.252 = private constant [11 x i8] c"*Allocator\00" +@tn.str.253 = private constant [9 x i8] c"*Context\00" +@tn.str.254 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.255 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.256 = private constant [8 x i8] c"*Member\00" +@tn.str.257 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.258 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.259 = private constant [9 x i8] c"*Command\00" +@tn.str.260 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.261 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.262 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.263 = private constant [7 x i8] c"*Value\00" +@tn.str.264 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.265 = private constant [14 x i8] c"*Architecture\00" +@tn.str.266 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.267 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.268 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.269 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.270 = private constant [10 x i8] c"*[]string\00" +@tn.str.271 = private constant [6 x i8] c"*[]u8\00" +@tn.str.272 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.273 = private constant [11 x i8] c"*[]Command\00" +@tn.str.274 = private constant [6 x i8] c"**GPA\00" +@tn.str.275 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.276 = private constant [8 x i8] c"**Arena\00" +@tn.str.277 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.278 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.279 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.280 = private constant [7 x i8] c"**File\00" +@tn.str.281 = private constant [5 x i8] c"**u8\00" +@tn.str.282 = private constant [6 x i8] c"**s32\00" +@tn.str.283 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.284 = private constant [6 x i8] c"**u32\00" +@tn.str.285 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.286 = private constant [8 x i8] c"**Array\00" +@tn.str.287 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.288 = private constant [9 x i8] c"**Object\00" +@tn.str.289 = private constant [7 x i8] c"**Sink\00" +@tn.str.290 = private constant [9 x i8] c"**Parser\00" +@tn.str.291 = private constant [6 x i8] c"**s64\00" +@tn.str.292 = private constant [9 x i8] c"**Parsed\00" +@tn.str.293 = private constant [7 x i8] c"**Diag\00" +@tn.str.294 = private constant [9 x i8] c"**Sha256\00" +@tn.str.295 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.296 = private constant [8 x i8] c"***void\00" +@tn.str.297 = private constant [4 x i8] c"**E\00" +@tn.str.298 = private constant [9 x i8] c"**string\00" +@tn.str.299 = private constant [6 x i8] c"**Any\00" +@tn.str.300 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.301 = private constant [8 x i8] c"**[]Any\00" +@tn.str.302 = private constant [7 x i8] c"**bool\00" +@tn.str.303 = private constant [7 x i8] c"*?File\00" +@tn.str.304 = private constant [9 x i8] c"*?string\00" +@tn.str.305 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.306 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [162 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.146, i64 4 }, { ptr, i64 } { ptr @tn.str.147, i64 2 }, { 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 2 }, { ptr, i64 } { ptr @tn.str.152, i64 3 }, { ptr, i64 } { ptr @tn.str.153, i64 3 }, { ptr, i64 } { ptr @tn.str.154, i64 3 }, { ptr, i64 } { ptr @tn.str.155, i64 3 }, { ptr, i64 } { ptr @tn.str.156, i64 3 }, { ptr, i64 } { ptr @tn.str.157, i64 6 }, { ptr, i64 } { ptr @tn.str.158, i64 3 }, { ptr, i64 } { ptr @tn.str.159, i64 8 }, { ptr, i64 } { ptr @tn.str.160, i64 5 }, { ptr, i64 } { ptr @tn.str.161, i64 5 }, { ptr, i64 } { ptr @tn.str.162, i64 4 }, { ptr, i64 } { ptr @tn.str.163, i64 5 }, { ptr, i64 } { ptr @tn.str.164, i64 15 }, { ptr, i64 } { ptr @tn.str.165, i64 10 }, { ptr, i64 } { ptr @tn.str.166, i64 11 }, { ptr, i64 } { ptr @tn.str.167, i64 3 }, { ptr, i64 } { ptr @tn.str.168, i64 4 }, { ptr, i64 } { ptr @tn.str.169, i64 10 }, { ptr, i64 } { ptr @tn.str.170, i64 11 }, { ptr, i64 } { ptr @tn.str.171, i64 9 }, { ptr, i64 } { ptr @tn.str.172, i64 5 }, { ptr, i64 } { ptr @tn.str.173, i64 6 }, { ptr, i64 } { ptr @tn.str.174, i64 5 }, { ptr, i64 } { ptr @tn.str.175, i64 8 }, { ptr, i64 } { ptr @tn.str.176, i64 9 }, { ptr, i64 } { ptr @tn.str.177, i64 17 }, { ptr, i64 } { ptr @tn.str.178, i64 18 }, { ptr, i64 } { ptr @tn.str.179, i64 7 }, { ptr, i64 } { ptr @tn.str.180, i64 6 }, { ptr, i64 } { ptr @tn.str.181, i64 8 }, { ptr, i64 } { ptr @tn.str.182, i64 8 }, { ptr, i64 } { ptr @tn.str.183, i64 8 }, { ptr, i64 } { ptr @tn.str.184, i64 4 }, { ptr, i64 } { ptr @tn.str.185, i64 5 }, { ptr, i64 } { ptr @tn.str.186, i64 5 }, { ptr, i64 } { ptr @tn.str.187, i64 7 }, { ptr, i64 } { ptr @tn.str.188, i64 10 }, { ptr, i64 } { ptr @tn.str.189, i64 3 }, { ptr, i64 } { ptr @tn.str.190, i64 13 }, { ptr, i64 } { ptr @tn.str.191, i64 14 }, { ptr, i64 } { ptr @tn.str.192, i64 4 }, { ptr, i64 } { ptr @tn.str.193, i64 8 }, { ptr, i64 } { ptr @tn.str.194, i64 9 }, { ptr, i64 } { ptr @tn.str.195, i64 4 }, { ptr, i64 } { ptr @tn.str.196, i64 9 }, { ptr, i64 } { ptr @tn.str.197, i64 5 }, { ptr, i64 } { ptr @tn.str.198, i64 6 }, { ptr, i64 } { ptr @tn.str.199, i64 5 }, { ptr, i64 } { ptr @tn.str.200, i64 6 }, { ptr, i64 } { ptr @tn.str.201, i64 8 }, { ptr, i64 } { ptr @tn.str.202, i64 6 }, { ptr, i64 } { ptr @tn.str.203, i64 9 }, { ptr, i64 } { ptr @tn.str.204, i64 7 }, { ptr, i64 } { ptr @tn.str.205, i64 4 }, { ptr, i64 } { ptr @tn.str.206, i64 4 }, { ptr, i64 } { ptr @tn.str.207, i64 5 }, { ptr, i64 } { ptr @tn.str.208, i64 16 }, { ptr, i64 } { ptr @tn.str.209, i64 14 }, { ptr, i64 } { ptr @tn.str.210, i64 21 }, { ptr, i64 } { ptr @tn.str.211, i64 6 }, { ptr, i64 } { ptr @tn.str.212, i64 7 }, { ptr, i64 } { ptr @tn.str.213, i64 24 }, { ptr, i64 } { ptr @tn.str.214, i64 23 }, { ptr, i64 } { ptr @tn.str.215, i64 15 }, { ptr, i64 } { ptr @tn.str.216, i64 12 }, { ptr, i64 } { ptr @tn.str.217, i64 12 }, { ptr, i64 } { ptr @tn.str.218, i64 10 }, { ptr, i64 } { ptr @tn.str.219, i64 4 }, { ptr, i64 } { ptr @tn.str.220, i64 8 }, { ptr, i64 } { ptr @tn.str.221, i64 8 }, { ptr, i64 } { ptr @tn.str.222, i64 10 }, { ptr, i64 } { ptr @tn.str.223, i64 7 }, { ptr, i64 } { ptr @tn.str.224, i64 9 }, { ptr, i64 } { ptr @tn.str.225, i64 4 }, { ptr, i64 } { ptr @tn.str.226, i64 13 }, { ptr, i64 } { ptr @tn.str.227, i64 6 }, { ptr, i64 } { ptr @tn.str.228, i64 7 }, { ptr, i64 } { ptr @tn.str.229, i64 18 }, { ptr, i64 } { ptr @tn.str.230, i64 9 }, { ptr, i64 } { ptr @tn.str.231, i64 5 }, { ptr, i64 } { ptr @tn.str.232, i64 6 }, { ptr, i64 } { ptr @tn.str.233, i64 6 }, { ptr, i64 } { ptr @tn.str.234, i64 6 }, { ptr, i64 } { ptr @tn.str.235, i64 7 }, { ptr, i64 } { ptr @tn.str.236, i64 7 }, { ptr, i64 } { ptr @tn.str.237, i64 7 }, { ptr, i64 } { ptr @tn.str.238, i64 1 }, { ptr, i64 } { ptr @tn.str.239, i64 12 }, { ptr, i64 } { ptr @tn.str.240, i64 6 }, { ptr, i64 } { ptr @tn.str.241, i64 2 }, { ptr, i64 } { ptr @tn.str.242, i64 7 }, { ptr, i64 } { ptr @tn.str.243, i64 5 }, { ptr, i64 } { ptr @tn.str.244, i64 4 }, { ptr, i64 } { ptr @tn.str.245, i64 6 }, { ptr, i64 } { ptr @tn.str.246, i64 7 }, { ptr, i64 } { ptr @tn.str.247, i64 6 }, { ptr, i64 } { ptr @tn.str.248, i64 5 }, { ptr, i64 } { ptr @tn.str.249, i64 7 }, { ptr, i64 } { ptr @tn.str.250, i64 4 }, { ptr, i64 } { ptr @tn.str.251, i64 16 }, { ptr, i64 } { ptr @tn.str.252, i64 10 }, { ptr, i64 } { ptr @tn.str.253, i64 8 }, { ptr, i64 } { ptr @tn.str.254, i64 11 }, { ptr, i64 } { ptr @tn.str.255, i64 14 }, { ptr, i64 } { ptr @tn.str.256, i64 7 }, { ptr, i64 } { ptr @tn.str.257, i64 13 }, { ptr, i64 } { ptr @tn.str.258, i64 9 }, { ptr, i64 } { ptr @tn.str.259, i64 8 }, { ptr, i64 } { ptr @tn.str.260, i64 10 }, { ptr, i64 } { ptr @tn.str.261, i64 9 }, { ptr, i64 } { ptr @tn.str.262, i64 9 }, { ptr, i64 } { ptr @tn.str.263, i64 6 }, { ptr, i64 } { ptr @tn.str.264, i64 16 }, { ptr, i64 } { ptr @tn.str.265, i64 13 }, { ptr, i64 } { ptr @tn.str.266, i64 14 }, { ptr, i64 } { ptr @tn.str.267, i64 7 }, { ptr, i64 } { ptr @tn.str.268, i64 7 }, { ptr, i64 } { ptr @tn.str.269, i64 8 }, { ptr, i64 } { ptr @tn.str.270, i64 9 }, { ptr, i64 } { ptr @tn.str.271, i64 5 }, { ptr, i64 } { ptr @tn.str.272, i64 11 }, { ptr, i64 } { ptr @tn.str.273, i64 10 }, { ptr, i64 } { ptr @tn.str.274, i64 5 }, { ptr, i64 } { ptr @tn.str.275, i64 12 }, { ptr, i64 } { ptr @tn.str.276, i64 7 }, { ptr, i64 } { ptr @tn.str.277, i64 6 }, { ptr, i64 } { ptr @tn.str.278, i64 10 }, { ptr, i64 } { ptr @tn.str.279, i64 19 }, { ptr, i64 } { ptr @tn.str.280, i64 6 }, { ptr, i64 } { ptr @tn.str.281, i64 4 }, { ptr, i64 } { ptr @tn.str.282, i64 5 }, { ptr, i64 } { ptr @tn.str.283, i64 10 }, { ptr, i64 } { ptr @tn.str.284, i64 5 }, { ptr, i64 } { ptr @tn.str.285, i64 9 }, { ptr, i64 } { ptr @tn.str.286, i64 7 }, { ptr, i64 } { ptr @tn.str.287, i64 10 }, { ptr, i64 } { ptr @tn.str.288, i64 8 }, { ptr, i64 } { ptr @tn.str.289, i64 6 }, { ptr, i64 } { ptr @tn.str.290, i64 8 }, { ptr, i64 } { ptr @tn.str.291, i64 5 }, { ptr, i64 } { ptr @tn.str.292, i64 8 }, { ptr, i64 } { ptr @tn.str.293, i64 6 }, { ptr, i64 } { ptr @tn.str.294, i64 8 }, { ptr, i64 } { ptr @tn.str.295, i64 13 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 3 }, { ptr, i64 } { ptr @tn.str.298, i64 8 }, { ptr, i64 } { ptr @tn.str.299, i64 5 }, { ptr, i64 } { ptr @tn.str.300, i64 8 }, { ptr, i64 } { ptr @tn.str.301, i64 7 }, { ptr, i64 } { ptr @tn.str.302, i64 6 }, { ptr, i64 } { ptr @tn.str.303, i64 6 }, { ptr, i64 } { ptr @tn.str.304, i64 8 }, { ptr, i64 } { ptr @tn.str.305, i64 15 }, { ptr, i64 } { ptr @tn.str.306, i64 8 }] +@str.307 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.308 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.309 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.310 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.311 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.312 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.313 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.314 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.315 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.316 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.317 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.318 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.319 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.320 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.321 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.322 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.323 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.324 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.325 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.326 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.327 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@frame.str = private unnamed_addr constant [21 x i8] c"1009-errors-catch.sx\00" +@frame.str.328 = private unnamed_addr constant [5 x i8] c"must\00" +@frame.str.329 = private unnamed_addr constant [35 x i8] c" if n < 0 { raise error.Bad; }\00" +@trace.frame = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 20 }, i32 16, i32 17, { ptr, i64 } { ptr @frame.str.328, i64 4 }, { ptr, i64 } { ptr @frame.str.329, i64 34 } } +@frame.str.330 = private unnamed_addr constant [37 x i8] c" if n == 0 { raise error.Empty; }\00" +@trace.frame.331 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 20 }, i32 17, i32 17, { ptr, i64 } { ptr @frame.str.328, i64 4 }, { ptr, i64 } { ptr @frame.str.330, i64 36 } } +@frame.str.332 = private unnamed_addr constant [12 x i8] c"handle_some\00" +@frame.str.333 = private unnamed_addr constant [65 x i8] c" raise e; // re-raise the rest\00" +@trace.frame.334 = private constant { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } { { ptr, i64 } { ptr @frame.str, i64 20 }, i32 46, i32 9, { ptr, i64 } { ptr @frame.str.332, i64 11 }, { ptr, i64 } { ptr @frame.str.333, i64 64 } } +@str.335 = private unnamed_addr constant [18 x i8] c"catch result: {}\0A\00", align 1 +@str.336 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.337 = private unnamed_addr constant [18 x i8] c"catch result: {}\0A\00", align 1 +@str.338 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.339 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.340 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.341 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.136 = private constant [5 x i8] c"line\00" -@fld.str.137 = private constant [4 x i8] c"col\00" -@fld.str.138 = 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.136, i64 4 }, { ptr, i64 } { ptr @fld.str.137, i64 3 }, { ptr, i64 } { ptr @fld.str.138, i64 4 }] -@str.139 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.140 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.141 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.142 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.143 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.144 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.145 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.146 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.147 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.148 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.149 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.150 = private constant [12 x i8] c"alloc_count\00" -@field_names.151 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.150, i64 11 }] -@str.152 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.153 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.154 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.155 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.156 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.157 = private constant [5 x i8] c"next\00" -@fld.str.158 = private constant [4 x i8] c"cap\00" -@field_names.159 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.157, i64 4 }, { ptr, i64 } { ptr @fld.str.158, i64 3 }] -@str.160 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.161 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.162 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.163 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.165 = private constant [4 x i8] c"ctx\00" -@fld.str.166 = private constant [6 x i8] c"alloc\00" -@fld.str.167 = private constant [8 x i8] c"dealloc\00" -@field_names.168 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.165, i64 3 }, { ptr, i64 } { ptr @fld.str.166, i64 5 }, { ptr, i64 } { ptr @fld.str.167, i64 7 }] -@str.169 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.170 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.171 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.172 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.173 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.174 = private constant [6 x i8] c"first\00" -@fld.str.175 = private constant [10 x i8] c"end_index\00" -@fld.str.176 = private constant [7 x i8] c"parent\00" -@field_names.177 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.174, i64 5 }, { ptr, i64 } { ptr @fld.str.175, i64 9 }, { ptr, i64 } { ptr @fld.str.176, i64 6 }] -@str.178 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.179 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.180 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.181 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.182 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.183 = private constant [4 x i8] c"buf\00" -@fld.str.184 = private constant [4 x i8] c"len\00" -@fld.str.185 = private constant [4 x i8] c"pos\00" -@field_names.186 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.183, i64 3 }, { ptr, i64 } { ptr @fld.str.184, i64 3 }, { ptr, i64 } { ptr @fld.str.185, i64 3 }] -@str.187 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.188 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.189 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.190 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.191 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.192 = private constant [7 x i8] c"parent\00" -@fld.str.193 = private constant [12 x i8] c"alloc_count\00" -@fld.str.194 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.195 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.196 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.192, i64 6 }, { ptr, i64 } { ptr @fld.str.193, i64 11 }, { ptr, i64 } { ptr @fld.str.194, i64 13 }, { ptr, i64 } { ptr @fld.str.195, i64 17 }] -@str.197 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.198 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.199 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.200 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.201 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.202 = private constant [10 x i8] c"allocator\00" -@fld.str.203 = private constant [5 x i8] c"data\00" -@field_names.204 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.202, i64 9 }, { ptr, i64 } { ptr @fld.str.203, i64 4 }] -@str.205 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.206 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.207 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.208 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.209 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.210 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.211 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.212 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.213 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.214 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.215 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.216 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.217 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.218 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.219 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.220 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.221 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.222 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.223 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.224 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.225 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.226 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.227 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.228 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.229 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.230 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.231 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.232 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.233 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.234 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.235 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.236 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.237 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.238 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.239 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.240 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.241 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.242 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.243 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.244 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.245 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.246 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.247 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.248 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.249 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.250 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.251 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.252 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.253 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.254 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.255 = private unnamed_addr constant [11 x i8] c"*error_set\00", align 1 -@str.256 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.257 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.258 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.259 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.260 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.261 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.262 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.263 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.264 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.265 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.266 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.267 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.268 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.269 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.270 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.271 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.272 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.273 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.274 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.342 = private constant [5 x i8] c"line\00" +@fld.str.343 = private constant [4 x i8] c"col\00" +@fld.str.344 = 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.342, i64 4 }, { ptr, i64 } { ptr @fld.str.343, i64 3 }, { ptr, i64 } { ptr @fld.str.344, i64 4 }] +@str.345 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.346 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.347 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.348 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.349 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.350 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.351 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.352 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.353 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.354 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.355 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.356 = private constant [12 x i8] c"alloc_count\00" +@field_names.357 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.356, i64 11 }] +@str.358 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.359 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.360 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.361 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.362 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.363 = private constant [5 x i8] c"next\00" +@fld.str.364 = private constant [4 x i8] c"cap\00" +@field_names.365 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.363, i64 4 }, { ptr, i64 } { ptr @fld.str.364, i64 3 }] +@str.366 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.367 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.368 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.369 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.370 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.371 = private constant [4 x i8] c"ctx\00" +@fld.str.372 = private constant [6 x i8] c"alloc\00" +@fld.str.373 = private constant [8 x i8] c"dealloc\00" +@field_names.374 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.371, i64 3 }, { ptr, i64 } { ptr @fld.str.372, i64 5 }, { ptr, i64 } { ptr @fld.str.373, i64 7 }] +@str.375 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.376 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.377 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.378 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.379 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.380 = private constant [6 x i8] c"first\00" +@fld.str.381 = private constant [10 x i8] c"end_index\00" +@fld.str.382 = private constant [7 x i8] c"parent\00" +@field_names.383 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.380, i64 5 }, { ptr, i64 } { ptr @fld.str.381, i64 9 }, { ptr, i64 } { ptr @fld.str.382, i64 6 }] +@str.384 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.385 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.386 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.387 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.388 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.389 = private constant [4 x i8] c"buf\00" +@fld.str.390 = private constant [4 x i8] c"len\00" +@fld.str.391 = private constant [4 x i8] c"pos\00" +@field_names.392 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.389, i64 3 }, { ptr, i64 } { ptr @fld.str.390, i64 3 }, { ptr, i64 } { ptr @fld.str.391, i64 3 }] +@str.393 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.394 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.395 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.396 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.397 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.398 = private constant [7 x i8] c"parent\00" +@fld.str.399 = private constant [12 x i8] c"alloc_count\00" +@fld.str.400 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.401 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.402 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.398, i64 6 }, { ptr, i64 } { ptr @fld.str.399, i64 11 }, { ptr, i64 } { ptr @fld.str.400, i64 13 }, { ptr, i64 } { ptr @fld.str.401, i64 17 }] +@str.403 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.404 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.405 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.406 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.407 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.408 = private constant [10 x i8] c"allocator\00" +@fld.str.409 = private constant [5 x i8] c"data\00" +@field_names.410 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.408, i64 9 }, { ptr, i64 } { ptr @fld.str.409, i64 4 }] +@str.411 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.412 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.413 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.414 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.415 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.416 = private constant [3 x i8] c"fd\00" +@field_names.417 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.416, i64 2 }] +@str.418 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.419 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.420 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.421 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.422 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.423 = private constant [5 x i8] c"file\00" +@fld.str.424 = private constant [5 x i8] c"line\00" +@fld.str.425 = private constant [4 x i8] c"col\00" +@fld.str.426 = private constant [5 x i8] c"func\00" +@fld.str.427 = private constant [10 x i8] c"line_text\00" +@field_names.428 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.423, i64 4 }, { ptr, i64 } { ptr @fld.str.424, i64 4 }, { ptr, i64 } { ptr @fld.str.425, i64 3 }, { ptr, i64 } { ptr @fld.str.426, i64 4 }, { ptr, i64 } { ptr @fld.str.427, i64 9 }] +@str.429 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.430 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.431 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.432 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.433 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.434 = private constant [10 x i8] c"exit_code\00" +@fld.str.435 = private constant [7 x i8] c"stdout\00" +@field_names.436 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.434, i64 9 }, { ptr, i64 } { ptr @fld.str.435, i64 6 }] +@str.437 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.438 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.439 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.440 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.441 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.442 = private constant [8 x i8] c"sin_len\00" +@fld.str.443 = private constant [11 x i8] c"sin_family\00" +@fld.str.444 = private constant [9 x i8] c"sin_port\00" +@fld.str.445 = private constant [9 x i8] c"sin_addr\00" +@fld.str.446 = private constant [9 x i8] c"sin_zero\00" +@field_names.447 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.442, i64 7 }, { ptr, i64 } { ptr @fld.str.443, i64 10 }, { ptr, i64 } { ptr @fld.str.444, i64 8 }, { ptr, i64 } { ptr @fld.str.445, i64 8 }, { ptr, i64 } { ptr @fld.str.446, i64 8 }] +@str.448 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.449 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.450 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.451 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.452 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.453 = private constant [6 x i8] c"items\00" +@fld.str.454 = private constant [4 x i8] c"len\00" +@fld.str.455 = private constant [4 x i8] c"cap\00" +@field_names.456 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.453, i64 5 }, { ptr, i64 } { ptr @fld.str.454, i64 3 }, { ptr, i64 } { ptr @fld.str.455, i64 3 }] +@str.457 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.458 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.459 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.460 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.461 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.462 = private constant [6 x i8] c"items\00" +@fld.str.463 = private constant [4 x i8] c"len\00" +@fld.str.464 = private constant [4 x i8] c"cap\00" +@field_names.465 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.462, i64 5 }, { ptr, i64 } { ptr @fld.str.463, i64 3 }, { ptr, i64 } { ptr @fld.str.464, i64 3 }] +@str.466 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.467 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.468 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.469 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.470 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.471 = private constant [4 x i8] c"key\00" +@fld.str.472 = private constant [4 x i8] c"val\00" +@field_names.473 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.471, i64 3 }, { ptr, i64 } { ptr @fld.str.472, i64 3 }] +@str.474 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.475 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.476 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.477 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.478 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.479 = private constant [4 x i8] c"dst\00" +@fld.str.480 = private constant [4 x i8] c"pos\00" +@fld.str.481 = private constant [5 x i8] c"file\00" +@field_names.482 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.479, i64 3 }, { ptr, i64 } { ptr @fld.str.480, i64 3 }, { ptr, i64 } { ptr @fld.str.481, i64 4 }] +@str.483 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.484 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.485 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.486 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.487 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.488 = private constant [4 x i8] c"src\00" +@fld.str.489 = private constant [4 x i8] c"pos\00" +@fld.str.490 = private constant [6 x i8] c"alloc\00" +@field_names.491 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.488, i64 3 }, { ptr, i64 } { ptr @fld.str.489, i64 3 }, { ptr, i64 } { ptr @fld.str.490, i64 5 }] +@str.492 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.493 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.494 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.495 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.496 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.497 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.498 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.499 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.500 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.501 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.502 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.503 = private constant [5 x i8] c"name\00" +@fld.str.504 = private constant [12 x i8] c"takes_value\00" +@fld.str.505 = private constant [9 x i8] c"required\00" +@field_names.506 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.503, i64 4 }, { ptr, i64 } { ptr @fld.str.504, i64 11 }, { ptr, i64 } { ptr @fld.str.505, i64 8 }] +@str.507 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.508 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.509 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.510 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.511 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.512 = private constant [6 x i8] c"group\00" +@fld.str.513 = private constant [8 x i8] c"command\00" +@fld.str.514 = private constant [6 x i8] c"flags\00" +@field_names.515 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.512, i64 5 }, { ptr, i64 } { ptr @fld.str.513, i64 7 }, { ptr, i64 } { ptr @fld.str.514, i64 5 }] +@str.516 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.517 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.518 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.519 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.520 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.521 = private constant [4 x i8] c"set\00" +@fld.str.522 = private constant [6 x i8] c"value\00" +@field_names.523 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.521, i64 3 }, { ptr, i64 } { ptr @fld.str.522, i64 5 }] +@str.524 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.525 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.526 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.527 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.528 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.529 = private constant [6 x i8] c"index\00" +@fld.str.530 = private constant [6 x i8] c"token\00" +@field_names.531 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.529, i64 5 }, { ptr, i64 } { ptr @fld.str.530, i64 5 }] +@str.532 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.533 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.534 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.535 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.536 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.537 = private constant [6 x i8] c"group\00" +@fld.str.538 = private constant [8 x i8] c"command\00" +@fld.str.539 = private constant [10 x i8] c"cmd_index\00" +@fld.str.540 = private constant [5 x i8] c"json\00" +@fld.str.541 = private constant [5 x i8] c"rest\00" +@fld.str.542 = private constant [5 x i8] c"spec\00" +@fld.str.543 = private constant [7 x i8] c"values\00" +@field_names.544 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.537, i64 5 }, { ptr, i64 } { ptr @fld.str.538, i64 7 }, { ptr, i64 } { ptr @fld.str.539, i64 9 }, { ptr, i64 } { ptr @fld.str.540, i64 4 }, { ptr, i64 } { ptr @fld.str.541, i64 4 }, { ptr, i64 } { ptr @fld.str.542, i64 4 }, { ptr, i64 } { ptr @fld.str.543, i64 6 }] +@str.545 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.546 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.547 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.548 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.549 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.550 = private constant [2 x i8] c"h\00" +@fld.str.551 = private constant [4 x i8] c"buf\00" +@fld.str.552 = private constant [8 x i8] c"buf_len\00" +@fld.str.553 = private constant [10 x i8] c"total_len\00" +@field_names.554 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.550, i64 1 }, { ptr, i64 } { ptr @fld.str.551, i64 3 }, { ptr, i64 } { ptr @fld.str.552, i64 7 }, { ptr, i64 } { ptr @fld.str.553, i64 9 }] +@str.555 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.556 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.557 = private constant [5 x i8] c"read\00" +@fld.str.558 = private constant [6 x i8] c"write\00" +@fld.str.559 = private constant [7 x i8] c"append\00" +@fld.str.560 = private constant [11 x i8] c"read_write\00" +@field_names.561 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.557, i64 4 }, { ptr, i64 } { ptr @fld.str.558, i64 5 }, { ptr, i64 } { ptr @fld.str.559, i64 6 }, { ptr, i64 } { ptr @fld.str.560, i64 10 }] +@str.562 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.563 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.564 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.565 = private constant [4 x i8] c"set\00" +@fld.str.566 = private constant [8 x i8] c"current\00" +@fld.str.567 = private constant [4 x i8] c"end\00" +@field_names.568 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.565, i64 3 }, { ptr, i64 } { ptr @fld.str.566, i64 7 }, { ptr, i64 } { ptr @fld.str.567, i64 3 }] +@str.569 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.570 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.571 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.572 = private constant [6 x i8] c"null_\00" +@fld.str.573 = private constant [6 x i8] c"bool_\00" +@fld.str.574 = private constant [5 x i8] c"int_\00" +@fld.str.575 = private constant [4 x i8] c"str\00" +@fld.str.576 = private constant [6 x i8] c"array\00" +@fld.str.577 = private constant [7 x i8] c"object\00" +@field_names.578 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.572, i64 5 }, { ptr, i64 } { ptr @fld.str.573, i64 5 }, { ptr, i64 } { ptr @fld.str.574, i64 4 }, { ptr, i64 } { ptr @fld.str.575, i64 3 }, { ptr, i64 } { ptr @fld.str.576, i64 5 }, { ptr, i64 } { ptr @fld.str.577, i64 6 }] +@str.579 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.580 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.581 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.582 = private constant [6 x i8] c"macos\00" +@fld.str.583 = private constant [6 x i8] c"linux\00" +@fld.str.584 = private constant [8 x i8] c"windows\00" +@fld.str.585 = private constant [5 x i8] c"wasm\00" +@fld.str.586 = private constant [4 x i8] c"ios\00" +@fld.str.587 = private constant [8 x i8] c"android\00" +@fld.str.588 = private constant [8 x i8] c"unknown\00" +@field_names.589 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.582, i64 5 }, { ptr, i64 } { ptr @fld.str.583, i64 5 }, { ptr, i64 } { ptr @fld.str.584, i64 7 }, { ptr, i64 } { ptr @fld.str.585, i64 4 }, { ptr, i64 } { ptr @fld.str.586, i64 3 }, { ptr, i64 } { ptr @fld.str.587, i64 7 }, { ptr, i64 } { ptr @fld.str.588, i64 7 }] +@str.590 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.591 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.592 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.593 = private constant [8 x i8] c"aarch64\00" +@fld.str.594 = private constant [7 x i8] c"x86_64\00" +@fld.str.595 = private constant [7 x i8] c"wasm32\00" +@fld.str.596 = private constant [7 x i8] c"wasm64\00" +@fld.str.597 = private constant [8 x i8] c"unknown\00" +@field_names.598 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.593, i64 7 }, { ptr, i64 } { ptr @fld.str.594, i64 6 }, { ptr, i64 } { ptr @fld.str.595, i64 6 }, { ptr, i64 } { ptr @fld.str.596, i64 6 }, { ptr, i64 } { ptr @fld.str.597, i64 7 }] +@str.599 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.600 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.601 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.602 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.603 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.604 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.606 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.607 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.608 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.609 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.611 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.612 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.614 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.615 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.617 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.618 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.619 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.621 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.623 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.624 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.625 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.626 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.627 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.628 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.629 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.630 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.631 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.632 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.633 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.634 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.635 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.636 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.637 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.638 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.639 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.640 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.641 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.642 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.643 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.644 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.645 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.646 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.647 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.648 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.649 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.650 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.651 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.652 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.653 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.654 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.655 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.656 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.657 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.658 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.659 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.660 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.661 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.662 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.663 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.664 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.665 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.666 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.667 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.668 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.669 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.670 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.671 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.672 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.673 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.674 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.675 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.676 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.677 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.678 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.679 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.680 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.681 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.682 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.683 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.684 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.685 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.686 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.687 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.688 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.689 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.690 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.691 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.692 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.693 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.694 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.695 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.696 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.698 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.699 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.700 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.701 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.702 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.703 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.704 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.705 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.706 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.707 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.708 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.709 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.710 = private unnamed_addr constant [11 x i8] c"*error_set\00", align 1 +@str.711 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.712 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.713 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.714 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.715 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.716 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.717 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.718 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.719 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.720 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.722 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.723 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.724 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.725 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.726 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.727 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.728 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.729 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.730 = private unnamed_addr constant [5 x i8] c"null\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -495,7 +847,7 @@ entry: br i1 %icmp, label %if.then.86, label %if.merge.87 if.then.86: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.125, i64 1 } if.merge.87: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -622,7 +974,7 @@ if.else.109: ; preds = %entry br label %if.merge.110 if.merge.110: ; preds = %if.else.109, %if.then.108 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.108 ], [ { ptr @str.23, i64 5 }, %if.else.109 ] + %bp = phi { ptr, i64 } [ { ptr @str.126, i64 4 }, %if.then.108 ], [ { ptr @str.127, i64 5 }, %if.else.109 ] ret { ptr, i64 } %bp } @@ -791,38 +1143,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.234 + br label %while.hdr.401 -while.hdr.234: ; preds = %if.merge.239, %entry +while.hdr.401: ; preds = %if.merge.406, %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.235, label %while.exit.236 + br i1 %icmp, label %while.body.402, label %while.exit.403 -while.body.235: ; preds = %while.hdr.234 +while.body.402: ; preds = %while.hdr.401 %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.237, label %if.else.238 + br i1 %icmpN, label %if.then.404, label %if.else.405 -while.exit.236: ; preds = %while.hdr.234 +while.exit.403: ; preds = %while.hdr.401 ret void -if.then.237: ; preds = %while.body.235 +if.then.404: ; preds = %while.body.402 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.239 + br label %if.merge.406 -if.else.238: ; preds = %while.body.235 +if.else.405: ; preds = %while.body.402 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.239 + br label %if.merge.406 -if.merge.239: ; preds = %if.else.238, %if.then.237 - %bp = phi i64 [ %addN, %if.then.237 ], [ %addN, %if.else.238 ] +if.merge.406: ; preds = %if.else.405, %if.then.404 + %bp = phi i64 [ %addN, %if.then.404 ], [ %addN, %if.else.405 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -835,7 +1187,7 @@ if.merge.239: ; preds = %if.else.238, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.234 + br label %while.hdr.401 } ; Function Attrs: nounwind @@ -953,12 +1305,12 @@ entry: 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.232, label %if.merge.233 + br i1 %icmp, label %if.then.399, label %if.merge.400 -if.then.232: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.399: ; preds = %entry + ret { ptr, i64 } { ptr @str.128, i64 1 } -if.merge.233: ; preds = %entry +if.merge.400: ; 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 @@ -989,14 +1341,14 @@ if.merge.233: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.240 + br label %while.hdr.407 -while.hdr.240: ; preds = %if.merge.244, %if.merge.233 +while.hdr.407: ; preds = %if.merge.411, %if.merge.400 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.241, label %while.exit.242 + br i1 %icmpN, label %while.body.408, label %while.exit.409 -while.body.241: ; preds = %while.hdr.240 +while.body.408: ; preds = %while.hdr.407 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1004,9 +1356,9 @@ while.body.241: ; preds = %while.hdr.240 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.243, label %if.merge.244 + br i1 %icmpN, label %if.then.410, label %if.merge.411 -while.exit.242: ; preds = %if.then.243, %while.hdr.240 +while.exit.409: ; preds = %if.then.410, %while.hdr.407 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1014,14 +1366,14 @@ while.exit.242: ; preds = %if.then.243, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.243: ; preds = %while.body.241 - br label %while.exit.242 +if.then.410: ; preds = %while.body.408 + br label %while.exit.409 -if.merge.244: ; preds = %while.body.241 +if.merge.411: ; preds = %while.body.408 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.240 + br label %while.hdr.407 } ; Function Attrs: nounwind @@ -1098,13 +1450,15 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.129, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1137,11 +1491,42 @@ entry: i64 30, label %match.arm.73 i64 32, label %match.arm.73 i64 34, label %match.arm.73 - i64 37, label %match.arm.75 + i64 39, label %match.arm.73 + i64 43, label %match.arm.73 + i64 45, label %match.arm.73 + i64 48, label %match.arm.73 + i64 52, label %match.arm.73 + i64 53, label %match.arm.73 + i64 55, label %match.arm.73 + i64 61, label %match.arm.73 + i64 66, label %match.arm.73 + i64 72, label %match.arm.73 + i64 76, label %match.arm.73 + i64 78, label %match.arm.73 + i64 79, label %match.arm.73 + i64 80, label %match.arm.73 + i64 82, label %match.arm.73 + i64 89, label %match.arm.73 + i64 37, label %match.arm.74 + i64 38, label %match.arm.74 + i64 54, label %match.arm.74 + i64 70, label %match.arm.74 + i64 71, label %match.arm.74 + i64 51, label %match.arm.75 + i64 64, label %match.arm.75 + i64 75, label %match.arm.75 + i64 93, label %match.arm.75 i64 35, label %match.arm.77 - i64 46, label %match.arm.77 + i64 81, label %match.arm.77 + i64 87, label %match.arm.77 + i64 88, label %match.arm.77 + i64 92, label %match.arm.77 + i64 100, label %match.arm.77 i64 36, label %match.arm.78 - i64 44, label %match.arm.78 + i64 60, label %match.arm.78 + i64 77, label %match.arm.78 + i64 85, label %match.arm.78 + i64 98, label %match.arm.78 i64 18, label %match.arm.79 i64 21, label %match.arm.79 i64 23, label %match.arm.79 @@ -1150,26 +1535,42 @@ entry: i64 29, label %match.arm.79 i64 31, label %match.arm.79 i64 33, label %match.arm.79 - i64 38, label %match.arm.79 - i64 39, label %match.arm.79 i64 40, label %match.arm.79 - i64 41, label %match.arm.79 - i64 42, label %match.arm.79 - i64 43, label %match.arm.79 - i64 45, label %match.arm.79 + i64 44, label %match.arm.79 i64 47, label %match.arm.79 - i64 48, label %match.arm.79 i64 49, label %match.arm.79 i64 50, label %match.arm.79 + i64 56, label %match.arm.79 + i64 57, label %match.arm.79 + i64 58, label %match.arm.79 + i64 59, label %match.arm.79 + i64 62, label %match.arm.79 + i64 67, label %match.arm.79 + i64 74, label %match.arm.79 + i64 83, label %match.arm.79 + i64 86, label %match.arm.79 + i64 90, label %match.arm.79 + i64 94, label %match.arm.79 + i64 95, label %match.arm.79 + i64 96, label %match.arm.79 + i64 97, label %match.arm.79 + i64 99, label %match.arm.79 + i64 101, label %match.arm.79 + i64 102, label %match.arm.79 + i64 103, label %match.arm.79 + i64 41, label %match.arm.80 + i64 42, label %match.arm.80 + i64 46, label %match.arm.80 + i64 91, label %match.arm.80 i64 13, label %match.arm.81 ] -match.merge.67: ; preds = %dispatch.merge.208, %dispatch.merge.194, %dispatch.merge.180, %dispatch.merge.124, %float.merge.113, %if.merge.85, %match.unr.82, %match.arm.81, %match.arm.75, %match.arm.71, %match.arm.70, %match.arm.68 +match.merge.67: ; preds = %dispatch.merge.502, %dispatch.merge.363, %dispatch.merge.331, %dispatch.merge.293, %dispatch.merge.276, %dispatch.merge.124, %float.merge.113, %if.merge.85, %match.unr.82, %match.arm.81, %match.arm.75, %match.arm.71, %match.arm.70, %match.arm.68 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.68: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.130, i64 0 }, ptr %allocaN, align 8 br label %match.merge.67 match.arm.69: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1178,7 +1579,7 @@ match.arm.69: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [75 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [162 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.83, label %if.else.84 @@ -1206,7 +1607,7 @@ match.arm.72: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.111, label %fN.unbox.112 -match.arm.73: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.73: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1220,19 +1621,44 @@ match.arm.73: ; preds = %entry, %entry, %ent i64 30, label %dispatch.case.132 i64 32, label %dispatch.case.133 i64 34, label %dispatch.case.134 + i64 39, label %dispatch.case.135 + i64 43, label %dispatch.case.136 + i64 45, label %dispatch.case.137 + i64 48, label %dispatch.case.138 + i64 52, label %dispatch.case.139 + i64 53, label %dispatch.case.140 + i64 55, label %dispatch.case.141 + i64 61, label %dispatch.case.142 + i64 66, label %dispatch.case.143 + i64 72, label %dispatch.case.144 + i64 76, label %dispatch.case.145 + i64 78, label %dispatch.case.146 + i64 79, label %dispatch.case.147 + i64 80, label %dispatch.case.148 + i64 82, label %dispatch.case.149 + i64 89, label %dispatch.case.150 ] -match.arm.74: ; No predecessors! - unreachable - -match.arm.75: ; preds = %entry +match.arm.74: ; preds = %entry, %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw21 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw21 to i32 + switch i64 %ua.raw20, label %dispatch.default.277 [ + i64 37, label %dispatch.case.278 + i64 38, label %dispatch.case.279 + i64 54, label %dispatch.case.280 + i64 70, label %dispatch.case.281 + i64 71, label %dispatch.case.282 + ] + +match.arm.75: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [3 x { ptr, i64 }], ptr @tag_names, i64 0, i64 %etn.idx + %etn.gep = getelementptr inbounds [16 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.67 @@ -1240,60 +1666,87 @@ match.arm.75: ; preds = %entry match.arm.76: ; No predecessors! unreachable -match.arm.77: ; preds = %entry, %entry - %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 - %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw25, label %dispatch.default.181 [ - i64 35, label %dispatch.case.182 - i64 46, label %dispatch.case.183 - ] - -match.arm.78: ; preds = %entry, %entry +match.arm.77: ; preds = %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw29, label %dispatch.default.195 [ - i64 36, label %dispatch.case.196 - i64 44, label %dispatch.case.197 + switch i64 %ua.raw29, label %dispatch.default.294 [ + i64 35, label %dispatch.case.295 + i64 81, label %dispatch.case.296 + i64 87, label %dispatch.case.297 + i64 88, label %dispatch.case.298 + i64 92, label %dispatch.case.299 + i64 100, label %dispatch.case.300 ] -match.arm.79: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.78: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw33, label %dispatch.default.209 [ - i64 18, label %dispatch.case.210 - i64 21, label %dispatch.case.211 - i64 23, label %dispatch.case.212 - i64 25, label %dispatch.case.213 - i64 28, label %dispatch.case.214 - i64 29, label %dispatch.case.215 - i64 31, label %dispatch.case.216 - i64 33, label %dispatch.case.217 - i64 38, label %dispatch.case.218 - i64 39, label %dispatch.case.219 - i64 40, label %dispatch.case.220 - i64 41, label %dispatch.case.221 - i64 42, label %dispatch.case.222 - i64 43, label %dispatch.case.223 - i64 45, label %dispatch.case.224 - i64 47, label %dispatch.case.225 - i64 48, label %dispatch.case.226 - i64 49, label %dispatch.case.227 - i64 50, label %dispatch.case.228 + switch i64 %ua.raw33, label %dispatch.default.332 [ + i64 36, label %dispatch.case.333 + i64 60, label %dispatch.case.334 + i64 77, label %dispatch.case.335 + i64 85, label %dispatch.case.336 + i64 98, label %dispatch.case.337 ] -match.arm.80: ; No predecessors! - unreachable +match.arm.79: ; 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 + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw37, label %dispatch.default.364 [ + i64 18, label %dispatch.case.365 + i64 21, label %dispatch.case.366 + i64 23, label %dispatch.case.367 + i64 25, label %dispatch.case.368 + i64 28, label %dispatch.case.369 + i64 29, label %dispatch.case.370 + i64 31, label %dispatch.case.371 + i64 33, label %dispatch.case.372 + i64 40, label %dispatch.case.373 + i64 44, label %dispatch.case.374 + i64 47, label %dispatch.case.375 + i64 49, label %dispatch.case.376 + i64 50, label %dispatch.case.377 + i64 56, label %dispatch.case.378 + i64 57, label %dispatch.case.379 + i64 58, label %dispatch.case.380 + i64 59, label %dispatch.case.381 + i64 62, label %dispatch.case.382 + i64 67, label %dispatch.case.383 + i64 74, label %dispatch.case.384 + i64 83, label %dispatch.case.385 + i64 86, label %dispatch.case.386 + i64 90, label %dispatch.case.387 + i64 94, label %dispatch.case.388 + i64 95, label %dispatch.case.389 + i64 96, label %dispatch.case.390 + i64 97, label %dispatch.case.391 + i64 99, label %dispatch.case.392 + i64 101, label %dispatch.case.393 + i64 102, label %dispatch.case.394 + i64 103, label %dispatch.case.395 + ] + +match.arm.80: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.503 [ + i64 41, label %dispatch.case.504 + i64 42, label %dispatch.case.505 + i64 46, label %dispatch.case.506 + i64 91, label %dispatch.case.507 + ] match.arm.81: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag37 = extractvalue { i64, i64 } %loadN, 0 - %refl.val38 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype39 = icmp eq i64 %refl.tag37, 13 - %refl.tid40 = select i1 %refl.istype39, i64 %refl.val38, i64 %refl.tag37 - %tn.gep = getelementptr inbounds [75 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid40 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [162 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.67 @@ -1303,15 +1756,15 @@ match.unr.82: ; preds = %entry if.then.83: ; preds = %match.arm.69 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw42 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw42) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.85 if.else.84: ; preds = %match.arm.69 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw45 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw45) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.85 @@ -1319,16 +1772,16 @@ if.merge.85: ; preds = %if.else.84, %if.the br label %match.merge.67 f32.unbox.111: ; preds = %match.arm.72 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw47 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.113 f64.unbox.112: ; preds = %match.arm.72 - %ua.raw48 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw48 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.113 @@ -1338,278 +1791,628 @@ float.merge.113: ; preds = %fN.unbox.112, %fN.u store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.67 -dispatch.merge.124: ; preds = %dispatch.case.134, %dispatch.case.133, %dispatch.case.132, %dispatch.case.131, %dispatch.case.130, %dispatch.case.129, %dispatch.case.128, %dispatch.case.127, %dispatch.case.126, %dispatch.default.125 +dispatch.merge.124: ; preds = %dispatch.case.150, %dispatch.case.149, %dispatch.case.148, %dispatch.case.147, %dispatch.case.146, %dispatch.case.145, %dispatch.case.144, %dispatch.case.143, %dispatch.case.142, %dispatch.case.141, %dispatch.case.140, %dispatch.case.139, %dispatch.case.138, %dispatch.case.137, %dispatch.case.136, %dispatch.case.135, %dispatch.case.134, %dispatch.case.133, %dispatch.case.132, %dispatch.case.131, %dispatch.case.130, %dispatch.case.129, %dispatch.case.128, %dispatch.case.127, %dispatch.case.126, %dispatch.default.125 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.67 dispatch.default.125: ; preds = %match.arm.73 - store { ptr, i64 } { ptr @str.103, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.307, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.126: ; preds = %match.arm.73 - %ua.raw52 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr53 = inttoptr i64 %ua.raw52 to ptr - %ua.load54 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr53, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load54) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.127: ; preds = %match.arm.73 - %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr57 = inttoptr i64 %ua.raw56 to ptr - %ua.load58 = load {}, ptr %ua.ptr57, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load58) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.128: ; preds = %match.arm.73 - %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr - %ua.load62 = load { i64 }, ptr %ua.ptr61, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load62) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.129: ; preds = %match.arm.73 - %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr - %ua.load66 = load { ptr, i64 }, ptr %ua.ptr65, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load66) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.130: ; preds = %match.arm.73 - %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr - %ua.load70 = load { ptr, ptr, ptr }, ptr %ua.ptr69, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load70) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.131: ; preds = %match.arm.73 - %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr - %ua.load74 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr73, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load74) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.132: ; preds = %match.arm.73 - %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr - %ua.load78 = load { ptr, i64, i64 }, ptr %ua.ptr77, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load78) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.133: ; preds = %match.arm.73 - %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr - %ua.load82 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr81, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load82) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 dispatch.case.134: ; preds = %match.arm.73 - %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr - %ua.load86 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr85, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load86) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.124 -dispatch.merge.180: ; preds = %dispatch.case.183, %dispatch.case.182, %dispatch.default.181 +dispatch.case.135: ; preds = %match.arm.73 + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.136: ; preds = %match.arm.73 + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.137: ; preds = %match.arm.73 + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.138: ; preds = %match.arm.73 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.139: ; preds = %match.arm.73 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.140: ; preds = %match.arm.73 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.141: ; preds = %match.arm.73 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.142: ; preds = %match.arm.73 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.143: ; preds = %match.arm.73 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.144: ; preds = %match.arm.73 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.145: ; preds = %match.arm.73 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.146: ; preds = %match.arm.73 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.147: ; preds = %match.arm.73 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.148: ; preds = %match.arm.73 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.149: ; preds = %match.arm.73 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.case.150: ; preds = %match.arm.73 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.124 + +dispatch.merge.276: ; preds = %dispatch.case.282, %dispatch.case.281, %dispatch.case.280, %dispatch.case.279, %dispatch.case.278, %dispatch.default.277 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.67 -dispatch.default.181: ; preds = %match.arm.77 - store { ptr, i64 } { ptr @str.104, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.180 +dispatch.default.277: ; preds = %match.arm.74 + store { ptr, i64 } { ptr @str.308, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.276 -dispatch.case.182: ; preds = %match.arm.77 - %ua.raw89 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr90 = inttoptr i64 %ua.raw89 to ptr - %ua.load91 = load [4 x i64], ptr %ua.ptr90, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load91) +dispatch.case.278: ; preds = %match.arm.74 + %ua.raw161 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw161) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.180 + br label %dispatch.merge.276 -dispatch.case.183: ; preds = %match.arm.77 - %ua.raw93 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr94 = inttoptr i64 %ua.raw93 to ptr - %ua.load95 = load [1 x { i64, i64 }], ptr %ua.ptr94, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load95) +dispatch.case.279: ; preds = %match.arm.74 + %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw163) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.180 + br label %dispatch.merge.276 -dispatch.merge.194: ; preds = %dispatch.case.197, %dispatch.case.196, %dispatch.default.195 +dispatch.case.280: ; preds = %match.arm.74 + %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr166 = inttoptr i64 %ua.raw165 to ptr + %ua.load167 = load { i64, [24 x i8] }, ptr %ua.ptr166, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load167) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.276 + +dispatch.case.281: ; preds = %match.arm.74 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw169) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.276 + +dispatch.case.282: ; preds = %match.arm.74 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw171) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.276 + +dispatch.merge.293: ; preds = %dispatch.case.300, %dispatch.case.299, %dispatch.case.298, %dispatch.case.297, %dispatch.case.296, %dispatch.case.295, %dispatch.default.294 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.67 -dispatch.default.195: ; preds = %match.arm.78 - store { ptr, i64 } { ptr @str.105, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.194 +dispatch.default.294: ; preds = %match.arm.77 + store { ptr, i64 } { ptr @str.309, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.293 -dispatch.case.196: ; preds = %match.arm.78 - %ua.raw98 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr99 = inttoptr i64 %ua.raw98 to ptr - %ua.load100 = load { ptr, i64 }, ptr %ua.ptr99, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load100) +dispatch.case.295: ; preds = %match.arm.77 + %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr175 = inttoptr i64 %ua.raw174 to ptr + %ua.load176 = load [4 x i64], ptr %ua.ptr175, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load176) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.194 + br label %dispatch.merge.293 -dispatch.case.197: ; preds = %match.arm.78 - %ua.raw102 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr103 = inttoptr i64 %ua.raw102 to ptr - %ua.load104 = load { ptr, i64 }, ptr %ua.ptr103, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load104) +dispatch.case.296: ; preds = %match.arm.77 + %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr179 = inttoptr i64 %ua.raw178 to ptr + %ua.load180 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr179, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load180) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.194 + br label %dispatch.merge.293 -dispatch.merge.208: ; preds = %dispatch.case.228, %dispatch.case.227, %dispatch.case.226, %dispatch.case.225, %dispatch.case.224, %dispatch.case.223, %dispatch.case.222, %dispatch.case.221, %dispatch.case.220, %dispatch.case.219, %dispatch.case.218, %dispatch.case.217, %dispatch.case.216, %dispatch.case.215, %dispatch.case.214, %dispatch.case.213, %dispatch.case.212, %dispatch.case.211, %dispatch.case.210, %dispatch.default.209 +dispatch.case.297: ; preds = %match.arm.77 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [8 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load184) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.293 + +dispatch.case.298: ; preds = %match.arm.77 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [64 x i8], ptr %ua.ptr187, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load188) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.293 + +dispatch.case.299: ; preds = %match.arm.77 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [64 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load192) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.293 + +dispatch.case.300: ; preds = %match.arm.77 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [1 x { i64, i64 }], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.293 + +dispatch.merge.331: ; preds = %dispatch.case.337, %dispatch.case.336, %dispatch.case.335, %dispatch.case.334, %dispatch.case.333, %dispatch.default.332 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.67 -dispatch.default.209: ; preds = %match.arm.79 - store { ptr, i64 } { ptr @str.106, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.208 +dispatch.default.332: ; preds = %match.arm.78 + store { ptr, i64 } { ptr @str.310, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.331 -dispatch.case.210: ; preds = %match.arm.79 - %ua.raw107 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw107 to ptr +dispatch.case.333: ; preds = %match.arm.78 + %ua.raw199 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr200 = inttoptr i64 %ua.raw199 to ptr + %ua.load201 = load { ptr, i64 }, ptr %ua.ptr200, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load201) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.334: ; preds = %match.arm.78 + %ua.raw203 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr204 = inttoptr i64 %ua.raw203 to ptr + %ua.load205 = load { ptr, i64 }, ptr %ua.ptr204, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load205) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.335: ; preds = %match.arm.78 + %ua.raw207 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr208 = inttoptr i64 %ua.raw207 to ptr + %ua.load209 = load { ptr, i64 }, ptr %ua.ptr208, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load209) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.336: ; preds = %match.arm.78 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load213) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.case.337: ; preds = %match.arm.78 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load217) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.331 + +dispatch.merge.363: ; preds = %dispatch.case.395, %dispatch.case.394, %dispatch.case.393, %dispatch.case.392, %dispatch.case.391, %dispatch.case.390, %dispatch.case.389, %dispatch.case.388, %dispatch.case.387, %dispatch.case.386, %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.default.364 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.67 + +dispatch.default.364: ; preds = %match.arm.79 + store { ptr, i64 } { ptr @str.311, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.365: ; preds = %match.arm.79 + %ua.raw220 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw220 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.211: ; preds = %match.arm.79 - %ua.raw109 = extractvalue { i64, i64 } %loadN, 1 - %iNp110 = inttoptr i64 %ua.raw109 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp110) +dispatch.case.366: ; preds = %match.arm.79 + %ua.raw222 = extractvalue { i64, i64 } %loadN, 1 + %iNp223 = inttoptr i64 %ua.raw222 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp223) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.212: ; preds = %match.arm.79 - %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 - %iNp113 = inttoptr i64 %ua.raw112 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp113) +dispatch.case.367: ; preds = %match.arm.79 + %ua.raw225 = extractvalue { i64, i64 } %loadN, 1 + %iNp226 = inttoptr i64 %ua.raw225 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp226) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.213: ; preds = %match.arm.79 - %ua.raw115 = extractvalue { i64, i64 } %loadN, 1 - %iNp116 = inttoptr i64 %ua.raw115 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp116) +dispatch.case.368: ; preds = %match.arm.79 + %ua.raw228 = extractvalue { i64, i64 } %loadN, 1 + %iNp229 = inttoptr i64 %ua.raw228 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp229) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.214: ; preds = %match.arm.79 - %ua.raw118 = extractvalue { i64, i64 } %loadN, 1 - %iNp119 = inttoptr i64 %ua.raw118 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp119) +dispatch.case.369: ; preds = %match.arm.79 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %iNp232 = inttoptr i64 %ua.raw231 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp232) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.215: ; preds = %match.arm.79 - %ua.raw121 = extractvalue { i64, i64 } %loadN, 1 - %iNp122 = inttoptr i64 %ua.raw121 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp122) +dispatch.case.370: ; preds = %match.arm.79 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.216: ; preds = %match.arm.79 - %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 - %iNp125 = inttoptr i64 %ua.raw124 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp125) +dispatch.case.371: ; preds = %match.arm.79 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.217: ; preds = %match.arm.79 - %ua.raw127 = extractvalue { i64, i64 } %loadN, 1 - %iNp128 = inttoptr i64 %ua.raw127 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp128) +dispatch.case.372: ; preds = %match.arm.79 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.218: ; preds = %match.arm.79 - %ua.raw130 = extractvalue { i64, i64 } %loadN, 1 - %iNp131 = inttoptr i64 %ua.raw130 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp131) +dispatch.case.373: ; preds = %match.arm.79 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.219: ; preds = %match.arm.79 - %ua.raw133 = extractvalue { i64, i64 } %loadN, 1 - %iNp134 = inttoptr i64 %ua.raw133 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp134) +dispatch.case.374: ; preds = %match.arm.79 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.220: ; preds = %match.arm.79 - %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 - %iNp137 = inttoptr i64 %ua.raw136 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp137) +dispatch.case.375: ; preds = %match.arm.79 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.221: ; preds = %match.arm.79 - %ua.raw139 = extractvalue { i64, i64 } %loadN, 1 - %iNp140 = inttoptr i64 %ua.raw139 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp140) +dispatch.case.376: ; preds = %match.arm.79 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.222: ; preds = %match.arm.79 - %ua.raw142 = extractvalue { i64, i64 } %loadN, 1 - %iNp143 = inttoptr i64 %ua.raw142 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp143) +dispatch.case.377: ; preds = %match.arm.79 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.223: ; preds = %match.arm.79 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp146) +dispatch.case.378: ; preds = %match.arm.79 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.224: ; preds = %match.arm.79 - %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp149) +dispatch.case.379: ; preds = %match.arm.79 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.225: ; preds = %match.arm.79 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp152) +dispatch.case.380: ; preds = %match.arm.79 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.226: ; preds = %match.arm.79 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp155) +dispatch.case.381: ; preds = %match.arm.79 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.227: ; preds = %match.arm.79 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp158) +dispatch.case.382: ; preds = %match.arm.79 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 -dispatch.case.228: ; preds = %match.arm.79 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp161) +dispatch.case.383: ; preds = %match.arm.79 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.208 + br label %dispatch.merge.363 + +dispatch.case.384: ; preds = %match.arm.79 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp277) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.385: ; preds = %match.arm.79 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp280) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.386: ; preds = %match.arm.79 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp283) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.387: ; preds = %match.arm.79 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp286) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.388: ; preds = %match.arm.79 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp289) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.389: ; preds = %match.arm.79 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.390: ; preds = %match.arm.79 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_error_set(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.391: ; preds = %match.arm.79 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.392: ; preds = %match.arm.79 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.393: ; preds = %match.arm.79 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.394: ; preds = %match.arm.79 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.case.395: ; preds = %match.arm.79 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.363 + +dispatch.merge.502: ; preds = %dispatch.case.507, %dispatch.case.506, %dispatch.case.505, %dispatch.case.504, %dispatch.default.503 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.67 + +dispatch.default.503: ; preds = %match.arm.80 + store { ptr, i64 } { ptr @str.312, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.502 + +dispatch.case.504: ; preds = %match.arm.80 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr314 = inttoptr i64 %ua.raw313 to ptr + %ua.load315 = load { { i32 }, i1 }, ptr %ua.ptr314, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load315) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.502 + +dispatch.case.505: ; preds = %match.arm.80 + %ua.raw317 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr318 = inttoptr i64 %ua.raw317 to ptr + %ua.load319 = load { { ptr, i64 }, i1 }, ptr %ua.ptr318, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.502 + +dispatch.case.506: ; preds = %match.arm.80 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr322 = inttoptr i64 %ua.raw321 to ptr + %ua.load323 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr322, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.502 + +dispatch.case.507: ; preds = %match.arm.80 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr326 = inttoptr i64 %ua.raw325 to ptr + %ua.load327 = load { [64 x i8], i1 }, ptr %ua.ptr326, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load327) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.502 } ; Function Attrs: nounwind @@ -1618,7 +2421,7 @@ 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.107, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.313, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1714,7 +2517,7 @@ if.merge.41: ; preds = %if.merge.55, %if.me if.then.42: ; preds = %if.then.39 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.108, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.314, 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 @@ -1722,7 +2525,7 @@ if.then.42: ; preds = %if.then.39 %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.109, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.315, 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 @@ -1732,13 +2535,13 @@ if.then.42: ; preds = %if.then.39 %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.110, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.316, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.43 if.merge.43: ; preds = %if.then.42, %if.then.39 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.111, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.317, 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 @@ -1746,7 +2549,7 @@ if.merge.43: ; preds = %if.then.42, %if.the %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.112, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.318, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1760,7 +2563,7 @@ if.merge.43: ; preds = %if.then.42, %if.the if.then.53: ; preds = %if.else.40 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.113, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.319, 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 @@ -1768,7 +2571,7 @@ if.then.53: ; preds = %if.else.40 %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.114, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.320, 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 @@ -1779,7 +2582,7 @@ if.then.53: ; preds = %if.else.40 %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.115, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.321, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1836,7 +2639,7 @@ if.merge.61: ; preds = %if.merge.64, %if.el if.then.62: ; preds = %if.then.59 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.116, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.322, 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 @@ -1844,7 +2647,7 @@ if.then.62: ; preds = %if.then.59 %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.117, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.323, 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 @@ -1855,7 +2658,7 @@ if.then.62: ; preds = %if.then.59 %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.118, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.324, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1875,7 +2678,7 @@ if.merge.64: ; preds = %if.else.63, %if.the if.then.65: ; preds = %while.exit.32 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.119, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.325, 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 @@ -1883,7 +2686,7 @@ if.then.65: ; preds = %while.exit.32 %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.120, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.326, 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 @@ -1894,7 +2697,7 @@ if.then.65: ; preds = %while.exit.32 %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.121, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.327, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.66 @@ -1971,6 +2774,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i32 @must(ptr %0, i32 %1) #0 { entry: @@ -1982,7 +3523,7 @@ entry: br i1 %icmp, label %if.then.0, label %if.merge.1 if.then.0: ; preds = %entry - ret i32 1 + ret i32 14 if.merge.1: ; preds = %entry %loadN = load i32, ptr %alloca, align 4 @@ -1991,7 +3532,7 @@ if.merge.1: ; preds = %entry br i1 %icmpN, label %if.then.2, label %if.merge.3 if.then.2: ; preds = %if.merge.1 - ret i32 2 + ret i32 15 if.merge.3: ; preds = %if.merge.1 ret i32 0 @@ -2008,7 +3549,7 @@ entry: br i1 %icmp, label %catch.handle.10, label %catch.merge.11 catch.handle.10: ; preds = %entry - %icmpN = icmp eq i32 %call, 1 + %icmpN = icmp eq i32 %call, 14 br i1 %icmpN, label %if.then.12, label %if.merge.13 catch.merge.11: ; preds = %entry @@ -2018,7 +3559,7 @@ if.then.12: ; preds = %catch.handle.10 ret i32 1 if.merge.13: ; preds = %catch.handle.10 - %icmpN = icmp eq i32 %call, 2 + %icmpN = icmp eq i32 %call, 15 br i1 %icmpN, label %if.then.14, label %if.merge.15 if.then.14: ; preds = %if.merge.13 @@ -2040,8 +3581,8 @@ entry: catch.handle.24: ; preds = %entry switch i32 %call, label %match.arm.29 [ - i32 1, label %match.arm.27 - i32 2, label %match.arm.28 + i32 14, label %match.arm.27 + i32 15, label %match.arm.28 ] catch.merge.25: ; preds = %match.merge.26, %entry @@ -2071,7 +3612,7 @@ entry: br i1 %icmp, label %catch.handle.16, label %catch.merge.17 catch.handle.16: ; preds = %entry - %icmpN = icmp eq i32 %call, 1 + %icmpN = icmp eq i32 %call, 14 br i1 %icmpN, label %if.then.18, label %if.merge.19 catch.merge.17: ; preds = %entry @@ -2096,7 +3637,7 @@ entry: br i1 %icmp, label %catch.handle.4, label %catch.merge.5 catch.handle.4: ; preds = %entry - %icmpN = icmp eq i32 %call, 1 + %icmpN = icmp eq i32 %call, 14 br i1 %icmpN, label %if.then.6, label %if.merge.7 catch.merge.5: ; preds = %if.merge.7, %entry @@ -2131,7 +3672,7 @@ catch.merge.9: ; preds = %catch.handle.8, %ca %callN = call i32 @handle_some(ptr @__sx_default_context, i32 0) store i32 %callN, ptr %allocaN, align 4 %loadN = load i32, ptr %allocaN, align 4 - %icmpN = icmp eq i32 %loadN, 2 + %icmpN = icmp eq i32 %loadN, 15 br i1 %icmpN, label %if.then.20, label %if.merge.21 if.then.20: ; preds = %catch.merge.9 @@ -2144,7 +3685,7 @@ if.merge.21: ; preds = %if.then.20, %catch. %callN = call i32 @handle_some(ptr @__sx_default_context, i32 -1) store i32 %callN, ptr %allocaN, align 4 %loadN = load i32, ptr %allocaN, align 4 - %icmpN = icmp eq i32 %loadN, 1 + %icmpN = icmp eq i32 %loadN, 14 br i1 %icmpN, label %if.then.22, label %if.merge.23 if.then.22: ; preds = %if.merge.21 @@ -2182,7 +3723,7 @@ entry: define internal void @print__ct_sbcb4570e4e0d606e__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.129, i64 17 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.335, i64 17 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2198,7 +3739,7 @@ entry: %gepN = getelementptr inbounds { 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.130, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.336, 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 14) @@ -2226,7 +3767,7 @@ entry: ; 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.131, i64 17 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.337, i64 17 }) ret { ptr, i64 } %call } @@ -2237,35 +3778,35 @@ entry: %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.132, i64 15 }, { ptr, i64 } { ptr @str.133, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.338, i64 15 }, { ptr, i64 } { ptr @str.339, 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.135 + br label %while.hdr.151 -while.hdr.135: ; preds = %fv.merge, %entry +while.hdr.151: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.136, label %while.exit.137 + br i1 %icmp, label %while.body.152, label %while.exit.153 -while.body.136: ; preds = %while.hdr.135 +while.body.152: ; preds = %while.hdr.151 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.138, label %if.merge.139 + br i1 %icmpN, label %if.then.154, label %if.merge.155 -while.exit.137: ; preds = %while.hdr.135 +while.exit.153: ; preds = %while.hdr.151 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.340, i64 1 }) ret { ptr, i64 } %callN -if.then.138: ; preds = %while.body.136 +if.then.154: ; preds = %while.body.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.341, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.139 + br label %if.merge.155 -if.merge.139: ; preds = %if.then.138, %while.body.136 +if.merge.155: ; preds = %if.then.154, %while.body.152 %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 @@ -2273,7 +3814,7 @@ if.merge.139: ; preds = %if.then.138, %while %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.139, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.345, 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 @@ -2293,31 +3834,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.135 + br label %while.hdr.151 -fv.default: ; preds = %if.merge.139 +fv.default: ; preds = %if.merge.155 br label %fv.merge -fv.case: ; preds = %if.merge.139 +fv.case: ; preds = %if.merge.155 %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.139 +fv.case17: ; preds = %if.merge.155 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.139 +fv.case20: ; preds = %if.merge.155 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.139 +fv.case24: ; preds = %if.merge.155 %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 @@ -2330,43 +3871,43 @@ 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.140, i64 10 }, { ptr, i64 } { ptr @str.141, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.346, i64 10 }, { ptr, i64 } { ptr @str.347, 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.140 + br label %while.hdr.156 -while.hdr.140: ; preds = %if.merge.144, %entry +while.hdr.156: ; preds = %if.merge.160, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.141, label %while.exit.142 + br i1 %icmp, label %while.body.157, label %while.exit.158 -while.body.141: ; preds = %while.hdr.140 +while.body.157: ; preds = %while.hdr.156 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.143, label %if.merge.144 + br i1 %icmpN, label %if.then.159, label %if.merge.160 -while.exit.142: ; preds = %while.hdr.140 +while.exit.158: ; preds = %while.hdr.156 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.142, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.348, i64 1 }) ret { ptr, i64 } %callN -if.then.143: ; preds = %while.body.141 +if.then.159: ; preds = %while.body.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.143, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.349, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.144 + br label %if.merge.160 -if.merge.144: ; preds = %if.then.143, %while.body.141 +if.merge.160: ; preds = %if.then.159, %while.body.157 %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.144, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.350, 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.145, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.351, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2377,7 +3918,7 @@ if.merge.144: ; preds = %if.then.143, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.140 + br label %while.hdr.156 } ; Function Attrs: nounwind @@ -2385,43 +3926,43 @@ 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.146, i64 3 }, { ptr, i64 } { ptr @str.147, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.352, i64 3 }, { ptr, i64 } { ptr @str.353, 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.145 + br label %while.hdr.161 -while.hdr.145: ; preds = %fv.merge, %entry +while.hdr.161: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.146, label %while.exit.147 + br i1 %icmp, label %while.body.162, label %while.exit.163 -while.body.146: ; preds = %while.hdr.145 +while.body.162: ; preds = %while.hdr.161 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.148, label %if.merge.149 + br i1 %icmpN, label %if.then.164, label %if.merge.165 -while.exit.147: ; preds = %while.hdr.145 +while.exit.163: ; preds = %while.hdr.161 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.148, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.354, i64 1 }) ret { ptr, i64 } %callN -if.then.148: ; preds = %while.body.146 +if.then.164: ; preds = %while.body.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.149, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.355, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.149 + br label %if.merge.165 -if.merge.149: ; preds = %if.then.148, %while.body.146 +if.merge.165: ; preds = %if.then.164, %while.body.162 %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.151, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.357, 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.152, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, 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 @@ -2438,12 +3979,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.145 + br label %while.hdr.161 -fv.default: ; preds = %if.merge.149 +fv.default: ; preds = %if.merge.165 br label %fv.merge -fv.case: ; preds = %if.merge.149 +fv.case: ; preds = %if.merge.165 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2454,43 +3995,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.153, i64 10 }, { ptr, i64 } { ptr @str.154, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.359, i64 10 }, { ptr, i64 } { ptr @str.360, 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.150 + br label %while.hdr.166 -while.hdr.150: ; preds = %fv.merge, %entry +while.hdr.166: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.151, label %while.exit.152 + br i1 %icmp, label %while.body.167, label %while.exit.168 -while.body.151: ; preds = %while.hdr.150 +while.body.167: ; preds = %while.hdr.166 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.153, label %if.merge.154 + br i1 %icmpN, label %if.then.169, label %if.merge.170 -while.exit.152: ; preds = %while.hdr.150 +while.exit.168: ; preds = %while.hdr.166 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.155, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, i64 1 }) ret { ptr, i64 } %callN -if.then.153: ; preds = %while.body.151 +if.then.169: ; preds = %while.body.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.156, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.362, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.154 + br label %if.merge.170 -if.merge.154: ; preds = %if.then.153, %while.body.151 +if.merge.170: ; preds = %if.then.169, %while.body.167 %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.159, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.365, 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.160, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, 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 @@ -2508,18 +4049,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.150 + br label %while.hdr.166 -fv.default: ; preds = %if.merge.154 +fv.default: ; preds = %if.merge.170 br label %fv.merge -fv.case: ; preds = %if.merge.154 +fv.case: ; preds = %if.merge.170 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.154 +fv.case17: ; preds = %if.merge.170 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2530,43 +4071,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.161, i64 9 }, { ptr, i64 } { ptr @str.162, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.367, i64 9 }, { ptr, i64 } { ptr @str.368, 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.155 + br label %while.hdr.171 -while.hdr.155: ; preds = %fv.merge, %entry +while.hdr.171: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.156, label %while.exit.157 + br i1 %icmp, label %while.body.172, label %while.exit.173 -while.body.156: ; preds = %while.hdr.155 +while.body.172: ; preds = %while.hdr.171 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.158, label %if.merge.159 + br i1 %icmpN, label %if.then.174, label %if.merge.175 -while.exit.157: ; preds = %while.hdr.155 +while.exit.173: ; preds = %while.hdr.171 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.369, i64 1 }) ret { ptr, i64 } %callN -if.then.158: ; preds = %while.body.156 +if.then.174: ; preds = %while.body.172 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.370, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.159 + br label %if.merge.175 -if.merge.159: ; preds = %if.then.158, %while.body.156 +if.merge.175: ; preds = %if.then.174, %while.body.172 %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.168, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.374, 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.169, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, 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 @@ -2585,24 +4126,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.155 + br label %while.hdr.171 -fv.default: ; preds = %if.merge.159 +fv.default: ; preds = %if.merge.175 br label %fv.merge -fv.case: ; preds = %if.merge.159 +fv.case: ; preds = %if.merge.175 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.159 +fv.case17: ; preds = %if.merge.175 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.159 +fv.case21: ; preds = %if.merge.175 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2615,43 +4156,43 @@ 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.170, i64 5 }, { ptr, i64 } { ptr @str.171, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.376, i64 5 }, { ptr, i64 } { ptr @str.377, 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.160 + br label %while.hdr.176 -while.hdr.160: ; preds = %fv.merge, %entry +while.hdr.176: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.161, label %while.exit.162 + br i1 %icmp, label %while.body.177, label %while.exit.178 -while.body.161: ; preds = %while.hdr.160 +while.body.177: ; preds = %while.hdr.176 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.163, label %if.merge.164 + br i1 %icmpN, label %if.then.179, label %if.merge.180 -while.exit.162: ; preds = %while.hdr.160 +while.exit.178: ; preds = %while.hdr.176 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.378, i64 1 }) ret { ptr, i64 } %callN -if.then.163: ; preds = %while.body.161 +if.then.179: ; preds = %while.body.177 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.379, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.164 + br label %if.merge.180 -if.merge.164: ; preds = %if.then.163, %while.body.161 +if.merge.180: ; preds = %if.then.179, %while.body.177 %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.177, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.383, 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.178, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.384, 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 @@ -2670,23 +4211,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.160 + br label %while.hdr.176 -fv.default: ; preds = %if.merge.164 +fv.default: ; preds = %if.merge.180 br label %fv.merge -fv.case: ; preds = %if.merge.164 +fv.case: ; preds = %if.merge.180 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.164 +fv.case17: ; preds = %if.merge.180 %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.164 +fv.case20: ; preds = %if.merge.180 %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 @@ -2699,43 +4240,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.179, i64 8 }, { ptr, i64 } { ptr @str.180, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.385, i64 8 }, { ptr, i64 } { ptr @str.386, 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.165 + br label %while.hdr.181 -while.hdr.165: ; preds = %fv.merge, %entry +while.hdr.181: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.166, label %while.exit.167 + br i1 %icmp, label %while.body.182, label %while.exit.183 -while.body.166: ; preds = %while.hdr.165 +while.body.182: ; preds = %while.hdr.181 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.168, label %if.merge.169 + br i1 %icmpN, label %if.then.184, label %if.merge.185 -while.exit.167: ; preds = %while.hdr.165 +while.exit.183: ; preds = %while.hdr.181 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.181, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.387, i64 1 }) ret { ptr, i64 } %callN -if.then.168: ; preds = %while.body.166 +if.then.184: ; preds = %while.body.182 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.182, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.388, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.169 + br label %if.merge.185 -if.merge.169: ; preds = %if.then.168, %while.body.166 +if.merge.185: ; preds = %if.then.184, %while.body.182 %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.186, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.392, 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.187, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.393, 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 @@ -2754,23 +4295,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.165 + br label %while.hdr.181 -fv.default: ; preds = %if.merge.169 +fv.default: ; preds = %if.merge.185 br label %fv.merge -fv.case: ; preds = %if.merge.169 +fv.case: ; preds = %if.merge.185 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.169 +fv.case17: ; preds = %if.merge.185 %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.169 +fv.case20: ; preds = %if.merge.185 %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 @@ -2782,43 +4323,43 @@ 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.188, i64 17 }, { ptr, i64 } { ptr @str.189, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.394, i64 17 }, { ptr, i64 } { ptr @str.395, 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.170 + br label %while.hdr.186 -while.hdr.170: ; preds = %fv.merge, %entry +while.hdr.186: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.171, label %while.exit.172 + br i1 %icmp, label %while.body.187, label %while.exit.188 -while.body.171: ; preds = %while.hdr.170 +while.body.187: ; preds = %while.hdr.186 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.173, label %if.merge.174 + br i1 %icmpN, label %if.then.189, label %if.merge.190 -while.exit.172: ; preds = %while.hdr.170 +while.exit.188: ; preds = %while.hdr.186 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.190, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.396, i64 1 }) ret { ptr, i64 } %callN -if.then.173: ; preds = %while.body.171 +if.then.189: ; preds = %while.body.187 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.191, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.397, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.174 + br label %if.merge.190 -if.merge.174: ; preds = %if.then.173, %while.body.171 +if.merge.190: ; preds = %if.then.189, %while.body.187 %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.196, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.402, 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.197, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.403, 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 @@ -2838,29 +4379,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.170 + br label %while.hdr.186 -fv.default: ; preds = %if.merge.174 +fv.default: ; preds = %if.merge.190 br label %fv.merge -fv.case: ; preds = %if.merge.174 +fv.case: ; preds = %if.merge.190 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.174 +fv.case17: ; preds = %if.merge.190 %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.174 +fv.case20: ; preds = %if.merge.190 %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.174 +fv.case23: ; preds = %if.merge.190 %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 @@ -2872,43 +4413,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.198, i64 7 }, { ptr, i64 } { ptr @str.199, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.404, i64 7 }, { ptr, i64 } { ptr @str.405, 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.175 + br label %while.hdr.191 -while.hdr.175: ; preds = %fv.merge, %entry +while.hdr.191: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.176, label %while.exit.177 + br i1 %icmp, label %while.body.192, label %while.exit.193 -while.body.176: ; preds = %while.hdr.175 +while.body.192: ; preds = %while.hdr.191 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.178, label %if.merge.179 + br i1 %icmpN, label %if.then.194, label %if.merge.195 -while.exit.177: ; preds = %while.hdr.175 +while.exit.193: ; preds = %while.hdr.191 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.200, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.406, i64 1 }) ret { ptr, i64 } %callN -if.then.178: ; preds = %while.body.176 +if.then.194: ; preds = %while.body.192 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.201, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.407, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.179 + br label %if.merge.195 -if.merge.179: ; preds = %if.then.178, %while.body.176 +if.merge.195: ; preds = %if.then.194, %while.body.192 %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.204, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.410, 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.205, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, 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 %alloca, align 8 @@ -2926,25 +4467,1667 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.175 + br label %while.hdr.191 -fv.default: ; preds = %if.merge.179 +fv.default: ; preds = %if.merge.195 br label %fv.merge -fv.case: ; preds = %if.merge.179 +fv.case: ; preds = %if.merge.195 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.179 +fv.case17: ; preds = %if.merge.195 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.412, i64 4 }, { ptr, i64 } { ptr @str.413, 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.196 + +while.hdr.196: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.197, label %while.exit.198 + +while.body.197: ; preds = %while.hdr.196 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.199, label %if.merge.200 + +while.exit.198: ; preds = %while.hdr.196 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.414, i64 1 }) + ret { ptr, i64 } %callN + +if.then.199: ; preds = %while.body.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.415, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.200 + +if.merge.200: ; preds = %if.then.199, %while.body.197 + %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.417, 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.418, 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.196 + +fv.default: ; preds = %if.merge.200 + br label %fv.merge + +fv.case: ; preds = %if.merge.200 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.419, i64 10 }, { ptr, i64 } { ptr @str.420, 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.201 + +while.hdr.201: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.202, label %while.exit.203 + +while.body.202: ; preds = %while.hdr.201 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.204, label %if.merge.205 + +while.exit.203: ; preds = %while.hdr.201 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.421, i64 1 }) + ret { ptr, i64 } %callN + +if.then.204: ; preds = %while.body.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.422, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.205 + +if.merge.205: ; preds = %if.then.204, %while.body.202 + %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.428, 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.429, 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.201 + +fv.default: ; preds = %if.merge.205 + br label %fv.merge + +fv.case: ; preds = %if.merge.205 + %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.205 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.205 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.205 + %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.205 + %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.430, i64 13 }, { ptr, i64 } { ptr @str.431, 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.206 + +while.hdr.206: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.207, label %while.exit.208 + +while.body.207: ; preds = %while.hdr.206 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.209, label %if.merge.210 + +while.exit.208: ; preds = %while.hdr.206 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.432, i64 1 }) + ret { ptr, i64 } %callN + +if.then.209: ; preds = %while.body.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.433, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.210 + +if.merge.210: ; preds = %if.then.209, %while.body.207 + %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.436, 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.437, 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.206 + +fv.default: ; preds = %if.merge.210 + br label %fv.merge + +fv.case: ; preds = %if.merge.210 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.210 + %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.438, i64 8 }, { ptr, i64 } { ptr @str.439, 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.211 + +while.hdr.211: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.212, label %while.exit.213 + +while.body.212: ; preds = %while.hdr.211 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.214, label %if.merge.215 + +while.exit.213: ; preds = %while.hdr.211 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.440, i64 1 }) + ret { ptr, i64 } %callN + +if.then.214: ; preds = %while.body.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.441, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.215 + +if.merge.215: ; preds = %if.then.214, %while.body.212 + %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.447, 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.448, 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.211 + +fv.default: ; preds = %if.merge.215 + br label %fv.merge + +fv.case: ; preds = %if.merge.215 + %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.215 + %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.215 + %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.215 + %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.215 + %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.449, i64 5 }, { ptr, i64 } { ptr @str.450, 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.216 + +while.hdr.216: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.217, label %while.exit.218 + +while.body.217: ; preds = %while.hdr.216 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.219, label %if.merge.220 + +while.exit.218: ; preds = %while.hdr.216 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.451, i64 1 }) + ret { ptr, i64 } %callN + +if.then.219: ; preds = %while.body.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.452, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.220 + +if.merge.220: ; preds = %if.then.219, %while.body.217 + %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.456, 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.457, 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.216 + +fv.default: ; preds = %if.merge.220 + br label %fv.merge + +fv.case: ; preds = %if.merge.220 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.220 + %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.220 + %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.458, i64 6 }, { ptr, i64 } { ptr @str.459, 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.221 + +while.hdr.221: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.222, label %while.exit.223 + +while.body.222: ; preds = %while.hdr.221 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.224, label %if.merge.225 + +while.exit.223: ; preds = %while.hdr.221 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.460, i64 1 }) + ret { ptr, i64 } %callN + +if.then.224: ; preds = %while.body.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.461, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.225 + +if.merge.225: ; preds = %if.then.224, %while.body.222 + %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.465, 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.466, 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.221 + +fv.default: ; preds = %if.merge.225 + br label %fv.merge + +fv.case: ; preds = %if.merge.225 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.225 + %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.225 + %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.467, i64 6 }, { ptr, i64 } { ptr @str.468, 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.226 + +while.hdr.226: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.227, label %while.exit.228 + +while.body.227: ; preds = %while.hdr.226 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.229, label %if.merge.230 + +while.exit.228: ; preds = %while.hdr.226 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.469, i64 1 }) + ret { ptr, i64 } %callN + +if.then.229: ; preds = %while.body.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.470, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.230 + +if.merge.230: ; preds = %if.then.229, %while.body.227 + %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.473, 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.474, 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.226 + +fv.default: ; preds = %if.merge.230 + br label %fv.merge + +fv.case: ; preds = %if.merge.230 + %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.230 + %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 54, 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.475, i64 4 }, { ptr, i64 } { ptr @str.476, 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.231 + +while.hdr.231: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.232, label %while.exit.233 + +while.body.232: ; preds = %while.hdr.231 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.234, label %if.merge.235 + +while.exit.233: ; preds = %while.hdr.231 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.477, i64 1 }) + ret { ptr, i64 } %callN + +if.then.234: ; preds = %while.body.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.478, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.235 + +if.merge.235: ; preds = %if.then.234, %while.body.232 + %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.482, 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.483, 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.231 + +fv.default: ; preds = %if.merge.235 + br label %fv.merge + +fv.case: ; preds = %if.merge.235 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.235 + %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.235 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.484, i64 6 }, { ptr, i64 } { ptr @str.485, 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.236 + +while.hdr.236: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.237, label %while.exit.238 + +while.body.237: ; preds = %while.hdr.236 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.239, label %if.merge.240 + +while.exit.238: ; preds = %while.hdr.236 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.486, i64 1 }) + ret { ptr, i64 } %callN + +if.then.239: ; preds = %while.body.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.487, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.240 + +if.merge.240: ; preds = %if.then.239, %while.body.237 + %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.491, 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.492, 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.236 + +fv.default: ; preds = %if.merge.240 + br label %fv.merge + +fv.case: ; preds = %if.merge.240 + %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.240 + %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.240 + %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 26, i64 undef }, i64 %ba.p2i23, 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.493, i64 12 }, { ptr, i64 } { ptr @str.494, 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.241 + +while.hdr.241: ; preds = %if.merge.245, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.242, label %while.exit.243 + +while.body.242: ; preds = %while.hdr.241 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.244, label %if.merge.245 + +while.exit.243: ; preds = %while.hdr.241 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.495, i64 1 }) + ret { ptr, i64 } %callN + +if.then.244: ; preds = %while.body.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.496, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.245 + +if.merge.245: ; preds = %if.then.244, %while.body.242 + %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.497, 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.498, 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.241 +} + +; 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.499, i64 8 }, { ptr, i64 } { ptr @str.500, 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.246 + +while.hdr.246: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.247, label %while.exit.248 + +while.body.247: ; preds = %while.hdr.246 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.249, label %if.merge.250 + +while.exit.248: ; preds = %while.hdr.246 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.501, i64 1 }) + ret { ptr, i64 } %callN + +if.then.249: ; preds = %while.body.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.502, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.250 + +if.merge.250: ; preds = %if.then.249, %while.body.247 + %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.506, 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.507, 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.246 + +fv.default: ; preds = %if.merge.250 + br label %fv.merge + +fv.case: ; preds = %if.merge.250 + %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.250 + %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.250 + %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.508, i64 7 }, { ptr, i64 } { ptr @str.509, 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.251 + +while.hdr.251: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.252, label %while.exit.253 + +while.body.252: ; preds = %while.hdr.251 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.254, label %if.merge.255 + +while.exit.253: ; preds = %while.hdr.251 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.510, i64 1 }) + ret { ptr, i64 } %callN + +if.then.254: ; preds = %while.body.252 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.511, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.255 + +if.merge.255: ; preds = %if.then.254, %while.body.252 + %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.515, 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.516, 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.251 + +fv.default: ; preds = %if.merge.255 + br label %fv.merge + +fv.case: ; preds = %if.merge.255 + %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.255 + %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.255 + %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 77, 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.517, i64 9 }, { ptr, i64 } { ptr @str.518, 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.256 + +while.hdr.256: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.257, label %while.exit.258 + +while.body.257: ; preds = %while.hdr.256 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.259, label %if.merge.260 + +while.exit.258: ; preds = %while.hdr.256 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.519, i64 1 }) + ret { ptr, i64 } %callN + +if.then.259: ; preds = %while.body.257 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.520, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.260 + +if.merge.260: ; preds = %if.then.259, %while.body.257 + %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.523, 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.524, 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.256 + +fv.default: ; preds = %if.merge.260 + br label %fv.merge + +fv.case: ; preds = %if.merge.260 + %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.260 + %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.525, i64 4 }, { ptr, i64 } { ptr @str.526, 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.261 + +while.hdr.261: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.262, label %while.exit.263 + +while.body.262: ; preds = %while.hdr.261 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.264, label %if.merge.265 + +while.exit.263: ; preds = %while.hdr.261 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.527, i64 1 }) + ret { ptr, i64 } %callN + +if.then.264: ; preds = %while.body.262 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.528, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.265 + +if.merge.265: ; preds = %if.then.264, %while.body.262 + %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.531, 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.532, 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.261 + +fv.default: ; preds = %if.merge.265 + br label %fv.merge + +fv.case: ; preds = %if.merge.265 + %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.265 + %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.533, i64 6 }, { ptr, i64 } { ptr @str.534, 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.266 + +while.hdr.266: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.267, label %while.exit.268 + +while.body.267: ; preds = %while.hdr.266 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.269, label %if.merge.270 + +while.exit.268: ; preds = %while.hdr.266 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.535, i64 1 }) + ret { ptr, i64 } %callN + +if.then.269: ; preds = %while.body.267 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.536, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.270 + +if.merge.270: ; preds = %if.then.269, %while.body.267 + %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.544, 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.545, 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.266 + +fv.default: ; preds = %if.merge.270 + br label %fv.merge + +fv.case: ; preds = %if.merge.270 + %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.270 + %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.270 + %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.270 + %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.270 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.270 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.270 + %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 81, 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.546, i64 6 }, { ptr, i64 } { ptr @str.547, 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.271 + +while.hdr.271: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.272, label %while.exit.273 + +while.body.272: ; preds = %while.hdr.271 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.274, label %if.merge.275 + +while.exit.273: ; preds = %while.hdr.271 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.548, i64 1 }) + ret { ptr, i64 } %callN + +if.then.274: ; preds = %while.body.272 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.549, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.275 + +if.merge.275: ; preds = %if.then.274, %while.body.272 + %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.554, 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.555, 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.271 + +fv.default: ; preds = %if.merge.275 + br label %fv.merge + +fv.case: ; preds = %if.merge.275 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.275 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.275 + %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.275 + %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 } @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.561, 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.556, 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.283, label %if.merge.284 + +if.then.283: ; 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.563, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.562, 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.284 + +if.merge.284: ; preds = %if.then.283, %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.568, 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.564, 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.285, label %if.merge.286 + +if.then.285: ; 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.570, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.569, 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.286 + +if.merge.286: ; preds = %if.then.285, %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.578, 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.571, 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.287: ; 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.580, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.579, 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.288 + +if.merge.288: ; preds = %if.then.287, %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.287, label %if.merge.288 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.589, 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.581, 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.289, label %if.merge.290 + +if.then.289: ; 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.591, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.590, 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.290 + +if.merge.290: ; preds = %if.then.289, %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.598, 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.592, 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.291, label %if.merge.292 + +if.then.291: ; 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.600, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.599, 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.292 + +if.merge.292: ; preds = %if.then.291, %entry + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + ret { ptr, i64 } %loadN +} + ; Function Attrs: nounwind define internal { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %1) #0 { entry: @@ -2952,33 +6135,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.206, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.601, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.184 + br label %while.hdr.301 -while.hdr.184: ; preds = %if.merge.188, %entry +while.hdr.301: ; preds = %if.merge.305, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.185, label %while.exit.186 + br i1 %icmp, label %while.body.302, label %while.exit.303 -while.body.185: ; preds = %while.hdr.184 +while.body.302: ; preds = %while.hdr.301 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.187, label %if.merge.188 + br i1 %icmpN, label %if.then.304, label %if.merge.305 -while.exit.186: ; preds = %while.hdr.184 +while.exit.303: ; preds = %while.hdr.301 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.207, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.602, i64 1 }) ret { ptr, i64 } %call -if.then.187: ; preds = %while.body.185 +if.then.304: ; preds = %while.body.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.208, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.188 + br label %if.merge.305 -if.merge.188: ; preds = %if.then.187, %while.body.185 +if.merge.305: ; preds = %if.then.304, %while.body.302 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -2992,7 +6175,211 @@ if.merge.188: ; preds = %if.then.187, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.184 + br label %while.hdr.301 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.604, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.306 + +while.hdr.306: ; preds = %if.merge.310, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.307, label %while.exit.308 + +while.body.307: ; preds = %while.hdr.306 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.309, label %if.merge.310 + +while.exit.308: ; preds = %while.hdr.306 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.605, i64 1 }) + ret { ptr, i64 } %call + +if.then.309: ; preds = %while.body.307 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.310 + +if.merge.310: ; preds = %if.then.309, %while.body.307 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.306 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.607, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.311 + +while.hdr.311: ; preds = %if.merge.315, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.312, label %while.exit.313 + +while.body.312: ; preds = %while.hdr.311 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.314, label %if.merge.315 + +while.exit.313: ; preds = %while.hdr.311 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.608, i64 1 }) + ret { ptr, i64 } %call + +if.then.314: ; preds = %while.body.312 + %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 + br label %if.merge.315 + +if.merge.315: ; preds = %if.then.314, %while.body.312 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.311 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.610, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.316 + +while.hdr.316: ; preds = %if.merge.320, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.317, label %while.exit.318 + +while.body.317: ; preds = %while.hdr.316 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.319, label %if.merge.320 + +while.exit.318: ; preds = %while.hdr.316 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 1 }) + ret { ptr, i64 } %call + +if.then.319: ; preds = %while.body.317 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.320 + +if.merge.320: ; preds = %if.then.319, %while.body.317 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.316 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.613, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.321 + +while.hdr.321: ; preds = %if.merge.325, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.322, label %while.exit.323 + +while.body.322: ; preds = %while.hdr.321 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.324, label %if.merge.325 + +while.exit.323: ; preds = %while.hdr.321 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.614, i64 1 }) + ret { ptr, i64 } %call + +if.then.324: ; preds = %while.body.322 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.615, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.325 + +if.merge.325: ; preds = %if.then.324, %while.body.322 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.321 } ; Function Attrs: nounwind @@ -3003,33 +6390,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.209, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.616, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.189 + br label %while.hdr.326 -while.hdr.189: ; preds = %if.merge.193, %entry +while.hdr.326: ; preds = %if.merge.330, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.190, label %while.exit.191 + br i1 %icmp, label %while.body.327, label %while.exit.328 -while.body.190: ; preds = %while.hdr.189 +while.body.327: ; preds = %while.hdr.326 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.192, label %if.merge.193 + br i1 %icmpN, label %if.then.329, label %if.merge.330 -while.exit.191: ; preds = %while.hdr.189 +while.exit.328: ; preds = %while.hdr.326 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.210, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 1 }) ret { ptr, i64 } %call -if.then.192: ; preds = %while.body.190 +if.then.329: ; preds = %while.body.327 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.211, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.618, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.193 + br label %if.merge.330 -if.merge.193: ; preds = %if.then.192, %while.body.190 +if.merge.330: ; preds = %if.then.329, %while.body.327 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3045,7 +6432,7 @@ if.merge.193: ; preds = %if.then.192, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.189 + br label %while.hdr.326 } ; Function Attrs: nounwind @@ -3055,35 +6442,35 @@ entry: %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.212, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.619, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.198 + br label %while.hdr.338 -while.hdr.198: ; preds = %if.merge.202, %entry +while.hdr.338: ; preds = %if.merge.342, %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.199, label %while.exit.200 + br i1 %icmp, label %while.body.339, label %while.exit.340 -while.body.199: ; preds = %while.hdr.198 +while.body.339: ; preds = %while.hdr.338 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.201, label %if.merge.202 + br i1 %icmpN, label %if.then.341, label %if.merge.342 -while.exit.200: ; preds = %while.hdr.198 +while.exit.340: ; preds = %while.hdr.338 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.213, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 1 }) ret { ptr, i64 } %call -if.then.201: ; preds = %while.body.199 +if.then.341: ; preds = %while.body.339 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.214, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.621, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.202 + br label %if.merge.342 -if.merge.202: ; preds = %if.then.201, %while.body.199 +if.merge.342: ; preds = %if.then.341, %while.body.339 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3099,7 +6486,167 @@ if.merge.202: ; preds = %if.then.201, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.198 + br label %while.hdr.338 +} + +; 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.622, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.343 + +while.hdr.343: ; preds = %if.merge.347, %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.344, label %while.exit.345 + +while.body.344: ; preds = %while.hdr.343 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.346, label %if.merge.347 + +while.exit.345: ; preds = %while.hdr.343 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 1 }) + ret { ptr, i64 } %call + +if.then.346: ; preds = %while.body.344 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.624, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.347 + +if.merge.347: ; preds = %if.then.346, %while.body.344 + %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.343 +} + +; 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.625, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.348 + +while.hdr.348: ; preds = %if.merge.352, %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.349, label %while.exit.350 + +while.body.349: ; preds = %while.hdr.348 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.351, label %if.merge.352 + +while.exit.350: ; preds = %while.hdr.348 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.626, i64 1 }) + ret { ptr, i64 } %call + +if.then.351: ; preds = %while.body.349 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.627, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.352 + +if.merge.352: ; preds = %if.then.351, %while.body.349 + %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 76, 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.348 +} + +; 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.628, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.353 + +while.hdr.353: ; preds = %if.merge.357, %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.354, label %while.exit.355 + +while.body.354: ; preds = %while.hdr.353 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.356, label %if.merge.357 + +while.exit.355: ; preds = %while.hdr.353 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.629, i64 1 }) + ret { ptr, i64 } %call + +if.then.356: ; preds = %while.body.354 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.630, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.357 + +if.merge.357: ; preds = %if.then.356, %while.body.354 + %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 78, 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.353 } ; Function Attrs: nounwind @@ -3109,35 +6656,35 @@ entry: %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.215, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.631, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.203 + br label %while.hdr.358 -while.hdr.203: ; preds = %if.merge.207, %entry +while.hdr.358: ; preds = %if.merge.362, %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.204, label %while.exit.205 + br i1 %icmp, label %while.body.359, label %while.exit.360 -while.body.204: ; preds = %while.hdr.203 +while.body.359: ; preds = %while.hdr.358 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.206, label %if.merge.207 + br i1 %icmpN, label %if.then.361, label %if.merge.362 -while.exit.205: ; preds = %while.hdr.203 +while.exit.360: ; preds = %while.hdr.358 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.216, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.632, i64 1 }) ret { ptr, i64 } %call -if.then.206: ; preds = %while.body.204 +if.then.361: ; preds = %while.body.359 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.217, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.633, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.207 + br label %if.merge.362 -if.merge.207: ; preds = %if.then.206, %while.body.204 +if.merge.362: ; preds = %if.then.361, %while.body.359 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3153,7 +6700,7 @@ if.merge.207: ; preds = %if.then.206, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.203 + br label %while.hdr.358 } ; Function Attrs: nounwind @@ -3167,20 +6714,20 @@ entry: 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.229, label %if.else.230 + br i1 %icmp, label %if.then.396, label %if.else.397 -if.then.229: ; preds = %entry - br label %if.merge.231 +if.then.396: ; preds = %entry + br label %if.merge.398 -if.else.230: ; preds = %entry +if.else.397: ; 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.220, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.219, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.231 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.635, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.398 -if.merge.231: ; preds = %if.else.230, %if.then.229 - %bp = phi { ptr, i64 } [ { ptr @str.218, i64 4 }, %if.then.229 ], [ %callN, %if.else.230 ] +if.merge.398: ; preds = %if.else.397, %if.then.396 + %bp = phi { ptr, i64 } [ { ptr @str.634, i64 4 }, %if.then.396 ], [ %callN, %if.else.397 ] ret { ptr, i64 } %bp } @@ -3195,20 +6742,20 @@ entry: 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.245, label %if.else.246 + br i1 %icmp, label %if.then.412, label %if.else.413 -if.then.245: ; preds = %entry - br label %if.merge.247 +if.then.412: ; preds = %entry + br label %if.merge.414 -if.else.246: ; preds = %entry +if.else.413: ; 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.223, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.222, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.247 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.639, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.638, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.414 -if.merge.247: ; preds = %if.else.246, %if.then.245 - %bp = phi { ptr, i64 } [ { ptr @str.221, i64 4 }, %if.then.245 ], [ %callN, %if.else.246 ] +if.merge.414: ; preds = %if.else.413, %if.then.412 + %bp = phi { ptr, i64 } [ { ptr @str.637, i64 4 }, %if.then.412 ], [ %callN, %if.else.413 ] ret { ptr, i64 } %bp } @@ -3223,20 +6770,20 @@ entry: 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.248, label %if.else.249 + br i1 %icmp, label %if.then.415, label %if.else.416 -if.then.248: ; preds = %entry - br label %if.merge.250 +if.then.415: ; preds = %entry + br label %if.merge.417 -if.else.249: ; preds = %entry +if.else.416: ; 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.226, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.225, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.250 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.642, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.641, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.417 -if.merge.250: ; preds = %if.else.249, %if.then.248 - %bp = phi { ptr, i64 } [ { ptr @str.224, i64 4 }, %if.then.248 ], [ %callN, %if.else.249 ] +if.merge.417: ; preds = %if.else.416, %if.then.415 + %bp = phi { ptr, i64 } [ { ptr @str.640, i64 4 }, %if.then.415 ], [ %callN, %if.else.416 ] ret { ptr, i64 } %bp } @@ -3251,20 +6798,20 @@ entry: 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.251, label %if.else.252 + br i1 %icmp, label %if.then.418, label %if.else.419 -if.then.251: ; preds = %entry - br label %if.merge.253 +if.then.418: ; preds = %entry + br label %if.merge.420 -if.else.252: ; preds = %entry +if.else.419: ; 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.229, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.228, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.253 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.645, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.644, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.420 -if.merge.253: ; preds = %if.else.252, %if.then.251 - %bp = phi { ptr, i64 } [ { ptr @str.227, i64 4 }, %if.then.251 ], [ %callN, %if.else.252 ] +if.merge.420: ; preds = %if.else.419, %if.then.418 + %bp = phi { ptr, i64 } [ { ptr @str.643, i64 4 }, %if.then.418 ], [ %callN, %if.else.419 ] ret { ptr, i64 } %bp } @@ -3279,20 +6826,20 @@ entry: 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.254, label %if.else.255 + br i1 %icmp, label %if.then.421, label %if.else.422 -if.then.254: ; preds = %entry - br label %if.merge.256 +if.then.421: ; preds = %entry + br label %if.merge.423 -if.else.255: ; preds = %entry +if.else.422: ; 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.232, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.231, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.256 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.648, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.423 -if.merge.256: ; preds = %if.else.255, %if.then.254 - %bp = phi { ptr, i64 } [ { ptr @str.230, i64 4 }, %if.then.254 ], [ %callN, %if.else.255 ] +if.merge.423: ; preds = %if.else.422, %if.then.421 + %bp = phi { ptr, i64 } [ { ptr @str.646, i64 4 }, %if.then.421 ], [ %callN, %if.else.422 ] ret { ptr, i64 } %bp } @@ -3306,20 +6853,20 @@ entry: 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.257, label %if.else.258 + br i1 %icmp, label %if.then.424, label %if.else.425 -if.then.257: ; preds = %entry - br label %if.merge.259 +if.then.424: ; preds = %entry + br label %if.merge.426 -if.else.258: ; preds = %entry +if.else.425: ; 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.235, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.234, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.259 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.651, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.650, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.426 -if.merge.259: ; preds = %if.else.258, %if.then.257 - %bp = phi { ptr, i64 } [ { ptr @str.233, i64 4 }, %if.then.257 ], [ %callN, %if.else.258 ] +if.merge.426: ; preds = %if.else.425, %if.then.424 + %bp = phi { ptr, i64 } [ { ptr @str.649, i64 4 }, %if.then.424 ], [ %callN, %if.else.425 ] ret { ptr, i64 } %bp } @@ -3334,20 +6881,20 @@ entry: 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.260, label %if.else.261 + br i1 %icmp, label %if.then.427, label %if.else.428 -if.then.260: ; preds = %entry - br label %if.merge.262 +if.then.427: ; preds = %entry + br label %if.merge.429 -if.else.261: ; preds = %entry +if.else.428: ; 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.238, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.237, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.262 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.654, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.429 -if.merge.262: ; preds = %if.else.261, %if.then.260 - %bp = phi { ptr, i64 } [ { ptr @str.236, i64 4 }, %if.then.260 ], [ %callN, %if.else.261 ] +if.merge.429: ; preds = %if.else.428, %if.then.427 + %bp = phi { ptr, i64 } [ { ptr @str.652, i64 4 }, %if.then.427 ], [ %callN, %if.else.428 ] ret { ptr, i64 } %bp } @@ -3362,25 +6909,25 @@ entry: 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.263, label %if.else.264 + br i1 %icmp, label %if.then.430, label %if.else.431 -if.then.263: ; preds = %entry - br label %if.merge.265 +if.then.430: ; preds = %entry + br label %if.merge.432 -if.else.264: ; preds = %entry +if.else.431: ; 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.241, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.240, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.265 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.657, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.432 -if.merge.265: ; preds = %if.else.264, %if.then.263 - %bp = phi { ptr, i64 } [ { ptr @str.239, i64 4 }, %if.then.263 ], [ %callN, %if.else.264 ] +if.merge.432: ; preds = %if.else.431, %if.then.430 + %bp = phi { ptr, i64 } [ { ptr @str.655, i64 4 }, %if.then.430 ], [ %callN, %if.else.431 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %1) #0 { +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 @@ -3390,244 +6937,20 @@ entry: 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.266, label %if.else.267 + br i1 %icmp, label %if.then.433, label %if.else.434 -if.then.266: ; preds = %entry - br label %if.merge.268 +if.then.433: ; preds = %entry + br label %if.merge.435 -if.else.267: ; preds = %entry +if.else.434: ; 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.244, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.243, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.268 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.660, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.659, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.435 -if.merge.268: ; preds = %if.else.267, %if.then.266 - %bp = phi { ptr, i64 } [ { ptr @str.242, i64 4 }, %if.then.266 ], [ %callN, %if.else.267 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.269, label %if.else.270 - -if.then.269: ; preds = %entry - br label %if.merge.271 - -if.else.270: ; 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.247, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.246, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.271 - -if.merge.271: ; preds = %if.else.270, %if.then.269 - %bp = phi { ptr, i64 } [ { ptr @str.245, i64 4 }, %if.then.269 ], [ %callN, %if.else.270 ] - 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.272, label %if.else.273 - -if.then.272: ; preds = %entry - br label %if.merge.274 - -if.else.273: ; 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.250, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.249, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.274 - -if.merge.274: ; preds = %if.else.273, %if.then.272 - %bp = phi { ptr, i64 } [ { ptr @str.248, i64 4 }, %if.then.272 ], [ %callN, %if.else.273 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.275, label %if.else.276 - -if.then.275: ; preds = %entry - br label %if.merge.277 - -if.else.276: ; 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.253, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.252, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.277 - -if.merge.277: ; preds = %if.else.276, %if.then.275 - %bp = phi { ptr, i64 } [ { ptr @str.251, i64 4 }, %if.then.275 ], [ %callN, %if.else.276 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_error_set(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.278, label %if.else.279 - -if.then.278: ; preds = %entry - br label %if.merge.280 - -if.else.279: ; 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.256, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.255, i64 10 }, { ptr, i64 } %callN) - br label %if.merge.280 - -if.merge.280: ; preds = %if.else.279, %if.then.278 - %bp = phi { ptr, i64 } [ { ptr @str.254, i64 4 }, %if.then.278 ], [ %callN, %if.else.279 ] - 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.281, label %if.else.282 - -if.then.281: ; preds = %entry - br label %if.merge.283 - -if.else.282: ; 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.259, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.258, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.283 - -if.merge.283: ; preds = %if.else.282, %if.then.281 - %bp = phi { ptr, i64 } [ { ptr @str.257, i64 4 }, %if.then.281 ], [ %callN, %if.else.282 ] - 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.284, label %if.else.285 - -if.then.284: ; preds = %entry - br label %if.merge.286 - -if.else.285: ; 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.262, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.261, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.286 - -if.merge.286: ; preds = %if.else.285, %if.then.284 - %bp = phi { ptr, i64 } [ { ptr @str.260, i64 4 }, %if.then.284 ], [ %callN, %if.else.285 ] - 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.287, label %if.else.288 - -if.then.287: ; preds = %entry - br label %if.merge.289 - -if.else.288: ; 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.265, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.264, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.289 - -if.merge.289: ; preds = %if.else.288, %if.then.287 - %bp = phi { ptr, i64 } [ { ptr @str.263, i64 4 }, %if.then.287 ], [ %callN, %if.else.288 ] - 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.290, label %if.else.291 - -if.then.290: ; preds = %entry - br label %if.merge.292 - -if.else.291: ; 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.268, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.267, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.292 - -if.merge.292: ; preds = %if.else.291, %if.then.290 - %bp = phi { ptr, i64 } [ { ptr @str.266, i64 4 }, %if.then.290 ], [ %callN, %if.else.291 ] +if.merge.435: ; preds = %if.else.434, %if.then.433 + %bp = phi { ptr, i64 } [ { ptr @str.658, i64 4 }, %if.then.433 ], [ %callN, %if.else.434 ] ret { ptr, i64 } %bp } @@ -3642,20 +6965,578 @@ entry: 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.293, label %if.else.294 + br i1 %icmp, label %if.then.436, label %if.else.437 -if.then.293: ; preds = %entry - br label %if.merge.295 +if.then.436: ; preds = %entry + br label %if.merge.438 -if.else.294: ; preds = %entry +if.else.437: ; 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.271, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.270, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.295 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.663, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.662, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.438 -if.merge.295: ; preds = %if.else.294, %if.then.293 - %bp = phi { ptr, i64 } [ { ptr @str.269, i64 4 }, %if.then.293 ], [ %callN, %if.else.294 ] +if.merge.438: ; preds = %if.else.437, %if.then.436 + %bp = phi { ptr, i64 } [ { ptr @str.661, i64 4 }, %if.then.436 ], [ %callN, %if.else.437 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.439, label %if.else.440 + +if.then.439: ; preds = %entry + br label %if.merge.441 + +if.else.440: ; 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.666, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.665, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.441 + +if.merge.441: ; preds = %if.else.440, %if.then.439 + %bp = phi { ptr, i64 } [ { ptr @str.664, i64 4 }, %if.then.439 ], [ %callN, %if.else.440 ] + 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.442, label %if.else.443 + +if.then.442: ; preds = %entry + br label %if.merge.444 + +if.else.443: ; 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.669, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.668, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.444 + +if.merge.444: ; preds = %if.else.443, %if.then.442 + %bp = phi { ptr, i64 } [ { ptr @str.667, i64 4 }, %if.then.442 ], [ %callN, %if.else.443 ] + 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.445, label %if.else.446 + +if.then.445: ; preds = %entry + br label %if.merge.447 + +if.else.446: ; 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.672, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.671, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.447 + +if.merge.447: ; preds = %if.else.446, %if.then.445 + %bp = phi { ptr, i64 } [ { ptr @str.670, i64 4 }, %if.then.445 ], [ %callN, %if.else.446 ] + 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.448, label %if.else.449 + +if.then.448: ; preds = %entry + br label %if.merge.450 + +if.else.449: ; 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.675, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.674, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.450 + +if.merge.450: ; preds = %if.else.449, %if.then.448 + %bp = phi { ptr, i64 } [ { ptr @str.673, i64 4 }, %if.then.448 ], [ %callN, %if.else.449 ] + 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.451, label %if.else.452 + +if.then.451: ; preds = %entry + br label %if.merge.453 + +if.else.452: ; 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.678, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.677, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.453 + +if.merge.453: ; preds = %if.else.452, %if.then.451 + %bp = phi { ptr, i64 } [ { ptr @str.676, i64 4 }, %if.then.451 ], [ %callN, %if.else.452 ] + 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.454, label %if.else.455 + +if.then.454: ; preds = %entry + br label %if.merge.456 + +if.else.455: ; 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.681, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.680, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.456 + +if.merge.456: ; preds = %if.else.455, %if.then.454 + %bp = phi { ptr, i64 } [ { ptr @str.679, i64 4 }, %if.then.454 ], [ %callN, %if.else.455 ] + 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.457, label %if.else.458 + +if.then.457: ; preds = %entry + br label %if.merge.459 + +if.else.458: ; 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.684, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.683, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.459 + +if.merge.459: ; preds = %if.else.458, %if.then.457 + %bp = phi { ptr, i64 } [ { ptr @str.682, i64 4 }, %if.then.457 ], [ %callN, %if.else.458 ] + 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.460, label %if.else.461 + +if.then.460: ; preds = %entry + br label %if.merge.462 + +if.else.461: ; 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.687, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.686, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.462 + +if.merge.462: ; preds = %if.else.461, %if.then.460 + %bp = phi { ptr, i64 } [ { ptr @str.685, i64 4 }, %if.then.460 ], [ %callN, %if.else.461 ] + 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.463, label %if.else.464 + +if.then.463: ; preds = %entry + br label %if.merge.465 + +if.else.464: ; 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.690, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.689, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.465 + +if.merge.465: ; preds = %if.else.464, %if.then.463 + %bp = phi { ptr, i64 } [ { ptr @str.688, i64 4 }, %if.then.463 ], [ %callN, %if.else.464 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.466, label %if.else.467 + +if.then.466: ; preds = %entry + br label %if.merge.468 + +if.else.467: ; 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.693, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.692, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.468 + +if.merge.468: ; preds = %if.else.467, %if.then.466 + %bp = phi { ptr, i64 } [ { ptr @str.691, i64 4 }, %if.then.466 ], [ %callN, %if.else.467 ] + 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.469, label %if.else.470 + +if.then.469: ; preds = %entry + br label %if.merge.471 + +if.else.470: ; 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.696, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.695, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.471 + +if.merge.471: ; preds = %if.else.470, %if.then.469 + %bp = phi { ptr, i64 } [ { ptr @str.694, i64 4 }, %if.then.469 ], [ %callN, %if.else.470 ] + 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.472, label %if.else.473 + +if.then.472: ; preds = %entry + br label %if.merge.474 + +if.else.473: ; 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.699, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.698, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.474 + +if.merge.474: ; preds = %if.else.473, %if.then.472 + %bp = phi { ptr, i64 } [ { ptr @str.697, i64 4 }, %if.then.472 ], [ %callN, %if.else.473 ] + 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.475, label %if.else.476 + +if.then.475: ; preds = %entry + br label %if.merge.477 + +if.else.476: ; 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.702, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.701, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.477 + +if.merge.477: ; preds = %if.else.476, %if.then.475 + %bp = phi { ptr, i64 } [ { ptr @str.700, i64 4 }, %if.then.475 ], [ %callN, %if.else.476 ] + 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.478, label %if.else.479 + +if.then.478: ; preds = %entry + br label %if.merge.480 + +if.else.479: ; 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.705, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.704, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.480 + +if.merge.480: ; preds = %if.else.479, %if.then.478 + %bp = phi { ptr, i64 } [ { ptr @str.703, i64 4 }, %if.then.478 ], [ %callN, %if.else.479 ] + 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.481, label %if.else.482 + +if.then.481: ; preds = %entry + br label %if.merge.483 + +if.else.482: ; 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.708, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.707, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.483 + +if.merge.483: ; preds = %if.else.482, %if.then.481 + %bp = phi { ptr, i64 } [ { ptr @str.706, i64 4 }, %if.then.481 ], [ %callN, %if.else.482 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_error_set(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.484, label %if.else.485 + +if.then.484: ; preds = %entry + br label %if.merge.486 + +if.else.485: ; 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.711, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 10 }, { ptr, i64 } %callN) + br label %if.merge.486 + +if.merge.486: ; preds = %if.else.485, %if.then.484 + %bp = phi { ptr, i64 } [ { ptr @str.709, i64 4 }, %if.then.484 ], [ %callN, %if.else.485 ] + 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.487, label %if.else.488 + +if.then.487: ; preds = %entry + br label %if.merge.489 + +if.else.488: ; 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.714, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.489 + +if.merge.489: ; preds = %if.else.488, %if.then.487 + %bp = phi { ptr, i64 } [ { ptr @str.712, i64 4 }, %if.then.487 ], [ %callN, %if.else.488 ] + 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.490, label %if.else.491 + +if.then.490: ; preds = %entry + br label %if.merge.492 + +if.else.491: ; 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.717, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.492 + +if.merge.492: ; preds = %if.else.491, %if.then.490 + %bp = phi { ptr, i64 } [ { ptr @str.715, i64 4 }, %if.then.490 ], [ %callN, %if.else.491 ] + 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.493, label %if.else.494 + +if.then.493: ; preds = %entry + br label %if.merge.495 + +if.else.494: ; 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.720, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.495 + +if.merge.495: ; preds = %if.else.494, %if.then.493 + %bp = phi { ptr, i64 } [ { ptr @str.718, i64 4 }, %if.then.493 ], [ %callN, %if.else.494 ] + 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.496, label %if.else.497 + +if.then.496: ; preds = %entry + br label %if.merge.498 + +if.else.497: ; 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.723, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.722, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.498 + +if.merge.498: ; preds = %if.else.497, %if.then.496 + %bp = phi { ptr, i64 } [ { ptr @str.721, i64 4 }, %if.then.496 ], [ %callN, %if.else.497 ] ret { ptr, i64 } %bp } @@ -3670,19 +7551,115 @@ entry: 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.296, label %if.else.297 + br i1 %icmp, label %if.then.499, label %if.else.500 -if.then.296: ; preds = %entry - br label %if.merge.298 +if.then.499: ; preds = %entry + br label %if.merge.501 -if.else.297: ; preds = %entry +if.else.500: ; 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.274, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.273, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.298 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.726, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.725, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.501 -if.merge.298: ; preds = %if.else.297, %if.then.296 - %bp = phi { ptr, i64 } [ { ptr @str.272, i64 4 }, %if.then.296 ], [ %callN, %if.else.297 ] +if.merge.501: ; preds = %if.else.500, %if.then.499 + %bp = phi { ptr, i64 } [ { ptr @str.724, i64 4 }, %if.then.499 ], [ %callN, %if.else.500 ] 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.508, label %if.merge.509 + +if.then.508: ; preds = %entry + ret { ptr, i64 } { ptr @str.727, i64 4 } + +if.merge.509: ; 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 39, 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.510, label %if.merge.511 + +if.then.510: ; preds = %entry + ret { ptr, i64 } { ptr @str.728, i64 4 } + +if.merge.511: ; 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_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.512, label %if.merge.513 + +if.then.512: ; preds = %entry + ret { ptr, i64 } { ptr @str.729, i64 4 } + +if.merge.513: ; 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 45, 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.514, label %if.merge.515 + +if.then.514: ; preds = %entry + ret { ptr, i64 } { ptr @str.730, i64 4 } + +if.merge.515: ; 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 88, 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/1055-errors-enum-value-failable-error-slot.stdout b/examples/expected/1055-errors-enum-value-failable-error-slot.stdout index 6bb016d..4fed248 100644 --- a/examples/expected/1055-errors-enum-value-failable-error-slot.stdout +++ b/examples/expected/1055-errors-enum-value-failable-error-slot.stdout @@ -3,6 +3,6 @@ bare-if e: ok e != Nope (ok) guard !e: c = 0 blue: err int = 0, c = 2 -error err int = 1 +error err nonzero = true error: is Nope (ok) error tag name = Nope diff --git a/examples/expected/1056-errors-enum-value-failable-tuple-and-comptime.stdout b/examples/expected/1056-errors-enum-value-failable-tuple-and-comptime.stdout index 5301b42..edbdf3d 100644 --- a/examples/expected/1056-errors-enum-value-failable-tuple-and-comptime.stdout +++ b/examples/expected/1056-errors-enum-value-failable-tuple-and-comptime.stdout @@ -1,7 +1,7 @@ F1 ok: err int = 0 F1 ok bare-if: ok F1 ok guard: c = 2 -F1 bad: err int = 1 +F1 bad: err nonzero = true F1 bad: is Nope (ok) F1 bad: tag name = Nope F2 red: err int = 0 @@ -9,5 +9,5 @@ F2 red bare-if: ok F2 red != Nope (ok) F2 red guard: c = 0 F2 blue: err int = 0, c = 2 -F2 err: err int = 1 +F2 err: err nonzero = true F2 err: is Nope (ok) diff --git a/examples/expected/1202-ffi-cc-c-large-aggregate.ir b/examples/expected/1202-ffi-cc-c-large-aggregate.ir index 92930f1..4c0e340 100644 --- a/examples/expected/1202-ffi-cc-c-large-aggregate.ir +++ b/examples/expected/1202-ffi-cc-c-large-aggregate.ir @@ -197,6 +197,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i64 @accept_c(ptr %0) #0 { entry: diff --git a/examples/expected/1309-ffi-objc-class-method-lowering.ir b/examples/expected/1309-ffi-objc-class-method-lowering.ir index 8955da3..0c47d8e 100644 --- a/examples/expected/1309-ffi-objc-class-method-lowering.ir +++ b/examples/expected/1309-ffi-objc-class-method-lowering.ir @@ -1,40 +1,37 @@ @__SxFoo_state_ivar = internal global ptr null @__SxFoo_class = internal global ptr null -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @__sx_objc_cstr_dealloc = internal global [8 x i8] c"dealloc\00" @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1 -@str.37 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.38 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1 +@str.162 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.163 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.165 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.166 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.167 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.168 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.170 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.171 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.172 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.173 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.174 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.176 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.177 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1 +@str.178 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.179 = private unnamed_addr constant [10 x i8] c"compiled\0A\00", align 1 @OBJC_IVAR_NAME_ = private unnamed_addr constant [11 x i8] c"__sx_state\00" @OBJC_IVAR_TYPE_ = private unnamed_addr constant [3 x i8] c"^v\00" @OBJC_CLASS_NAME_ = private unnamed_addr constant [9 x i8] c"NSObject\00" -@OBJC_CLASS_NAME_.39 = private unnamed_addr constant [6 x i8] c"SxFoo\00" +@OBJC_CLASS_NAME_.180 = private unnamed_addr constant [6 x i8] c"SxFoo\00" @OBJC_METH_VAR_NAME_ = private unnamed_addr constant [5 x i8] c"bump\00" @OBJC_METH_VAR_TYPE_ = private unnamed_addr constant [4 x i8] c"v@:\00" -@OBJC_METH_VAR_NAME_.40 = private unnamed_addr constant [8 x i8] c"dealloc\00" -@OBJC_METH_VAR_TYPE_.41 = private unnamed_addr constant [4 x i8] c"v@:\00" -@OBJC_METH_VAR_NAME_.42 = private unnamed_addr constant [6 x i8] c"alloc\00" -@OBJC_METH_VAR_TYPE_.43 = private unnamed_addr constant [4 x i8] c"@@:\00" +@OBJC_METH_VAR_NAME_.181 = private unnamed_addr constant [8 x i8] c"dealloc\00" +@OBJC_METH_VAR_TYPE_.182 = private unnamed_addr constant [4 x i8] c"v@:\00" +@OBJC_METH_VAR_NAME_.183 = private unnamed_addr constant [6 x i8] c"alloc\00" +@OBJC_METH_VAR_TYPE_.184 = private unnamed_addr constant [4 x i8] c"@@:\00" ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -339,7 +336,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.162, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -435,7 +432,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, 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 @@ -443,7 +440,7 @@ if.then.12: ; preds = %if.then.9 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, 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 @@ -453,13 +450,13 @@ if.then.12: ; preds = %if.then.9 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, 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 @@ -467,7 +464,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -481,7 +478,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, 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 @@ -489,7 +486,7 @@ if.then.23: ; preds = %if.else.10 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, 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 @@ -500,7 +497,7 @@ if.then.23: ; preds = %if.else.10 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -557,7 +554,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, 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 @@ -565,7 +562,7 @@ if.then.32: ; preds = %if.then.29 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, 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 @@ -576,7 +573,7 @@ if.then.32: ; preds = %if.then.29 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -596,7 +593,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, 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 @@ -604,7 +601,7 @@ if.then.35: ; preds = %while.exit.2 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, 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 @@ -615,7 +612,7 @@ if.then.35: ; preds = %while.exit.2 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -692,6 +689,414 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -803,6 +1208,336 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 ; Function Attrs: nounwind declare i64 @build_options() #0 +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + ; Function Attrs: nounwind define internal void @SxFoo.bump(ptr %0, ptr %1) #0 { entry: @@ -844,14 +1579,14 @@ entry: define internal void @print__ct_sfeff9eeccd48b824__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.36, i64 9 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.177, i64 9 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.37, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.178, i64 0 }, ptr %allocaN, align 8 %load = 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 9) @@ -867,7 +1602,7 @@ entry: ; 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.38, i64 9 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.179, i64 9 }) ret { ptr, i64 } %call } @@ -947,17 +1682,17 @@ declare ptr @class_getInstanceVariable(ptr, ptr) define internal void @__sx_objc_defined_class_init() { entry: %super_cls = call ptr @objc_getClass(ptr @OBJC_CLASS_NAME_) - %cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.39, i64 0) + %cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.180, i64 0) %0 = call i8 @class_addIvar(ptr %cls, ptr @OBJC_IVAR_NAME_, i64 8, i8 3, ptr @OBJC_IVAR_TYPE_) %metacls = call ptr @object_getClass(ptr %cls) %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) %1 = call i8 @class_addMethod(ptr %cls, ptr %sel, ptr @__SxFoo_bump_imp, ptr @OBJC_METH_VAR_TYPE_) call void @objc_registerClassPair(ptr %cls) store ptr %cls, ptr @__SxFoo_class, align 8 - %sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.40) - %2 = call i8 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxFoo_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.41) - %sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.42) - %3 = call i8 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxFoo_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.43) + %sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.181) + %2 = call i8 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxFoo_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.182) + %sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.183) + %3 = call i8 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxFoo_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.184) %iv = call ptr @class_getInstanceVariable(ptr %cls, ptr @OBJC_IVAR_NAME_) store ptr %iv, ptr @__SxFoo_state_ivar, align 8 ret void diff --git a/examples/expected/1314-ffi-objc-class-dealloc-roundtrip.ir b/examples/expected/1314-ffi-objc-class-dealloc-roundtrip.ir index 814a5dd..5bc4bb9 100644 --- a/examples/expected/1314-ffi-objc-class-dealloc-roundtrip.ir +++ b/examples/expected/1314-ffi-objc-class-dealloc-roundtrip.ir @@ -1,56 +1,53 @@ @__SxFoo_state_ivar = internal global ptr null @__SxFoo_class = internal global ptr null -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @__sx_objc_cstr_dealloc = internal global [8 x i8] c"dealloc\00" @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [6 x i8] c"SxFoo\00", align 1 -@str.37 = private unnamed_addr constant [8 x i8] c"dealloc\00", align 1 -@str.38 = private unnamed_addr constant [6 x i8] c"alloc\00", align 1 -@str.39 = private unnamed_addr constant [8 x i8] c"release\00", align 1 -@str.40 = private unnamed_addr constant [28 x i8] c"FAIL: SxFoo not registered\0A\00", align 1 -@str.41 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.42 = private unnamed_addr constant [28 x i8] c"FAIL: SxFoo not registered\0A\00", align 1 -@str.43 = private unnamed_addr constant [27 x i8] c"FAIL: dealloc IMP missing\0A\00", align 1 -@str.44 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.45 = private unnamed_addr constant [27 x i8] c"FAIL: dealloc IMP missing\0A\00", align 1 -@str.46 = private unnamed_addr constant [28 x i8] c"FAIL: +alloc returned null\0A\00", align 1 -@str.47 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.48 = private unnamed_addr constant [28 x i8] c"FAIL: +alloc returned null\0A\00", align 1 -@str.49 = private unnamed_addr constant [36 x i8] c"FAIL: +alloc round 2 returned null\0A\00", align 1 -@str.50 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.51 = private unnamed_addr constant [36 x i8] c"FAIL: +alloc round 2 returned null\0A\00", align 1 -@str.52 = private unnamed_addr constant [13 x i8] c"dealloc: ok\0A\00", align 1 -@str.53 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.54 = private unnamed_addr constant [13 x i8] c"dealloc: ok\0A\00", align 1 +@str.162 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.163 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.165 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.166 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.167 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.168 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.170 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.171 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.172 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.173 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.174 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.176 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.177 = private unnamed_addr constant [6 x i8] c"SxFoo\00", align 1 +@str.178 = private unnamed_addr constant [8 x i8] c"dealloc\00", align 1 +@str.179 = private unnamed_addr constant [6 x i8] c"alloc\00", align 1 +@str.180 = private unnamed_addr constant [8 x i8] c"release\00", align 1 +@str.181 = private unnamed_addr constant [28 x i8] c"FAIL: SxFoo not registered\0A\00", align 1 +@str.182 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.183 = private unnamed_addr constant [28 x i8] c"FAIL: SxFoo not registered\0A\00", align 1 +@str.184 = private unnamed_addr constant [27 x i8] c"FAIL: dealloc IMP missing\0A\00", align 1 +@str.185 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.186 = private unnamed_addr constant [27 x i8] c"FAIL: dealloc IMP missing\0A\00", align 1 +@str.187 = private unnamed_addr constant [28 x i8] c"FAIL: +alloc returned null\0A\00", align 1 +@str.188 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.189 = private unnamed_addr constant [28 x i8] c"FAIL: +alloc returned null\0A\00", align 1 +@str.190 = private unnamed_addr constant [36 x i8] c"FAIL: +alloc round 2 returned null\0A\00", align 1 +@str.191 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.192 = private unnamed_addr constant [36 x i8] c"FAIL: +alloc round 2 returned null\0A\00", align 1 +@str.193 = private unnamed_addr constant [13 x i8] c"dealloc: ok\0A\00", align 1 +@str.194 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.195 = private unnamed_addr constant [13 x i8] c"dealloc: ok\0A\00", align 1 @OBJC_IVAR_NAME_ = private unnamed_addr constant [11 x i8] c"__sx_state\00" @OBJC_IVAR_TYPE_ = private unnamed_addr constant [3 x i8] c"^v\00" @OBJC_CLASS_NAME_ = private unnamed_addr constant [9 x i8] c"NSObject\00" -@OBJC_CLASS_NAME_.55 = private unnamed_addr constant [6 x i8] c"SxFoo\00" +@OBJC_CLASS_NAME_.196 = private unnamed_addr constant [6 x i8] c"SxFoo\00" @OBJC_METH_VAR_NAME_ = private unnamed_addr constant [5 x i8] c"bump\00" @OBJC_METH_VAR_TYPE_ = private unnamed_addr constant [4 x i8] c"v@:\00" -@OBJC_METH_VAR_NAME_.56 = private unnamed_addr constant [8 x i8] c"dealloc\00" -@OBJC_METH_VAR_TYPE_.57 = private unnamed_addr constant [4 x i8] c"v@:\00" -@OBJC_METH_VAR_NAME_.58 = private unnamed_addr constant [6 x i8] c"alloc\00" -@OBJC_METH_VAR_TYPE_.59 = private unnamed_addr constant [4 x i8] c"@@:\00" +@OBJC_METH_VAR_NAME_.197 = private unnamed_addr constant [8 x i8] c"dealloc\00" +@OBJC_METH_VAR_TYPE_.198 = private unnamed_addr constant [4 x i8] c"v@:\00" +@OBJC_METH_VAR_NAME_.199 = private unnamed_addr constant [6 x i8] c"alloc\00" +@OBJC_METH_VAR_TYPE_.200 = private unnamed_addr constant [4 x i8] c"@@:\00" ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -355,7 +352,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.162, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -451,7 +448,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, 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 @@ -459,7 +456,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, 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 @@ -469,13 +466,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, 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 @@ -483,7 +480,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -497,7 +494,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, 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 @@ -505,7 +502,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, 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 @@ -516,7 +513,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -573,7 +570,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, 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 @@ -581,7 +578,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, 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 @@ -592,7 +589,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -612,7 +609,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, 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 @@ -620,7 +617,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, 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 @@ -631,7 +628,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -708,6 +705,414 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -819,6 +1224,336 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 ; Function Attrs: nounwind declare i64 @build_options() #0 +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + ; Function Attrs: nounwind declare ptr @objc_getClass(ptr) #0 @@ -904,7 +1639,7 @@ entry: %allocaN = alloca ptr, align 8 %allocaN = alloca ptr, align 8 %allocaN = alloca ptr, align 8 - %call = call ptr @objc_getClass(ptr @str.36) + %call = call ptr @objc_getClass(ptr @str.177) store ptr %call, ptr %alloca, align 8 %load = load ptr, ptr %alloca, align 8 %icmp = icmp eq ptr %load, null @@ -915,7 +1650,7 @@ if.then.0: ; preds = %entry ret i32 1 if.merge.1: ; preds = %entry - %callN = call ptr @sel_registerName(ptr @str.37) + %callN = call ptr @sel_registerName(ptr @str.178) store ptr %callN, ptr %allocaN, align 8 %loadN = load ptr, ptr %alloca, align 8 %loadN = load ptr, ptr %allocaN, align 8 @@ -930,7 +1665,7 @@ if.then.39: ; preds = %if.merge.1 ret i32 1 if.merge.40: ; preds = %if.merge.1 - %callN = call ptr @sel_registerName(ptr @str.38) + %callN = call ptr @sel_registerName(ptr @str.179) store ptr %callN, ptr %allocaN, align 8 store ptr @objc_msgSend, ptr %allocaN, align 8 %loadN = load ptr, ptr %alloca, align 8 @@ -947,7 +1682,7 @@ if.then.41: ; preds = %if.merge.40 ret i32 1 if.merge.42: ; preds = %if.merge.40 - %callN = call ptr @sel_registerName(ptr @str.39) + %callN = call ptr @sel_registerName(ptr @str.180) store ptr %callN, ptr %allocaN, align 8 store ptr @objc_msgSend, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8 @@ -994,14 +1729,14 @@ entry: define internal void @print__ct_s354c93d7643e1bdf__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.40, i64 27 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.181, i64 27 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.41, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.182, i64 0 }, ptr %allocaN, align 8 %load = 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 27) @@ -1017,7 +1752,7 @@ entry: ; 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.42, i64 27 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.183, i64 27 }) ret { ptr, i64 } %call } @@ -1025,14 +1760,14 @@ entry: define internal void @print__ct_sfe783e2b27a4beff__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.43, i64 26 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.184, i64 26 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.44, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.185, i64 0 }, ptr %allocaN, align 8 %load = 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 26) @@ -1048,7 +1783,7 @@ entry: ; 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.45, i64 26 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.186, i64 26 }) ret { ptr, i64 } %call } @@ -1056,14 +1791,14 @@ entry: define internal void @print__ct_scaebdbbd10c81716__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.46, i64 27 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.187, i64 27 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.47, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.188, i64 0 }, ptr %allocaN, align 8 %load = 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 27) @@ -1079,7 +1814,7 @@ entry: ; 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.48, i64 27 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.189, i64 27 }) ret { ptr, i64 } %call } @@ -1087,14 +1822,14 @@ entry: define internal void @print__ct_s7c1052877b8cc801__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.49, i64 35 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.190, i64 35 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.50, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.191, i64 0 }, ptr %allocaN, align 8 %load = 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 35) @@ -1110,7 +1845,7 @@ entry: ; 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.51, i64 35 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.192, i64 35 }) ret { ptr, i64 } %call } @@ -1118,14 +1853,14 @@ entry: define internal void @print__ct_sed4e79fbcbd67966__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.52, i64 12 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.193, i64 12 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.53, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.194, i64 0 }, ptr %allocaN, align 8 %load = 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 12) @@ -1141,7 +1876,7 @@ entry: ; 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.54, i64 12 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.195, i64 12 }) ret { ptr, i64 } %call } @@ -1199,17 +1934,17 @@ declare i8 @class_addIvar(ptr, ptr, i64, i8, ptr) define internal void @__sx_objc_defined_class_init() { entry: %super_cls = call ptr @objc_getClass(ptr @OBJC_CLASS_NAME_) - %cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.55, i64 0) + %cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.196, i64 0) %0 = call i8 @class_addIvar(ptr %cls, ptr @OBJC_IVAR_NAME_, i64 8, i8 3, ptr @OBJC_IVAR_TYPE_) %metacls = call ptr @object_getClass(ptr %cls) %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) %1 = call i1 @class_addMethod(ptr %cls, ptr %sel, ptr @__SxFoo_bump_imp, ptr @OBJC_METH_VAR_TYPE_) call void @objc_registerClassPair(ptr %cls) store ptr %cls, ptr @__SxFoo_class, align 8 - %sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.56) - %2 = call i1 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxFoo_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.57) - %sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.58) - %3 = call i1 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxFoo_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.59) + %sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.197) + %2 = call i1 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxFoo_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.198) + %sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.199) + %3 = call i1 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxFoo_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.200) %iv = call ptr @class_getInstanceVariable(ptr %cls, ptr @OBJC_IVAR_NAME_) store ptr %iv, ptr @__SxFoo_state_ivar, align 8 ret void diff --git a/examples/expected/1319-ffi-objc-property-sx-defined.ir b/examples/expected/1319-ffi-objc-property-sx-defined.ir index 83e761e..2ec53af 100644 --- a/examples/expected/1319-ffi-objc-property-sx-defined.ir +++ b/examples/expected/1319-ffi-objc-property-sx-defined.ir @@ -1,9 +1,6 @@ @__SxBox_state_ivar = internal global ptr null @__SxBox_class = internal global ptr null -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @OBJC_CLASSLIST_REFERENCES_SxBox = internal global ptr null @OBJC_SELECTOR_REFERENCES_init = internal global ptr null @@ -14,372 +11,693 @@ @OBJC_SELECTOR_REFERENCES_area = internal global ptr null @__sx_objc_cstr_dealloc = internal global [8 x i8] c"dealloc\00" @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [94 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] +@str.162 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.163 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.164 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.165 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.166 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.167 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [175 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.168 = private constant [9 x i8] c"Overflow\00" +@tag.str.169 = private constant [3 x i8] c"Io\00" +@tag.str.170 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.171 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.172 = private constant [10 x i8] c"BadEscape\00" +@tag.str.173 = private constant [10 x i8] c"BadNumber\00" +@tag.str.174 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.175 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.176 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.177 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.178 = private constant [13 x i8] c"MissingValue\00" +@tag.str.179 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.180 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.168, i64 8 }, { ptr, i64 } { ptr @tag.str.169, i64 2 }, { ptr, i64 } { ptr @tag.str.170, i64 15 }, { ptr, i64 } { ptr @tag.str.171, i64 13 }, { ptr, i64 } { ptr @tag.str.172, i64 9 }, { ptr, i64 } { ptr @tag.str.173, i64 9 }, { ptr, i64 } { ptr @tag.str.174, i64 15 }, { ptr, i64 } { ptr @tag.str.175, i64 14 }, { ptr, i64 } { ptr @tag.str.176, i64 14 }, { ptr, i64 } { ptr @tag.str.177, i64 11 }, { ptr, i64 } { ptr @tag.str.178, i64 12 }, { ptr, i64 } { ptr @tag.str.179, i64 15 }, { ptr, i64 } { ptr @tag.str.180, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [16 x i8] c"OperatingSystem\00" -@tn.str.64 = private constant [13 x i8] c"Architecture\00" -@tn.str.65 = private constant [13 x i8] c"BuildOptions\00" -@tn.str.66 = private constant [11 x i8] c"() -> bool\00" -@tn.str.67 = private constant [9 x i8] c"NSString\00" -@tn.str.68 = private constant [10 x i8] c"*NSString\00" -@tn.str.69 = private constant [10 x i8] c"Closure()\00" -@tn.str.70 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.71 = private constant [5 x i8] c"*s64\00" -@tn.str.72 = private constant [7 x i8] c"**void\00" -@tn.str.73 = private constant [6 x i8] c"SxBox\00" -@tn.str.74 = private constant [7 x i8] c"*SxBox\00" -@tn.str.75 = private constant [13 x i8] c"__SxBoxState\00" -@tn.str.76 = private constant [8 x i8] c"**SxBox\00" -@tn.str.77 = private constant [5 x i8] c"*s32\00" -@tn.str.78 = private constant [8 x i8] c"*string\00" -@tn.str.79 = private constant [6 x i8] c"[]Any\00" -@tn.str.80 = private constant [5 x i8] c"*Any\00" -@tn.str.81 = private constant [7 x i8] c"*[]Any\00" -@tn.str.82 = private constant [4 x i8] c"*u8\00" -@tn.str.83 = private constant [6 x i8] c"*bool\00" -@tn.str.84 = private constant [7 x i8] c"[1]Any\00" -@tn.str.85 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.86 = private constant [7 x i8] c"[3]Any\00" -@tn.str.87 = private constant [8 x i8] c"*[3]Any\00" -@tn.str.88 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.89 = private constant [5 x i8] c"*f64\00" -@tn.str.90 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.91 = private constant [11 x i8] c"*Allocator\00" -@tn.str.92 = private constant [9 x i8] c"*Context\00" -@tn.str.93 = private constant [14 x i8] c"*BuildOptions\00" -@tn.str.94 = private constant [14 x i8] c"*__SxBoxState\00" -@tn.str.95 = private constant [17 x i8] c"*OperatingSystem\00" -@tn.str.96 = private constant [14 x i8] c"*Architecture\00" -@tn.str.97 = private constant [10 x i8] c"*[]string\00" -@tn.str.98 = private constant [6 x i8] c"**GPA\00" -@tn.str.99 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.100 = private constant [8 x i8] c"**Arena\00" -@tn.str.101 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.102 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.103 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.104 = private constant [11 x i8] c"**NSString\00" -@tn.str.105 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.106 = private constant [6 x i8] c"**s64\00" -@tn.str.107 = private constant [8 x i8] c"***void\00" -@tn.str.108 = private constant [9 x i8] c"***SxBox\00" -@tn.str.109 = private constant [6 x i8] c"**s32\00" -@tn.str.110 = private constant [9 x i8] c"**string\00" -@tn.str.111 = private constant [6 x i8] c"**Any\00" -@tn.str.112 = private constant [8 x i8] c"**[]Any\00" -@tn.str.113 = private constant [5 x i8] c"**u8\00" -@tn.str.114 = private constant [7 x i8] c"**bool\00" -@tn.str.115 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.116 = private constant [9 x i8] c"**[3]Any\00" -@tn.str.117 = private constant [16 x i8] c"__sx_objc_super\00" -@tn.str.118 = private constant [17 x i8] c"*__sx_objc_super\00" -@tn.str.119 = private constant [6 x i8] c"[8]u8\00" -@__sx_type_names = private constant [94 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 15 }, { ptr, i64 } { ptr @tn.str.64, i64 12 }, { ptr, i64 } { ptr @tn.str.65, i64 12 }, { ptr, i64 } { ptr @tn.str.66, i64 10 }, { ptr, i64 } { ptr @tn.str.67, i64 8 }, { ptr, i64 } { ptr @tn.str.68, i64 9 }, { ptr, i64 } { ptr @tn.str.69, i64 9 }, { ptr, i64 } { ptr @tn.str.70, i64 12 }, { ptr, i64 } { ptr @tn.str.71, i64 4 }, { ptr, i64 } { ptr @tn.str.72, i64 6 }, { ptr, i64 } { ptr @tn.str.73, i64 5 }, { ptr, i64 } { ptr @tn.str.74, i64 6 }, { ptr, i64 } { ptr @tn.str.75, i64 12 }, { ptr, i64 } { ptr @tn.str.76, i64 7 }, { ptr, i64 } { ptr @tn.str.77, i64 4 }, { ptr, i64 } { ptr @tn.str.78, i64 7 }, { ptr, i64 } { ptr @tn.str.79, i64 5 }, { ptr, i64 } { ptr @tn.str.80, i64 4 }, { ptr, i64 } { ptr @tn.str.81, i64 6 }, { ptr, i64 } { ptr @tn.str.82, i64 3 }, { ptr, i64 } { ptr @tn.str.83, i64 5 }, { ptr, i64 } { ptr @tn.str.84, i64 6 }, { ptr, i64 } { ptr @tn.str.85, i64 7 }, { ptr, i64 } { ptr @tn.str.86, i64 6 }, { ptr, i64 } { ptr @tn.str.87, i64 7 }, { ptr, i64 } { ptr @tn.str.88, i64 7 }, { ptr, i64 } { ptr @tn.str.89, i64 4 }, { ptr, i64 } { ptr @tn.str.90, i64 16 }, { ptr, i64 } { ptr @tn.str.91, i64 10 }, { ptr, i64 } { ptr @tn.str.92, i64 8 }, { ptr, i64 } { ptr @tn.str.93, i64 13 }, { ptr, i64 } { ptr @tn.str.94, i64 13 }, { ptr, i64 } { ptr @tn.str.95, i64 16 }, { ptr, i64 } { ptr @tn.str.96, i64 13 }, { ptr, i64 } { ptr @tn.str.97, i64 9 }, { ptr, i64 } { ptr @tn.str.98, i64 5 }, { ptr, i64 } { ptr @tn.str.99, i64 12 }, { ptr, i64 } { ptr @tn.str.100, i64 7 }, { ptr, i64 } { ptr @tn.str.101, i64 6 }, { ptr, i64 } { ptr @tn.str.102, i64 10 }, { ptr, i64 } { ptr @tn.str.103, i64 19 }, { ptr, i64 } { ptr @tn.str.104, i64 10 }, { ptr, i64 } { ptr @tn.str.105, i64 13 }, { ptr, i64 } { ptr @tn.str.106, i64 5 }, { ptr, i64 } { ptr @tn.str.107, i64 7 }, { ptr, i64 } { ptr @tn.str.108, i64 8 }, { ptr, i64 } { ptr @tn.str.109, i64 5 }, { ptr, i64 } { ptr @tn.str.110, i64 8 }, { ptr, i64 } { ptr @tn.str.111, i64 5 }, { ptr, i64 } { ptr @tn.str.112, i64 7 }, { ptr, i64 } { ptr @tn.str.113, i64 4 }, { ptr, i64 } { ptr @tn.str.114, i64 6 }, { ptr, i64 } { ptr @tn.str.115, i64 8 }, { ptr, i64 } { ptr @tn.str.116, i64 8 }, { ptr, i64 } { ptr @tn.str.117, i64 15 }, { ptr, i64 } { ptr @tn.str.118, i64 16 }, { ptr, i64 } { ptr @tn.str.119, i64 5 }] -@str.120 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.121 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.122 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.123 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.124 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.140 = private unnamed_addr constant [6 x i8] c"SxBox\00", align 1 -@str.141 = private unnamed_addr constant [9 x i8] c"setArea:\00", align 1 -@str.142 = private unnamed_addr constant [31 x i8] c"FAIL: width/height round-trip\0A\00", align 1 -@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.144 = private unnamed_addr constant [31 x i8] c"FAIL: width/height round-trip\0A\00", align 1 -@str.145 = private unnamed_addr constant [31 x i8] c"FAIL: area expected 0, got {}\0A\00", align 1 -@str.146 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.147 = private unnamed_addr constant [31 x i8] c"FAIL: area expected 0, got {}\0A\00", align 1 -@str.148 = private unnamed_addr constant [52 x i8] c"FAIL: setArea: should not be registered (readonly)\0A\00", align 1 -@str.149 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.150 = private unnamed_addr constant [52 x i8] c"FAIL: setArea: should not be registered (readonly)\0A\00", align 1 -@str.151 = private unnamed_addr constant [29 x i8] c"property: w={} h={} area={}\0A\00", align 1 -@str.152 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.153 = private unnamed_addr constant [29 x i8] c"property: w={} h={} area={}\0A\00", align 1 -@str.154 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.155 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.156 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.157 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.181 = private constant [5 x i8] c"bool\00" +@tn.str.182 = private constant [3 x i8] c"s8\00" +@tn.str.183 = private constant [4 x i8] c"s16\00" +@tn.str.184 = private constant [4 x i8] c"s32\00" +@tn.str.185 = private constant [4 x i8] c"s64\00" +@tn.str.186 = private constant [3 x i8] c"u8\00" +@tn.str.187 = private constant [4 x i8] c"u16\00" +@tn.str.188 = private constant [4 x i8] c"u32\00" +@tn.str.189 = private constant [4 x i8] c"u64\00" +@tn.str.190 = private constant [4 x i8] c"f32\00" +@tn.str.191 = private constant [4 x i8] c"f64\00" +@tn.str.192 = private constant [7 x i8] c"string\00" +@tn.str.193 = private constant [4 x i8] c"Any\00" +@tn.str.194 = private constant [9 x i8] c"noreturn\00" +@tn.str.195 = private constant [6 x i8] c"isize\00" +@tn.str.196 = private constant [6 x i8] c"usize\00" +@tn.str.197 = private constant [5 x i8] c"void\00" +@tn.str.198 = private constant [6 x i8] c"*void\00" +@tn.str.199 = private constant [16 x i8] c"Source_Location\00" +@tn.str.200 = private constant [11 x i8] c"CAllocator\00" +@tn.str.201 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.202 = private constant [4 x i8] c"GPA\00" +@tn.str.203 = private constant [5 x i8] c"*GPA\00" +@tn.str.204 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.205 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.206 = private constant [10 x i8] c"Allocator\00" +@tn.str.207 = private constant [6 x i8] c"Arena\00" +@tn.str.208 = private constant [7 x i8] c"*Arena\00" +@tn.str.209 = private constant [6 x i8] c"[*]u8\00" +@tn.str.210 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.211 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.212 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.213 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.214 = private constant [8 x i8] c"Context\00" +@tn.str.215 = private constant [7 x i8] c"[4]s64\00" +@tn.str.216 = private constant [9 x i8] c"[]string\00" +@tn.str.217 = private constant [9 x i8] c"OpenMode\00" +@tn.str.218 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.219 = private constant [5 x i8] c"File\00" +@tn.str.220 = private constant [6 x i8] c"*File\00" +@tn.str.221 = private constant [6 x i8] c"?File\00" +@tn.str.222 = private constant [8 x i8] c"?string\00" +@tn.str.223 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.224 = private constant [4 x i8] c"*u8\00" +@tn.str.225 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.226 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.227 = private constant [5 x i8] c"*s32\00" +@tn.str.228 = private constant [9 x i8] c"SockAddr\00" +@tn.str.229 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.230 = private constant [5 x i8] c"*u32\00" +@tn.str.231 = private constant [10 x i8] c"JsonError\00" +@tn.str.232 = private constant [6 x i8] c"Array\00" +@tn.str.233 = private constant [7 x i8] c"Object\00" +@tn.str.234 = private constant [6 x i8] c"Value\00" +@tn.str.235 = private constant [7 x i8] c"Member\00" +@tn.str.236 = private constant [9 x i8] c"[*]Value\00" +@tn.str.237 = private constant [7 x i8] c"*Array\00" +@tn.str.238 = private constant [10 x i8] c"[*]Member\00" +@tn.str.239 = private constant [8 x i8] c"*Object\00" +@tn.str.240 = private constant [5 x i8] c"[]u8\00" +@tn.str.241 = private constant [5 x i8] c"Sink\00" +@tn.str.242 = private constant [6 x i8] c"*Sink\00" +@tn.str.243 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.244 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.245 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.246 = private constant [7 x i8] c"Parser\00" +@tn.str.247 = private constant [8 x i8] c"*Parser\00" +@tn.str.248 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.249 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.250 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.251 = private constant [13 x i8] c"Architecture\00" +@tn.str.252 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.253 = private constant [11 x i8] c"() -> bool\00" +@tn.str.254 = private constant [5 x i8] c"*s64\00" +@tn.str.255 = private constant [9 x i8] c"CliError\00" +@tn.str.256 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.257 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.258 = private constant [8 x i8] c"Command\00" +@tn.str.259 = private constant [10 x i8] c"FlagValue\00" +@tn.str.260 = private constant [5 x i8] c"Diag\00" +@tn.str.261 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.262 = private constant [7 x i8] c"Parsed\00" +@tn.str.263 = private constant [8 x i8] c"*Parsed\00" +@tn.str.264 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.265 = private constant [10 x i8] c"[]Command\00" +@tn.str.266 = private constant [6 x i8] c"*Diag\00" +@tn.str.267 = private constant [7 x i8] c"[8]s64\00" +@tn.str.268 = private constant [7 x i8] c"[64]u8\00" +@tn.str.269 = private constant [7 x i8] c"Sha256\00" +@tn.str.270 = private constant [8 x i8] c"*Sha256\00" +@tn.str.271 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.272 = private constant [8 x i8] c"[64]s64\00" +@tn.str.273 = private constant [9 x i8] c"NSString\00" +@tn.str.274 = private constant [10 x i8] c"*NSString\00" +@tn.str.275 = private constant [10 x i8] c"Closure()\00" +@tn.str.276 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.277 = private constant [7 x i8] c"**void\00" +@tn.str.278 = private constant [6 x i8] c"SxBox\00" +@tn.str.279 = private constant [7 x i8] c"*SxBox\00" +@tn.str.280 = private constant [13 x i8] c"__SxBoxState\00" +@tn.str.281 = private constant [8 x i8] c"**SxBox\00" +@tn.str.282 = private constant [8 x i8] c"*string\00" +@tn.str.283 = private constant [6 x i8] c"[]Any\00" +@tn.str.284 = private constant [5 x i8] c"*Any\00" +@tn.str.285 = private constant [7 x i8] c"*[]Any\00" +@tn.str.286 = private constant [6 x i8] c"*bool\00" +@tn.str.287 = private constant [7 x i8] c"[1]Any\00" +@tn.str.288 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.289 = private constant [7 x i8] c"[3]Any\00" +@tn.str.290 = private constant [8 x i8] c"*[3]Any\00" +@tn.str.291 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.292 = private constant [5 x i8] c"*f64\00" +@tn.str.293 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.294 = private constant [11 x i8] c"*Allocator\00" +@tn.str.295 = private constant [9 x i8] c"*Context\00" +@tn.str.296 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.297 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.298 = private constant [8 x i8] c"*Member\00" +@tn.str.299 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.300 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.301 = private constant [9 x i8] c"*Command\00" +@tn.str.302 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.303 = private constant [14 x i8] c"*__SxBoxState\00" +@tn.str.304 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.305 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.306 = private constant [7 x i8] c"*Value\00" +@tn.str.307 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.308 = private constant [14 x i8] c"*Architecture\00" +@tn.str.309 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.310 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.311 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.312 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.313 = private constant [10 x i8] c"*[]string\00" +@tn.str.314 = private constant [6 x i8] c"*[]u8\00" +@tn.str.315 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.316 = private constant [11 x i8] c"*[]Command\00" +@tn.str.317 = private constant [6 x i8] c"**GPA\00" +@tn.str.318 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.319 = private constant [8 x i8] c"**Arena\00" +@tn.str.320 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.321 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.322 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.323 = private constant [7 x i8] c"**File\00" +@tn.str.324 = private constant [5 x i8] c"**u8\00" +@tn.str.325 = private constant [6 x i8] c"**s32\00" +@tn.str.326 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.327 = private constant [6 x i8] c"**u32\00" +@tn.str.328 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.329 = private constant [8 x i8] c"**Array\00" +@tn.str.330 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.331 = private constant [9 x i8] c"**Object\00" +@tn.str.332 = private constant [7 x i8] c"**Sink\00" +@tn.str.333 = private constant [9 x i8] c"**Parser\00" +@tn.str.334 = private constant [6 x i8] c"**s64\00" +@tn.str.335 = private constant [9 x i8] c"**Parsed\00" +@tn.str.336 = private constant [7 x i8] c"**Diag\00" +@tn.str.337 = private constant [9 x i8] c"**Sha256\00" +@tn.str.338 = private constant [11 x i8] c"**NSString\00" +@tn.str.339 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.340 = private constant [8 x i8] c"***void\00" +@tn.str.341 = private constant [9 x i8] c"***SxBox\00" +@tn.str.342 = private constant [9 x i8] c"**string\00" +@tn.str.343 = private constant [6 x i8] c"**Any\00" +@tn.str.344 = private constant [8 x i8] c"**[]Any\00" +@tn.str.345 = private constant [7 x i8] c"**bool\00" +@tn.str.346 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.347 = private constant [9 x i8] c"**[3]Any\00" +@tn.str.348 = private constant [7 x i8] c"*?File\00" +@tn.str.349 = private constant [9 x i8] c"*?string\00" +@tn.str.350 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.351 = private constant [9 x i8] c"*?[64]u8\00" +@tn.str.352 = private constant [16 x i8] c"__sx_objc_super\00" +@tn.str.353 = private constant [17 x i8] c"*__sx_objc_super\00" +@tn.str.354 = private constant [6 x i8] c"[8]u8\00" +@__sx_type_names = private constant [175 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.181, i64 4 }, { ptr, i64 } { ptr @tn.str.182, i64 2 }, { ptr, i64 } { ptr @tn.str.183, i64 3 }, { ptr, i64 } { ptr @tn.str.184, i64 3 }, { ptr, i64 } { ptr @tn.str.185, i64 3 }, { ptr, i64 } { ptr @tn.str.186, i64 2 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 3 }, { ptr, i64 } { ptr @tn.str.189, i64 3 }, { ptr, i64 } { ptr @tn.str.190, i64 3 }, { ptr, i64 } { ptr @tn.str.191, i64 3 }, { ptr, i64 } { ptr @tn.str.192, i64 6 }, { ptr, i64 } { ptr @tn.str.193, i64 3 }, { ptr, i64 } { ptr @tn.str.194, i64 8 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 5 }, { ptr, i64 } { ptr @tn.str.197, i64 4 }, { ptr, i64 } { ptr @tn.str.198, i64 5 }, { ptr, i64 } { ptr @tn.str.199, i64 15 }, { ptr, i64 } { ptr @tn.str.200, i64 10 }, { ptr, i64 } { ptr @tn.str.201, i64 11 }, { ptr, i64 } { ptr @tn.str.202, i64 3 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 10 }, { ptr, i64 } { ptr @tn.str.205, i64 11 }, { ptr, i64 } { ptr @tn.str.206, i64 9 }, { ptr, i64 } { ptr @tn.str.207, i64 5 }, { ptr, i64 } { ptr @tn.str.208, i64 6 }, { ptr, i64 } { ptr @tn.str.209, i64 5 }, { ptr, i64 } { ptr @tn.str.210, i64 8 }, { ptr, i64 } { ptr @tn.str.211, i64 9 }, { ptr, i64 } { ptr @tn.str.212, i64 17 }, { ptr, i64 } { ptr @tn.str.213, i64 18 }, { ptr, i64 } { ptr @tn.str.214, i64 7 }, { ptr, i64 } { ptr @tn.str.215, i64 6 }, { ptr, i64 } { ptr @tn.str.216, i64 8 }, { ptr, i64 } { ptr @tn.str.217, i64 8 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 4 }, { ptr, i64 } { ptr @tn.str.220, i64 5 }, { ptr, i64 } { ptr @tn.str.221, i64 5 }, { ptr, i64 } { ptr @tn.str.222, i64 7 }, { ptr, i64 } { ptr @tn.str.223, i64 10 }, { ptr, i64 } { ptr @tn.str.224, i64 3 }, { ptr, i64 } { ptr @tn.str.225, i64 13 }, { ptr, i64 } { ptr @tn.str.226, i64 14 }, { ptr, i64 } { ptr @tn.str.227, i64 4 }, { ptr, i64 } { ptr @tn.str.228, i64 8 }, { ptr, i64 } { ptr @tn.str.229, i64 9 }, { ptr, i64 } { ptr @tn.str.230, i64 4 }, { ptr, i64 } { ptr @tn.str.231, i64 9 }, { ptr, i64 } { ptr @tn.str.232, i64 5 }, { ptr, i64 } { ptr @tn.str.233, i64 6 }, { ptr, i64 } { ptr @tn.str.234, i64 5 }, { ptr, i64 } { ptr @tn.str.235, i64 6 }, { ptr, i64 } { ptr @tn.str.236, i64 8 }, { ptr, i64 } { ptr @tn.str.237, i64 6 }, { ptr, i64 } { ptr @tn.str.238, i64 9 }, { ptr, i64 } { ptr @tn.str.239, i64 7 }, { ptr, i64 } { ptr @tn.str.240, i64 4 }, { ptr, i64 } { ptr @tn.str.241, i64 4 }, { ptr, i64 } { ptr @tn.str.242, i64 5 }, { ptr, i64 } { ptr @tn.str.243, i64 16 }, { ptr, i64 } { ptr @tn.str.244, i64 14 }, { ptr, i64 } { ptr @tn.str.245, i64 21 }, { ptr, i64 } { ptr @tn.str.246, i64 6 }, { ptr, i64 } { ptr @tn.str.247, i64 7 }, { ptr, i64 } { ptr @tn.str.248, i64 24 }, { ptr, i64 } { ptr @tn.str.249, i64 23 }, { ptr, i64 } { ptr @tn.str.250, i64 15 }, { ptr, i64 } { ptr @tn.str.251, i64 12 }, { ptr, i64 } { ptr @tn.str.252, i64 12 }, { ptr, i64 } { ptr @tn.str.253, i64 10 }, { ptr, i64 } { ptr @tn.str.254, i64 4 }, { ptr, i64 } { ptr @tn.str.255, i64 8 }, { ptr, i64 } { ptr @tn.str.256, i64 8 }, { ptr, i64 } { ptr @tn.str.257, i64 10 }, { ptr, i64 } { ptr @tn.str.258, i64 7 }, { ptr, i64 } { ptr @tn.str.259, i64 9 }, { ptr, i64 } { ptr @tn.str.260, i64 4 }, { ptr, i64 } { ptr @tn.str.261, i64 13 }, { ptr, i64 } { ptr @tn.str.262, i64 6 }, { ptr, i64 } { ptr @tn.str.263, i64 7 }, { ptr, i64 } { ptr @tn.str.264, i64 18 }, { ptr, i64 } { ptr @tn.str.265, i64 9 }, { ptr, i64 } { ptr @tn.str.266, i64 5 }, { ptr, i64 } { ptr @tn.str.267, i64 6 }, { ptr, i64 } { ptr @tn.str.268, i64 6 }, { ptr, i64 } { ptr @tn.str.269, i64 6 }, { ptr, i64 } { ptr @tn.str.270, i64 7 }, { ptr, i64 } { ptr @tn.str.271, i64 7 }, { ptr, i64 } { ptr @tn.str.272, i64 7 }, { ptr, i64 } { ptr @tn.str.273, i64 8 }, { ptr, i64 } { ptr @tn.str.274, i64 9 }, { ptr, i64 } { ptr @tn.str.275, i64 9 }, { ptr, i64 } { ptr @tn.str.276, i64 12 }, { ptr, i64 } { ptr @tn.str.277, i64 6 }, { ptr, i64 } { ptr @tn.str.278, i64 5 }, { ptr, i64 } { ptr @tn.str.279, i64 6 }, { ptr, i64 } { ptr @tn.str.280, i64 12 }, { ptr, i64 } { ptr @tn.str.281, i64 7 }, { ptr, i64 } { ptr @tn.str.282, i64 7 }, { ptr, i64 } { ptr @tn.str.283, i64 5 }, { ptr, i64 } { ptr @tn.str.284, i64 4 }, { ptr, i64 } { ptr @tn.str.285, i64 6 }, { ptr, i64 } { ptr @tn.str.286, i64 5 }, { ptr, i64 } { ptr @tn.str.287, i64 6 }, { ptr, i64 } { ptr @tn.str.288, i64 7 }, { ptr, i64 } { ptr @tn.str.289, i64 6 }, { ptr, i64 } { ptr @tn.str.290, i64 7 }, { ptr, i64 } { ptr @tn.str.291, i64 7 }, { ptr, i64 } { ptr @tn.str.292, i64 4 }, { ptr, i64 } { ptr @tn.str.293, i64 16 }, { ptr, i64 } { ptr @tn.str.294, i64 10 }, { ptr, i64 } { ptr @tn.str.295, i64 8 }, { ptr, i64 } { ptr @tn.str.296, i64 11 }, { ptr, i64 } { ptr @tn.str.297, i64 14 }, { ptr, i64 } { ptr @tn.str.298, i64 7 }, { ptr, i64 } { ptr @tn.str.299, i64 13 }, { ptr, i64 } { ptr @tn.str.300, i64 9 }, { ptr, i64 } { ptr @tn.str.301, i64 8 }, { ptr, i64 } { ptr @tn.str.302, i64 10 }, { ptr, i64 } { ptr @tn.str.303, i64 13 }, { ptr, i64 } { ptr @tn.str.304, i64 9 }, { ptr, i64 } { ptr @tn.str.305, i64 9 }, { ptr, i64 } { ptr @tn.str.306, i64 6 }, { ptr, i64 } { ptr @tn.str.307, i64 16 }, { ptr, i64 } { ptr @tn.str.308, i64 13 }, { ptr, i64 } { ptr @tn.str.309, i64 14 }, { ptr, i64 } { ptr @tn.str.310, i64 7 }, { ptr, i64 } { ptr @tn.str.311, i64 7 }, { ptr, i64 } { ptr @tn.str.312, i64 8 }, { ptr, i64 } { ptr @tn.str.313, i64 9 }, { ptr, i64 } { ptr @tn.str.314, i64 5 }, { ptr, i64 } { ptr @tn.str.315, i64 11 }, { ptr, i64 } { ptr @tn.str.316, i64 10 }, { ptr, i64 } { ptr @tn.str.317, i64 5 }, { ptr, i64 } { ptr @tn.str.318, i64 12 }, { ptr, i64 } { ptr @tn.str.319, i64 7 }, { ptr, i64 } { ptr @tn.str.320, i64 6 }, { ptr, i64 } { ptr @tn.str.321, i64 10 }, { ptr, i64 } { ptr @tn.str.322, i64 19 }, { ptr, i64 } { ptr @tn.str.323, i64 6 }, { ptr, i64 } { ptr @tn.str.324, i64 4 }, { ptr, i64 } { ptr @tn.str.325, i64 5 }, { ptr, i64 } { ptr @tn.str.326, i64 10 }, { ptr, i64 } { ptr @tn.str.327, i64 5 }, { ptr, i64 } { ptr @tn.str.328, i64 9 }, { ptr, i64 } { ptr @tn.str.329, i64 7 }, { ptr, i64 } { ptr @tn.str.330, i64 10 }, { ptr, i64 } { ptr @tn.str.331, i64 8 }, { ptr, i64 } { ptr @tn.str.332, i64 6 }, { ptr, i64 } { ptr @tn.str.333, i64 8 }, { ptr, i64 } { ptr @tn.str.334, i64 5 }, { ptr, i64 } { ptr @tn.str.335, i64 8 }, { ptr, i64 } { ptr @tn.str.336, i64 6 }, { ptr, i64 } { ptr @tn.str.337, i64 8 }, { ptr, i64 } { ptr @tn.str.338, i64 10 }, { ptr, i64 } { ptr @tn.str.339, i64 13 }, { ptr, i64 } { ptr @tn.str.340, i64 7 }, { ptr, i64 } { ptr @tn.str.341, i64 8 }, { ptr, i64 } { ptr @tn.str.342, i64 8 }, { ptr, i64 } { ptr @tn.str.343, i64 5 }, { ptr, i64 } { ptr @tn.str.344, i64 7 }, { ptr, i64 } { ptr @tn.str.345, i64 6 }, { ptr, i64 } { ptr @tn.str.346, i64 8 }, { ptr, i64 } { ptr @tn.str.347, i64 8 }, { ptr, i64 } { ptr @tn.str.348, i64 6 }, { ptr, i64 } { ptr @tn.str.349, i64 8 }, { ptr, i64 } { ptr @tn.str.350, i64 15 }, { ptr, i64 } { ptr @tn.str.351, i64 8 }, { ptr, i64 } { ptr @tn.str.352, i64 15 }, { ptr, i64 } { ptr @tn.str.353, i64 16 }, { ptr, i64 } { ptr @tn.str.354, i64 5 }] +@str.355 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.356 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.357 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.358 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.359 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.360 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.361 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.362 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.363 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.364 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.365 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.366 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.367 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.368 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.369 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.370 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.371 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.372 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.373 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.374 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.375 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.376 = private unnamed_addr constant [6 x i8] c"SxBox\00", align 1 +@str.377 = private unnamed_addr constant [9 x i8] c"setArea:\00", align 1 +@str.378 = private unnamed_addr constant [31 x i8] c"FAIL: width/height round-trip\0A\00", align 1 +@str.379 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.380 = private unnamed_addr constant [31 x i8] c"FAIL: width/height round-trip\0A\00", align 1 +@str.381 = private unnamed_addr constant [31 x i8] c"FAIL: area expected 0, got {}\0A\00", align 1 +@str.382 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.383 = private unnamed_addr constant [31 x i8] c"FAIL: area expected 0, got {}\0A\00", align 1 +@str.384 = private unnamed_addr constant [52 x i8] c"FAIL: setArea: should not be registered (readonly)\0A\00", align 1 +@str.385 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.386 = private unnamed_addr constant [52 x i8] c"FAIL: setArea: should not be registered (readonly)\0A\00", align 1 +@str.387 = private unnamed_addr constant [29 x i8] c"property: w={} h={} area={}\0A\00", align 1 +@str.388 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.389 = private unnamed_addr constant [29 x i8] c"property: w={} h={} area={}\0A\00", align 1 +@str.390 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.391 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.392 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.393 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.158 = private constant [5 x i8] c"line\00" -@fld.str.159 = private constant [4 x i8] c"col\00" -@fld.str.160 = 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.158, i64 4 }, { ptr, i64 } { ptr @fld.str.159, i64 3 }, { ptr, i64 } { ptr @fld.str.160, i64 4 }] -@str.161 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.162 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.163 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.164 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.165 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.166 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.167 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.168 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.169 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.170 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.171 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.172 = private constant [12 x i8] c"alloc_count\00" -@field_names.173 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.172, i64 11 }] -@str.174 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.175 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.176 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.177 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.178 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.179 = private constant [5 x i8] c"next\00" -@fld.str.180 = private constant [4 x i8] c"cap\00" -@field_names.181 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.179, i64 4 }, { ptr, i64 } { ptr @fld.str.180, i64 3 }] -@str.182 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.183 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.184 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.185 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.186 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.187 = private constant [4 x i8] c"ctx\00" -@fld.str.188 = private constant [6 x i8] c"alloc\00" -@fld.str.189 = private constant [8 x i8] c"dealloc\00" -@field_names.190 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.187, i64 3 }, { ptr, i64 } { ptr @fld.str.188, i64 5 }, { ptr, i64 } { ptr @fld.str.189, i64 7 }] -@str.191 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.192 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.193 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.194 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.195 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.196 = private constant [6 x i8] c"first\00" -@fld.str.197 = private constant [10 x i8] c"end_index\00" -@fld.str.198 = private constant [7 x i8] c"parent\00" -@field_names.199 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.196, i64 5 }, { ptr, i64 } { ptr @fld.str.197, i64 9 }, { ptr, i64 } { ptr @fld.str.198, i64 6 }] -@str.200 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.201 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.202 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.203 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.204 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.205 = private constant [4 x i8] c"buf\00" -@fld.str.206 = private constant [4 x i8] c"len\00" -@fld.str.207 = private constant [4 x i8] c"pos\00" -@field_names.208 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.205, i64 3 }, { ptr, i64 } { ptr @fld.str.206, i64 3 }, { ptr, i64 } { ptr @fld.str.207, i64 3 }] -@str.209 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.210 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.211 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.212 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.213 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.214 = private constant [7 x i8] c"parent\00" -@fld.str.215 = private constant [12 x i8] c"alloc_count\00" -@fld.str.216 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.217 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.218 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.214, i64 6 }, { ptr, i64 } { ptr @fld.str.215, i64 11 }, { ptr, i64 } { ptr @fld.str.216, i64 13 }, { ptr, i64 } { ptr @fld.str.217, i64 17 }] -@str.219 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.220 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.221 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.222 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.223 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.224 = private constant [10 x i8] c"allocator\00" -@fld.str.225 = private constant [5 x i8] c"data\00" -@field_names.226 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.224, i64 9 }, { ptr, i64 } { ptr @fld.str.225, i64 4 }] -@str.227 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.228 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 -@str.229 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.230 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.231 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.232 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.233 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.234 = private unnamed_addr constant [9 x i8] c"NSString\00", align 1 -@str.235 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.236 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.237 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.238 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.239 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.240 = private unnamed_addr constant [6 x i8] c"SxBox\00", align 1 -@str.241 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.242 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.243 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.244 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.245 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.246 = private unnamed_addr constant [13 x i8] c"__SxBoxState\00", align 1 -@str.247 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.248 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.249 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.250 = private constant [15 x i8] c"__sx_allocator\00" -@fld.str.251 = private constant [6 x i8] c"width\00" -@fld.str.252 = private constant [7 x i8] c"height\00" -@fld.str.253 = private constant [5 x i8] c"area\00" -@field_names.254 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.250, i64 14 }, { ptr, i64 } { ptr @fld.str.251, i64 5 }, { ptr, i64 } { ptr @fld.str.252, i64 6 }, { ptr, i64 } { ptr @fld.str.253, i64 4 }] -@str.255 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.256 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.257 = private constant [6 x i8] c"macos\00" -@fld.str.258 = private constant [6 x i8] c"linux\00" -@fld.str.259 = private constant [8 x i8] c"windows\00" -@fld.str.260 = private constant [5 x i8] c"wasm\00" -@fld.str.261 = private constant [4 x i8] c"ios\00" -@fld.str.262 = private constant [8 x i8] c"android\00" -@fld.str.263 = private constant [8 x i8] c"unknown\00" -@field_names.264 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.257, i64 5 }, { ptr, i64 } { ptr @fld.str.258, i64 5 }, { ptr, i64 } { ptr @fld.str.259, i64 7 }, { ptr, i64 } { ptr @fld.str.260, i64 4 }, { ptr, i64 } { ptr @fld.str.261, i64 3 }, { ptr, i64 } { ptr @fld.str.262, i64 7 }, { ptr, i64 } { ptr @fld.str.263, i64 7 }] -@str.265 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.266 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.267 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.268 = private constant [8 x i8] c"aarch64\00" -@fld.str.269 = private constant [7 x i8] c"x86_64\00" -@fld.str.270 = private constant [7 x i8] c"wasm32\00" -@fld.str.271 = private constant [7 x i8] c"wasm64\00" -@fld.str.272 = private constant [8 x i8] c"unknown\00" -@field_names.273 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.268, i64 7 }, { ptr, i64 } { ptr @fld.str.269, i64 6 }, { ptr, i64 } { ptr @fld.str.270, i64 6 }, { ptr, i64 } { ptr @fld.str.271, i64 6 }, { ptr, i64 } { ptr @fld.str.272, i64 7 }] -@str.274 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.275 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.276 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.277 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.278 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.279 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.280 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.281 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.282 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.283 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.284 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.285 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.286 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.287 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.288 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.289 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.290 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.291 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.292 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.293 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.294 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.295 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.296 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.297 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.298 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.299 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.300 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.301 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.302 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.303 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.304 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.305 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.306 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.307 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.308 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.309 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.310 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.311 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.312 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.313 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.314 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.315 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.316 = private unnamed_addr constant [10 x i8] c"*NSString\00", align 1 -@str.317 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.318 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.319 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.320 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.321 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.322 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.323 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.324 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.325 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.326 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.327 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.328 = private unnamed_addr constant [7 x i8] c"*SxBox\00", align 1 -@str.329 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.330 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.331 = private unnamed_addr constant [8 x i8] c"**SxBox\00", align 1 -@str.332 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.333 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.334 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 -@str.335 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.336 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.337 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.338 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.339 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.340 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.341 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.342 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.343 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.344 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.345 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.346 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.347 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.348 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.349 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.350 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.351 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.352 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.353 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.354 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.355 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 -@str.356 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.394 = private constant [5 x i8] c"line\00" +@fld.str.395 = private constant [4 x i8] c"col\00" +@fld.str.396 = 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.394, i64 4 }, { ptr, i64 } { ptr @fld.str.395, i64 3 }, { ptr, i64 } { ptr @fld.str.396, i64 4 }] +@str.397 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.398 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.399 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.400 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.401 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.402 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.403 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.404 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.405 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.406 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.407 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.408 = private constant [12 x i8] c"alloc_count\00" +@field_names.409 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.408, i64 11 }] +@str.410 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.411 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.412 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.413 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.414 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.415 = private constant [5 x i8] c"next\00" +@fld.str.416 = private constant [4 x i8] c"cap\00" +@field_names.417 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.415, i64 4 }, { ptr, i64 } { ptr @fld.str.416, i64 3 }] +@str.418 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.419 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.420 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.421 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.422 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.423 = private constant [4 x i8] c"ctx\00" +@fld.str.424 = private constant [6 x i8] c"alloc\00" +@fld.str.425 = private constant [8 x i8] c"dealloc\00" +@field_names.426 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.423, i64 3 }, { ptr, i64 } { ptr @fld.str.424, i64 5 }, { ptr, i64 } { ptr @fld.str.425, i64 7 }] +@str.427 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.428 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.429 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.430 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.431 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.432 = private constant [6 x i8] c"first\00" +@fld.str.433 = private constant [10 x i8] c"end_index\00" +@fld.str.434 = private constant [7 x i8] c"parent\00" +@field_names.435 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.432, i64 5 }, { ptr, i64 } { ptr @fld.str.433, i64 9 }, { ptr, i64 } { ptr @fld.str.434, i64 6 }] +@str.436 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.437 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.438 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.439 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.440 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.441 = private constant [4 x i8] c"buf\00" +@fld.str.442 = private constant [4 x i8] c"len\00" +@fld.str.443 = private constant [4 x i8] c"pos\00" +@field_names.444 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.441, i64 3 }, { ptr, i64 } { ptr @fld.str.442, i64 3 }, { ptr, i64 } { ptr @fld.str.443, i64 3 }] +@str.445 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.446 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.447 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.448 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.449 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.450 = private constant [7 x i8] c"parent\00" +@fld.str.451 = private constant [12 x i8] c"alloc_count\00" +@fld.str.452 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.453 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.454 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.450, i64 6 }, { ptr, i64 } { ptr @fld.str.451, i64 11 }, { ptr, i64 } { ptr @fld.str.452, i64 13 }, { ptr, i64 } { ptr @fld.str.453, i64 17 }] +@str.455 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.456 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.457 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.458 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.459 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.460 = private constant [10 x i8] c"allocator\00" +@fld.str.461 = private constant [5 x i8] c"data\00" +@field_names.462 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.460, i64 9 }, { ptr, i64 } { ptr @fld.str.461, i64 4 }] +@str.463 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.464 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.465 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.466 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.467 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.468 = private constant [3 x i8] c"fd\00" +@field_names.469 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.468, i64 2 }] +@str.470 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.471 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.472 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.473 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.474 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.475 = private constant [5 x i8] c"file\00" +@fld.str.476 = private constant [5 x i8] c"line\00" +@fld.str.477 = private constant [4 x i8] c"col\00" +@fld.str.478 = private constant [5 x i8] c"func\00" +@fld.str.479 = private constant [10 x i8] c"line_text\00" +@field_names.480 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.475, i64 4 }, { ptr, i64 } { ptr @fld.str.476, i64 4 }, { ptr, i64 } { ptr @fld.str.477, i64 3 }, { ptr, i64 } { ptr @fld.str.478, i64 4 }, { ptr, i64 } { ptr @fld.str.479, i64 9 }] +@str.481 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.482 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.483 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.484 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.485 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.486 = private constant [10 x i8] c"exit_code\00" +@fld.str.487 = private constant [7 x i8] c"stdout\00" +@field_names.488 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.486, i64 9 }, { ptr, i64 } { ptr @fld.str.487, i64 6 }] +@str.489 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.490 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.491 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.493 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.494 = private constant [8 x i8] c"sin_len\00" +@fld.str.495 = private constant [11 x i8] c"sin_family\00" +@fld.str.496 = private constant [9 x i8] c"sin_port\00" +@fld.str.497 = private constant [9 x i8] c"sin_addr\00" +@fld.str.498 = private constant [9 x i8] c"sin_zero\00" +@field_names.499 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.494, i64 7 }, { ptr, i64 } { ptr @fld.str.495, i64 10 }, { ptr, i64 } { ptr @fld.str.496, i64 8 }, { ptr, i64 } { ptr @fld.str.497, i64 8 }, { ptr, i64 } { ptr @fld.str.498, i64 8 }] +@str.500 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.501 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.502 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.503 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.504 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.505 = private constant [6 x i8] c"items\00" +@fld.str.506 = private constant [4 x i8] c"len\00" +@fld.str.507 = private constant [4 x i8] c"cap\00" +@field_names.508 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.505, i64 5 }, { ptr, i64 } { ptr @fld.str.506, i64 3 }, { ptr, i64 } { ptr @fld.str.507, i64 3 }] +@str.509 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.510 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.511 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.512 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.513 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.514 = private constant [6 x i8] c"items\00" +@fld.str.515 = private constant [4 x i8] c"len\00" +@fld.str.516 = private constant [4 x i8] c"cap\00" +@field_names.517 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.514, i64 5 }, { ptr, i64 } { ptr @fld.str.515, i64 3 }, { ptr, i64 } { ptr @fld.str.516, i64 3 }] +@str.518 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.519 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.520 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.521 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.522 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.523 = private constant [4 x i8] c"key\00" +@fld.str.524 = private constant [4 x i8] c"val\00" +@field_names.525 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.523, i64 3 }, { ptr, i64 } { ptr @fld.str.524, i64 3 }] +@str.526 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.527 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.528 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.529 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.530 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.531 = private constant [4 x i8] c"dst\00" +@fld.str.532 = private constant [4 x i8] c"pos\00" +@fld.str.533 = private constant [5 x i8] c"file\00" +@field_names.534 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.531, i64 3 }, { ptr, i64 } { ptr @fld.str.532, i64 3 }, { ptr, i64 } { ptr @fld.str.533, i64 4 }] +@str.535 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.536 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.537 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.538 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.539 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.540 = private constant [4 x i8] c"src\00" +@fld.str.541 = private constant [4 x i8] c"pos\00" +@fld.str.542 = private constant [6 x i8] c"alloc\00" +@field_names.543 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.540, i64 3 }, { ptr, i64 } { ptr @fld.str.541, i64 3 }, { ptr, i64 } { ptr @fld.str.542, i64 5 }] +@str.544 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.545 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.546 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.547 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.548 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.549 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.550 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.551 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.552 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.553 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.554 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.555 = private constant [5 x i8] c"name\00" +@fld.str.556 = private constant [12 x i8] c"takes_value\00" +@fld.str.557 = private constant [9 x i8] c"required\00" +@field_names.558 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.555, i64 4 }, { ptr, i64 } { ptr @fld.str.556, i64 11 }, { ptr, i64 } { ptr @fld.str.557, i64 8 }] +@str.559 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.560 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.562 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.563 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.564 = private constant [6 x i8] c"group\00" +@fld.str.565 = private constant [8 x i8] c"command\00" +@fld.str.566 = private constant [6 x i8] c"flags\00" +@field_names.567 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.564, i64 5 }, { ptr, i64 } { ptr @fld.str.565, i64 7 }, { ptr, i64 } { ptr @fld.str.566, i64 5 }] +@str.568 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.569 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.570 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.571 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.572 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.573 = private constant [4 x i8] c"set\00" +@fld.str.574 = private constant [6 x i8] c"value\00" +@field_names.575 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.573, i64 3 }, { ptr, i64 } { ptr @fld.str.574, i64 5 }] +@str.576 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.577 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.578 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.579 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.580 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.581 = private constant [6 x i8] c"index\00" +@fld.str.582 = private constant [6 x i8] c"token\00" +@field_names.583 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.581, i64 5 }, { ptr, i64 } { ptr @fld.str.582, i64 5 }] +@str.584 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.585 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.586 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.587 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.588 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.589 = private constant [6 x i8] c"group\00" +@fld.str.590 = private constant [8 x i8] c"command\00" +@fld.str.591 = private constant [10 x i8] c"cmd_index\00" +@fld.str.592 = private constant [5 x i8] c"json\00" +@fld.str.593 = private constant [5 x i8] c"rest\00" +@fld.str.594 = private constant [5 x i8] c"spec\00" +@fld.str.595 = private constant [7 x i8] c"values\00" +@field_names.596 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.589, i64 5 }, { ptr, i64 } { ptr @fld.str.590, i64 7 }, { ptr, i64 } { ptr @fld.str.591, i64 9 }, { ptr, i64 } { ptr @fld.str.592, i64 4 }, { ptr, i64 } { ptr @fld.str.593, i64 4 }, { ptr, i64 } { ptr @fld.str.594, i64 4 }, { ptr, i64 } { ptr @fld.str.595, i64 6 }] +@str.597 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.598 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.600 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.601 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.602 = private constant [2 x i8] c"h\00" +@fld.str.603 = private constant [4 x i8] c"buf\00" +@fld.str.604 = private constant [8 x i8] c"buf_len\00" +@fld.str.605 = private constant [10 x i8] c"total_len\00" +@field_names.606 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.602, i64 1 }, { ptr, i64 } { ptr @fld.str.603, i64 3 }, { ptr, i64 } { ptr @fld.str.604, i64 7 }, { ptr, i64 } { ptr @fld.str.605, i64 9 }] +@str.607 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.608 = private unnamed_addr constant [9 x i8] c"NSString\00", align 1 +@str.609 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.610 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.611 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.612 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.613 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.614 = private unnamed_addr constant [6 x i8] c"SxBox\00", align 1 +@str.615 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.616 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.617 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.618 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.619 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.620 = private unnamed_addr constant [13 x i8] c"__SxBoxState\00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.622 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.623 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.624 = private constant [15 x i8] c"__sx_allocator\00" +@fld.str.625 = private constant [6 x i8] c"width\00" +@fld.str.626 = private constant [7 x i8] c"height\00" +@fld.str.627 = private constant [5 x i8] c"area\00" +@field_names.628 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.624, i64 14 }, { ptr, i64 } { ptr @fld.str.625, i64 5 }, { ptr, i64 } { ptr @fld.str.626, i64 6 }, { ptr, i64 } { ptr @fld.str.627, i64 4 }] +@str.629 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.630 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.631 = private constant [5 x i8] c"read\00" +@fld.str.632 = private constant [6 x i8] c"write\00" +@fld.str.633 = private constant [7 x i8] c"append\00" +@fld.str.634 = private constant [11 x i8] c"read_write\00" +@field_names.635 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.631, i64 4 }, { ptr, i64 } { ptr @fld.str.632, i64 5 }, { ptr, i64 } { ptr @fld.str.633, i64 6 }, { ptr, i64 } { ptr @fld.str.634, i64 10 }] +@str.636 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.637 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.638 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.639 = private constant [4 x i8] c"set\00" +@fld.str.640 = private constant [8 x i8] c"current\00" +@fld.str.641 = private constant [4 x i8] c"end\00" +@field_names.642 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.639, i64 3 }, { ptr, i64 } { ptr @fld.str.640, i64 7 }, { ptr, i64 } { ptr @fld.str.641, i64 3 }] +@str.643 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.644 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.645 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.646 = private constant [6 x i8] c"null_\00" +@fld.str.647 = private constant [6 x i8] c"bool_\00" +@fld.str.648 = private constant [5 x i8] c"int_\00" +@fld.str.649 = private constant [4 x i8] c"str\00" +@fld.str.650 = private constant [6 x i8] c"array\00" +@fld.str.651 = private constant [7 x i8] c"object\00" +@field_names.652 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.646, i64 5 }, { ptr, i64 } { ptr @fld.str.647, i64 5 }, { ptr, i64 } { ptr @fld.str.648, i64 4 }, { ptr, i64 } { ptr @fld.str.649, i64 3 }, { ptr, i64 } { ptr @fld.str.650, i64 5 }, { ptr, i64 } { ptr @fld.str.651, i64 6 }] +@str.653 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.654 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.655 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.656 = private constant [6 x i8] c"macos\00" +@fld.str.657 = private constant [6 x i8] c"linux\00" +@fld.str.658 = private constant [8 x i8] c"windows\00" +@fld.str.659 = private constant [5 x i8] c"wasm\00" +@fld.str.660 = private constant [4 x i8] c"ios\00" +@fld.str.661 = private constant [8 x i8] c"android\00" +@fld.str.662 = private constant [8 x i8] c"unknown\00" +@field_names.663 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.656, i64 5 }, { ptr, i64 } { ptr @fld.str.657, i64 5 }, { ptr, i64 } { ptr @fld.str.658, i64 7 }, { ptr, i64 } { ptr @fld.str.659, i64 4 }, { ptr, i64 } { ptr @fld.str.660, i64 3 }, { ptr, i64 } { ptr @fld.str.661, i64 7 }, { ptr, i64 } { ptr @fld.str.662, i64 7 }] +@str.664 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.665 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.666 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.667 = private constant [8 x i8] c"aarch64\00" +@fld.str.668 = private constant [7 x i8] c"x86_64\00" +@fld.str.669 = private constant [7 x i8] c"wasm32\00" +@fld.str.670 = private constant [7 x i8] c"wasm64\00" +@fld.str.671 = private constant [8 x i8] c"unknown\00" +@field_names.672 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.667, i64 7 }, { ptr, i64 } { ptr @fld.str.668, i64 6 }, { ptr, i64 } { ptr @fld.str.669, i64 6 }, { ptr, i64 } { ptr @fld.str.670, i64 6 }, { ptr, i64 } { ptr @fld.str.671, i64 7 }] +@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 [2 x i8] c"[\00", align 1 +@str.676 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.677 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.678 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.679 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.680 = private unnamed_addr constant [3 x i8] c", \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 +@str.684 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.685 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.686 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.687 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.688 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.689 = private unnamed_addr constant [3 x i8] c", \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 +@str.693 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.694 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.695 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.696 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.697 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.698 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.699 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.700 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.701 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.702 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.703 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.704 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.707 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.708 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.709 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.710 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.711 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.712 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.713 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.714 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.715 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.716 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.717 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.718 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.719 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.720 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.721 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.722 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.723 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.724 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.725 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.726 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.727 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.728 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.729 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.730 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.731 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.732 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.733 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.734 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.735 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.736 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.737 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.738 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.739 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.740 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.741 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.742 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.743 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.744 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.745 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.746 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.747 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.748 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.749 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.750 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.751 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.752 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.753 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.754 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.755 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.756 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.757 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.758 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.759 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.760 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.761 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.762 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.763 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.764 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.765 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.766 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.767 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.768 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.769 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.770 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.771 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.772 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.773 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.774 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.775 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.776 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.777 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.778 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.779 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.780 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.781 = private unnamed_addr constant [10 x i8] c"*NSString\00", align 1 +@str.782 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.783 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.784 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.785 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.786 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.787 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.788 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.789 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.790 = private unnamed_addr constant [7 x i8] c"*SxBox\00", align 1 +@str.791 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.792 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.793 = private unnamed_addr constant [8 x i8] c"**SxBox\00", align 1 +@str.794 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.795 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.796 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.797 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.798 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.799 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.800 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.801 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.802 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.803 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.804 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.805 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.806 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.807 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.808 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.809 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.810 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.811 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 +@str.812 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.813 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.814 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.815 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.816 = private unnamed_addr constant [5 x i8] c"null\00", align 1 @OBJC_METH_VAR_NAME_ = private unnamed_addr constant [5 x i8] c"init\00" -@OBJC_METH_VAR_NAME_.357 = private unnamed_addr constant [10 x i8] c"setWidth:\00" -@OBJC_METH_VAR_NAME_.358 = private unnamed_addr constant [11 x i8] c"setHeight:\00" -@OBJC_METH_VAR_NAME_.359 = private unnamed_addr constant [6 x i8] c"width\00" -@OBJC_METH_VAR_NAME_.360 = private unnamed_addr constant [7 x i8] c"height\00" -@OBJC_METH_VAR_NAME_.361 = private unnamed_addr constant [5 x i8] c"area\00" +@OBJC_METH_VAR_NAME_.817 = private unnamed_addr constant [10 x i8] c"setWidth:\00" +@OBJC_METH_VAR_NAME_.818 = private unnamed_addr constant [11 x i8] c"setHeight:\00" +@OBJC_METH_VAR_NAME_.819 = private unnamed_addr constant [6 x i8] c"width\00" +@OBJC_METH_VAR_NAME_.820 = private unnamed_addr constant [7 x i8] c"height\00" +@OBJC_METH_VAR_NAME_.821 = private unnamed_addr constant [5 x i8] c"area\00" @OBJC_IVAR_NAME_ = private unnamed_addr constant [11 x i8] c"__sx_state\00" @OBJC_IVAR_TYPE_ = private unnamed_addr constant [3 x i8] c"^v\00" @OBJC_CLASS_NAME_ = private unnamed_addr constant [9 x i8] c"NSObject\00" -@OBJC_CLASS_NAME_.362 = private unnamed_addr constant [6 x i8] c"SxBox\00" -@OBJC_METH_VAR_NAME_.363 = private unnamed_addr constant [6 x i8] c"width\00" +@OBJC_CLASS_NAME_.822 = private unnamed_addr constant [6 x i8] c"SxBox\00" +@OBJC_METH_VAR_NAME_.823 = private unnamed_addr constant [6 x i8] c"width\00" @OBJC_METH_VAR_TYPE_ = private unnamed_addr constant [4 x i8] c"i@:\00" -@OBJC_METH_VAR_NAME_.364 = private unnamed_addr constant [10 x i8] c"setWidth:\00" -@OBJC_METH_VAR_TYPE_.365 = private unnamed_addr constant [5 x i8] c"v@:i\00" -@OBJC_METH_VAR_NAME_.366 = private unnamed_addr constant [7 x i8] c"height\00" -@OBJC_METH_VAR_TYPE_.367 = private unnamed_addr constant [4 x i8] c"i@:\00" -@OBJC_METH_VAR_NAME_.368 = private unnamed_addr constant [11 x i8] c"setHeight:\00" -@OBJC_METH_VAR_TYPE_.369 = private unnamed_addr constant [5 x i8] c"v@:i\00" -@OBJC_METH_VAR_NAME_.370 = private unnamed_addr constant [5 x i8] c"area\00" -@OBJC_METH_VAR_TYPE_.371 = private unnamed_addr constant [4 x i8] c"i@:\00" -@OBJC_METH_VAR_NAME_.372 = private unnamed_addr constant [8 x i8] c"dealloc\00" -@OBJC_METH_VAR_TYPE_.373 = private unnamed_addr constant [4 x i8] c"v@:\00" -@OBJC_METH_VAR_NAME_.374 = private unnamed_addr constant [6 x i8] c"alloc\00" -@OBJC_METH_VAR_TYPE_.375 = private unnamed_addr constant [4 x i8] c"@@:\00" -@OBJC_CLASS_NAME_.376 = private unnamed_addr constant [6 x i8] c"SxBox\00" +@OBJC_METH_VAR_NAME_.824 = private unnamed_addr constant [10 x i8] c"setWidth:\00" +@OBJC_METH_VAR_TYPE_.825 = private unnamed_addr constant [5 x i8] c"v@:i\00" +@OBJC_METH_VAR_NAME_.826 = private unnamed_addr constant [7 x i8] c"height\00" +@OBJC_METH_VAR_TYPE_.827 = private unnamed_addr constant [4 x i8] c"i@:\00" +@OBJC_METH_VAR_NAME_.828 = private unnamed_addr constant [11 x i8] c"setHeight:\00" +@OBJC_METH_VAR_TYPE_.829 = private unnamed_addr constant [5 x i8] c"v@:i\00" +@OBJC_METH_VAR_NAME_.830 = private unnamed_addr constant [5 x i8] c"area\00" +@OBJC_METH_VAR_TYPE_.831 = private unnamed_addr constant [4 x i8] c"i@:\00" +@OBJC_METH_VAR_NAME_.832 = private unnamed_addr constant [8 x i8] c"dealloc\00" +@OBJC_METH_VAR_TYPE_.833 = private unnamed_addr constant [4 x i8] c"v@:\00" +@OBJC_METH_VAR_NAME_.834 = private unnamed_addr constant [6 x i8] c"alloc\00" +@OBJC_METH_VAR_TYPE_.835 = private unnamed_addr constant [4 x i8] c"@@:\00" +@OBJC_CLASS_NAME_.836 = private unnamed_addr constant [6 x i8] c"SxBox\00" @llvm.global_ctors = appending global [2 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__sx_objc_selector_init, ptr null }, { i32, ptr, ptr } { i32 65535, ptr @__sx_objc_class_init, ptr null }] ; Function Attrs: nounwind @@ -612,7 +930,7 @@ entry: br i1 %icmp, label %if.then.64, label %if.merge.65 if.then.64: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.162, i64 1 } if.merge.65: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -739,7 +1057,7 @@ if.else.87: ; preds = %entry br label %if.merge.88 if.merge.88: ; preds = %if.else.87, %if.then.86 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.86 ], [ { ptr @str.23, i64 5 }, %if.else.87 ] + %bp = phi { ptr, i64 } [ { ptr @str.163, i64 4 }, %if.then.86 ], [ { ptr @str.164, i64 5 }, %if.else.87 ] ret { ptr, i64 } %bp } @@ -908,38 +1226,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.253 + br label %while.hdr.406 -while.hdr.253: ; preds = %if.merge.258, %entry +while.hdr.406: ; preds = %if.merge.411, %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.254, label %while.exit.255 + br i1 %icmp, label %while.body.407, label %while.exit.408 -while.body.254: ; preds = %while.hdr.253 +while.body.407: ; preds = %while.hdr.406 %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.256, label %if.else.257 + br i1 %icmpN, label %if.then.409, label %if.else.410 -while.exit.255: ; preds = %while.hdr.253 +while.exit.408: ; preds = %while.hdr.406 ret void -if.then.256: ; preds = %while.body.254 +if.then.409: ; preds = %while.body.407 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.258 + br label %if.merge.411 -if.else.257: ; preds = %while.body.254 +if.else.410: ; preds = %while.body.407 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.258 + br label %if.merge.411 -if.merge.258: ; preds = %if.else.257, %if.then.256 - %bp = phi i64 [ %addN, %if.then.256 ], [ %addN, %if.else.257 ] +if.merge.411: ; preds = %if.else.410, %if.then.409 + %bp = phi i64 [ %addN, %if.then.409 ], [ %addN, %if.else.410 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -952,7 +1270,7 @@ if.merge.258: ; preds = %if.else.257, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.253 + br label %while.hdr.406 } ; Function Attrs: nounwind @@ -1070,12 +1388,12 @@ entry: 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.251, label %if.merge.252 + br i1 %icmp, label %if.then.404, label %if.merge.405 -if.then.251: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.404: ; preds = %entry + ret { ptr, i64 } { ptr @str.165, i64 1 } -if.merge.252: ; preds = %entry +if.merge.405: ; 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 @@ -1106,14 +1424,14 @@ if.merge.252: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.259 + br label %while.hdr.412 -while.hdr.259: ; preds = %if.merge.263, %if.merge.252 +while.hdr.412: ; preds = %if.merge.416, %if.merge.405 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.260, label %while.exit.261 + br i1 %icmpN, label %while.body.413, label %while.exit.414 -while.body.260: ; preds = %while.hdr.259 +while.body.413: ; preds = %while.hdr.412 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1121,9 +1439,9 @@ while.body.260: ; preds = %while.hdr.259 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.262, label %if.merge.263 + br i1 %icmpN, label %if.then.415, label %if.merge.416 -while.exit.261: ; preds = %if.then.262, %while.hdr.259 +while.exit.414: ; preds = %if.then.415, %while.hdr.412 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1131,14 +1449,14 @@ while.exit.261: ; preds = %if.then.262, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.262: ; preds = %while.body.260 - br label %while.exit.261 +if.then.415: ; preds = %while.body.413 + br label %while.exit.414 -if.merge.263: ; preds = %while.body.260 +if.merge.416: ; preds = %while.body.413 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.259 + br label %while.hdr.412 } ; Function Attrs: nounwind @@ -1216,12 +1534,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.166, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1255,16 +1575,44 @@ entry: i64 32, label %match.arm.51 i64 34, label %match.arm.51 i64 39, label %match.arm.51 - i64 41, label %match.arm.51 - i64 47, label %match.arm.51 - i64 49, label %match.arm.51 + i64 43, label %match.arm.51 + i64 45, label %match.arm.51 + i64 48, label %match.arm.51 + i64 52, label %match.arm.51 + i64 53, label %match.arm.51 + i64 55, label %match.arm.51 + i64 61, label %match.arm.51 + i64 66, label %match.arm.51 + i64 72, label %match.arm.51 + i64 76, label %match.arm.51 + i64 78, label %match.arm.51 + i64 79, label %match.arm.51 + i64 80, label %match.arm.51 + i64 82, label %match.arm.51 + i64 89, label %match.arm.51 + i64 93, label %match.arm.51 + i64 98, label %match.arm.51 + i64 100, label %match.arm.51 i64 37, label %match.arm.52 i64 38, label %match.arm.52 + i64 54, label %match.arm.52 + i64 70, label %match.arm.52 + i64 71, label %match.arm.52 + i64 51, label %match.arm.53 + i64 64, label %match.arm.53 + i64 75, label %match.arm.53 i64 35, label %match.arm.55 - i64 58, label %match.arm.55 - i64 60, label %match.arm.55 + i64 81, label %match.arm.55 + i64 87, label %match.arm.55 + i64 88, label %match.arm.55 + i64 92, label %match.arm.55 + i64 107, label %match.arm.55 + i64 109, label %match.arm.55 i64 36, label %match.arm.56 - i64 53, label %match.arm.56 + i64 60, label %match.arm.56 + i64 77, label %match.arm.56 + i64 85, label %match.arm.56 + i64 103, label %match.arm.56 i64 18, label %match.arm.57 i64 21, label %match.arm.57 i64 23, label %match.arm.57 @@ -1273,29 +1621,45 @@ entry: i64 29, label %match.arm.57 i64 31, label %match.arm.57 i64 33, label %match.arm.57 - i64 42, label %match.arm.57 + i64 40, label %match.arm.57 i64 44, label %match.arm.57 - i64 45, label %match.arm.57 - i64 46, label %match.arm.57 - i64 48, label %match.arm.57 + i64 47, label %match.arm.57 + i64 49, label %match.arm.57 i64 50, label %match.arm.57 - i64 51, label %match.arm.57 - i64 52, label %match.arm.57 - i64 54, label %match.arm.57 - i64 55, label %match.arm.57 i64 56, label %match.arm.57 i64 57, label %match.arm.57 + i64 58, label %match.arm.57 i64 59, label %match.arm.57 - i64 61, label %match.arm.57 + i64 62, label %match.arm.57 + i64 67, label %match.arm.57 + i64 74, label %match.arm.57 + i64 83, label %match.arm.57 + i64 86, label %match.arm.57 + i64 90, label %match.arm.57 + i64 94, label %match.arm.57 + i64 96, label %match.arm.57 + i64 97, label %match.arm.57 + i64 99, label %match.arm.57 + i64 101, label %match.arm.57 + i64 102, label %match.arm.57 + i64 104, label %match.arm.57 + i64 105, label %match.arm.57 + i64 106, label %match.arm.57 + i64 108, label %match.arm.57 + i64 110, label %match.arm.57 + i64 41, label %match.arm.58 + i64 42, label %match.arm.58 + i64 46, label %match.arm.58 + i64 91, label %match.arm.58 i64 13, label %match.arm.59 ] -match.merge.45: ; preds = %dispatch.merge.224, %dispatch.merge.210, %dispatch.merge.190, %dispatch.merge.182, %dispatch.merge.102, %float.merge.91, %if.merge.63, %match.unr.60, %match.arm.59, %match.arm.49, %match.arm.48, %match.arm.46 +match.merge.45: ; preds = %dispatch.merge.516, %dispatch.merge.365, %dispatch.merge.333, %dispatch.merge.289, %dispatch.merge.272, %dispatch.merge.102, %float.merge.91, %if.merge.63, %match.unr.60, %match.arm.59, %match.arm.53, %match.arm.49, %match.arm.48, %match.arm.46 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.46: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.167, i64 0 }, ptr %allocaN, align 8 br label %match.merge.45 match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1304,7 +1668,7 @@ match.arm.47: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [94 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [175 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.61, label %if.else.62 @@ -1332,7 +1696,7 @@ match.arm.50: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.89, label %fN.unbox.90 -match.arm.51: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.51: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1347,84 +1711,138 @@ match.arm.51: ; preds = %entry, %entry, %ent i64 32, label %dispatch.case.111 i64 34, label %dispatch.case.112 i64 39, label %dispatch.case.113 - i64 41, label %dispatch.case.114 - i64 47, label %dispatch.case.115 - i64 49, label %dispatch.case.116 + i64 43, label %dispatch.case.114 + i64 45, label %dispatch.case.115 + i64 48, label %dispatch.case.116 + i64 52, label %dispatch.case.117 + i64 53, label %dispatch.case.118 + i64 55, label %dispatch.case.119 + i64 61, label %dispatch.case.120 + i64 66, label %dispatch.case.121 + i64 72, label %dispatch.case.122 + i64 76, label %dispatch.case.123 + i64 78, label %dispatch.case.124 + i64 79, label %dispatch.case.125 + i64 80, label %dispatch.case.126 + i64 82, label %dispatch.case.127 + i64 89, label %dispatch.case.128 + i64 93, label %dispatch.case.129 + i64 98, label %dispatch.case.130 + i64 100, label %dispatch.case.131 ] -match.arm.52: ; preds = %entry, %entry +match.arm.52: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.183 [ - i64 37, label %dispatch.case.184 - i64 38, label %dispatch.case.185 + switch i64 %ua.raw20, label %dispatch.default.273 [ + i64 37, label %dispatch.case.274 + i64 38, label %dispatch.case.275 + i64 54, label %dispatch.case.276 + i64 70, label %dispatch.case.277 + i64 71, label %dispatch.case.278 ] -match.arm.53: ; No predecessors! - unreachable +match.arm.53: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.45 match.arm.54: ; No predecessors! unreachable -match.arm.55: ; preds = %entry, %entry, %entry +match.arm.55: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.191 [ - i64 35, label %dispatch.case.192 - i64 58, label %dispatch.case.193 - i64 60, label %dispatch.case.194 + switch i64 %ua.raw29, label %dispatch.default.290 [ + i64 35, label %dispatch.case.291 + i64 81, label %dispatch.case.292 + i64 87, label %dispatch.case.293 + i64 88, label %dispatch.case.294 + i64 92, label %dispatch.case.295 + i64 107, label %dispatch.case.296 + i64 109, label %dispatch.case.297 ] -match.arm.56: ; preds = %entry, %entry +match.arm.56: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.211 [ - i64 36, label %dispatch.case.212 - i64 53, label %dispatch.case.213 + switch i64 %ua.raw33, label %dispatch.default.334 [ + i64 36, label %dispatch.case.335 + i64 60, label %dispatch.case.336 + i64 77, label %dispatch.case.337 + i64 85, label %dispatch.case.338 + i64 103, label %dispatch.case.339 ] -match.arm.57: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.57: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw32 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw32, label %dispatch.default.225 [ - i64 18, label %dispatch.case.226 - i64 21, label %dispatch.case.227 - i64 23, label %dispatch.case.228 - i64 25, label %dispatch.case.229 - i64 28, label %dispatch.case.230 - i64 29, label %dispatch.case.231 - i64 31, label %dispatch.case.232 - i64 33, label %dispatch.case.233 - i64 42, label %dispatch.case.234 - i64 44, label %dispatch.case.235 - i64 45, label %dispatch.case.236 - i64 46, label %dispatch.case.237 - i64 48, label %dispatch.case.238 - i64 50, label %dispatch.case.239 - i64 51, label %dispatch.case.240 - i64 52, label %dispatch.case.241 - i64 54, label %dispatch.case.242 - i64 55, label %dispatch.case.243 - i64 56, label %dispatch.case.244 - i64 57, label %dispatch.case.245 - i64 59, label %dispatch.case.246 - i64 61, label %dispatch.case.247 + switch i64 %ua.raw37, label %dispatch.default.366 [ + i64 18, label %dispatch.case.367 + i64 21, label %dispatch.case.368 + i64 23, label %dispatch.case.369 + i64 25, label %dispatch.case.370 + i64 28, label %dispatch.case.371 + i64 29, label %dispatch.case.372 + i64 31, label %dispatch.case.373 + i64 33, label %dispatch.case.374 + i64 40, label %dispatch.case.375 + i64 44, label %dispatch.case.376 + i64 47, label %dispatch.case.377 + i64 49, label %dispatch.case.378 + i64 50, label %dispatch.case.379 + i64 56, label %dispatch.case.380 + i64 57, label %dispatch.case.381 + i64 58, label %dispatch.case.382 + i64 59, label %dispatch.case.383 + i64 62, label %dispatch.case.384 + i64 67, label %dispatch.case.385 + i64 74, label %dispatch.case.386 + i64 83, label %dispatch.case.387 + i64 86, label %dispatch.case.388 + i64 90, label %dispatch.case.389 + i64 94, label %dispatch.case.390 + i64 96, label %dispatch.case.391 + i64 97, label %dispatch.case.392 + i64 99, label %dispatch.case.393 + i64 101, label %dispatch.case.394 + i64 102, label %dispatch.case.395 + i64 104, label %dispatch.case.396 + i64 105, label %dispatch.case.397 + i64 106, label %dispatch.case.398 + i64 108, label %dispatch.case.399 + i64 110, label %dispatch.case.400 ] -match.arm.58: ; No predecessors! - unreachable +match.arm.58: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.517 [ + i64 41, label %dispatch.case.518 + i64 42, label %dispatch.case.519 + i64 46, label %dispatch.case.520 + i64 91, label %dispatch.case.521 + ] match.arm.59: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag36 = extractvalue { i64, i64 } %loadN, 0 - %refl.val37 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype38 = icmp eq i64 %refl.tag36, 13 - %refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36 - %tn.gep = getelementptr inbounds [94 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [175 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.45 @@ -1434,15 +1852,15 @@ match.unr.60: ; preds = %entry if.then.61: ; preds = %match.arm.47 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.63 if.else.62: ; preds = %match.arm.47 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw44 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.63 @@ -1450,16 +1868,16 @@ if.merge.63: ; preds = %if.else.62, %if.the br label %match.merge.45 f32.unbox.89: ; preds = %match.arm.50 - %ua.raw46 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw46 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.91 f64.unbox.90: ; preds = %match.arm.50 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw47 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.91 @@ -1469,360 +1887,681 @@ float.merge.91: ; preds = %fN.unbox.90, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.45 -dispatch.merge.102: ; preds = %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.default.103 +dispatch.merge.102: ; preds = %dispatch.case.131, %dispatch.case.130, %dispatch.case.129, %dispatch.case.128, %dispatch.case.127, %dispatch.case.126, %dispatch.case.125, %dispatch.case.124, %dispatch.case.123, %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.default.103 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.45 dispatch.default.103: ; preds = %match.arm.51 - store { ptr, i64 } { ptr @str.120, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.355, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.104: ; preds = %match.arm.51 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.105: ; preds = %match.arm.51 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load {}, ptr %ua.ptr56, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.106: ; preds = %match.arm.51 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.107: ; preds = %match.arm.51 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.108: ; preds = %match.arm.51 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, ptr, ptr }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load69) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.109: ; preds = %match.arm.51 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.110: ; preds = %match.arm.51 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.111: ; preds = %match.arm.51 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.112: ; preds = %match.arm.51 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.113: ; preds = %match.arm.51 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load {}, ptr %ua.ptr88, align 1 - %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load89) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.114: ; preds = %match.arm.51 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load {}, ptr %ua.ptr92, align 1 - %callN = call { ptr, i64 } @struct_to_string__NSString(ptr %0, {} %ua.load93) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.115: ; preds = %match.arm.51 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load {}, ptr %ua.ptr96, align 1 - %callN = call { ptr, i64 } @struct_to_string__SxBox(ptr %0, {} %ua.load97) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 dispatch.case.116: ; preds = %match.arm.51 - %ua.raw99 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr100 = inttoptr i64 %ua.raw99 to ptr - %ua.load101 = load { { ptr, ptr, ptr }, i32, i32, i32 }, ptr %ua.ptr100, align 8 - %callN = call { ptr, i64 } @struct_to_string____SxBoxState(ptr %0, { { ptr, ptr, ptr }, i32, i32, i32 } %ua.load101) + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.102 -dispatch.merge.182: ; preds = %dispatch.case.185, %dispatch.case.184, %dispatch.default.183 +dispatch.case.117: ; preds = %match.arm.51 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.118: ; preds = %match.arm.51 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.119: ; preds = %match.arm.51 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.120: ; preds = %match.arm.51 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.121: ; preds = %match.arm.51 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.122: ; preds = %match.arm.51 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.123: ; preds = %match.arm.51 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.124: ; preds = %match.arm.51 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.125: ; preds = %match.arm.51 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.126: ; preds = %match.arm.51 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.127: ; preds = %match.arm.51 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.128: ; preds = %match.arm.51 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.129: ; preds = %match.arm.51 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load {}, ptr %ua.ptr161, align 1 + %callN = call { ptr, i64 } @struct_to_string__NSString(ptr %0, {} %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.130: ; preds = %match.arm.51 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load {}, ptr %ua.ptr165, align 1 + %callN = call { ptr, i64 } @struct_to_string__SxBox(ptr %0, {} %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.case.131: ; preds = %match.arm.51 + %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr169 = inttoptr i64 %ua.raw168 to ptr + %ua.load170 = load { { ptr, ptr, ptr }, i32, i32, i32 }, ptr %ua.ptr169, align 8 + %callN = call { ptr, i64 } @struct_to_string____SxBoxState(ptr %0, { { ptr, ptr, ptr }, i32, i32, i32 } %ua.load170) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.102 + +dispatch.merge.272: ; preds = %dispatch.case.278, %dispatch.case.277, %dispatch.case.276, %dispatch.case.275, %dispatch.case.274, %dispatch.default.273 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.45 -dispatch.default.183: ; preds = %match.arm.52 - store { ptr, i64 } { ptr @str.121, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.182 +dispatch.default.273: ; preds = %match.arm.52 + store { ptr, i64 } { ptr @str.356, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.272 -dispatch.case.184: ; preds = %match.arm.52 - %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw104) +dispatch.case.274: ; preds = %match.arm.52 + %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw173) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.182 + br label %dispatch.merge.272 -dispatch.case.185: ; preds = %match.arm.52 - %ua.raw106 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw106) +dispatch.case.275: ; preds = %match.arm.52 + %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw175) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.182 + br label %dispatch.merge.272 -dispatch.merge.190: ; preds = %dispatch.case.194, %dispatch.case.193, %dispatch.case.192, %dispatch.default.191 +dispatch.case.276: ; preds = %match.arm.52 + %ua.raw177 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr178 = inttoptr i64 %ua.raw177 to ptr + %ua.load179 = load { i64, [24 x i8] }, ptr %ua.ptr178, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load179) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.272 + +dispatch.case.277: ; preds = %match.arm.52 + %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw181) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.272 + +dispatch.case.278: ; preds = %match.arm.52 + %ua.raw183 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw183) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.272 + +dispatch.merge.289: ; preds = %dispatch.case.297, %dispatch.case.296, %dispatch.case.295, %dispatch.case.294, %dispatch.case.293, %dispatch.case.292, %dispatch.case.291, %dispatch.default.290 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.45 -dispatch.default.191: ; preds = %match.arm.55 - store { ptr, i64 } { ptr @str.122, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.190 +dispatch.default.290: ; preds = %match.arm.55 + store { ptr, i64 } { ptr @str.357, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.289 -dispatch.case.192: ; preds = %match.arm.55 - %ua.raw109 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr110 = inttoptr i64 %ua.raw109 to ptr - %ua.load111 = load [4 x i64], ptr %ua.ptr110, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load111) +dispatch.case.291: ; preds = %match.arm.55 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [4 x i64], ptr %ua.ptr187, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load188) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.289 -dispatch.case.193: ; preds = %match.arm.55 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr114 = inttoptr i64 %ua.raw113 to ptr - %ua.load115 = load [1 x { i64, i64 }], ptr %ua.ptr114, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load115) +dispatch.case.292: ; preds = %match.arm.55 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load192) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.289 -dispatch.case.194: ; preds = %match.arm.55 - %ua.raw117 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr118 = inttoptr i64 %ua.raw117 to ptr - %ua.load119 = load [3 x { i64, i64 }], ptr %ua.ptr118, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load119) +dispatch.case.293: ; preds = %match.arm.55 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [8 x i64], ptr %ua.ptr195, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load196) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.190 + br label %dispatch.merge.289 -dispatch.merge.210: ; preds = %dispatch.case.213, %dispatch.case.212, %dispatch.default.211 +dispatch.case.294: ; preds = %match.arm.55 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [64 x i8], ptr %ua.ptr199, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.289 + +dispatch.case.295: ; preds = %match.arm.55 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [64 x i64], ptr %ua.ptr203, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load204) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.289 + +dispatch.case.296: ; preds = %match.arm.55 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [1 x { i64, i64 }], ptr %ua.ptr207, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load208) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.289 + +dispatch.case.297: ; preds = %match.arm.55 + %ua.raw210 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr211 = inttoptr i64 %ua.raw210 to ptr + %ua.load212 = load [3 x { i64, i64 }], ptr %ua.ptr211, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load212) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.289 + +dispatch.merge.333: ; preds = %dispatch.case.339, %dispatch.case.338, %dispatch.case.337, %dispatch.case.336, %dispatch.case.335, %dispatch.default.334 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.45 -dispatch.default.211: ; preds = %match.arm.56 - store { ptr, i64 } { ptr @str.123, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.210 +dispatch.default.334: ; preds = %match.arm.56 + store { ptr, i64 } { ptr @str.358, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.333 -dispatch.case.212: ; preds = %match.arm.56 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr123 = inttoptr i64 %ua.raw122 to ptr - %ua.load124 = load { ptr, i64 }, ptr %ua.ptr123, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load124) +dispatch.case.335: ; preds = %match.arm.56 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load217) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.333 -dispatch.case.213: ; preds = %match.arm.56 - %ua.raw126 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr127 = inttoptr i64 %ua.raw126 to ptr - %ua.load128 = load { ptr, i64 }, ptr %ua.ptr127, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load128) +dispatch.case.336: ; preds = %match.arm.56 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load221) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.333 -dispatch.merge.224: ; preds = %dispatch.case.247, %dispatch.case.246, %dispatch.case.245, %dispatch.case.244, %dispatch.case.243, %dispatch.case.242, %dispatch.case.241, %dispatch.case.240, %dispatch.case.239, %dispatch.case.238, %dispatch.case.237, %dispatch.case.236, %dispatch.case.235, %dispatch.case.234, %dispatch.case.233, %dispatch.case.232, %dispatch.case.231, %dispatch.case.230, %dispatch.case.229, %dispatch.case.228, %dispatch.case.227, %dispatch.case.226, %dispatch.default.225 +dispatch.case.337: ; preds = %match.arm.56 + %ua.raw223 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr224 = inttoptr i64 %ua.raw223 to ptr + %ua.load225 = load { ptr, i64 }, ptr %ua.ptr224, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load225) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.338: ; preds = %match.arm.56 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.case.339: ; preds = %match.arm.56 + %ua.raw231 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr232 = inttoptr i64 %ua.raw231 to ptr + %ua.load233 = load { ptr, i64 }, ptr %ua.ptr232, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load233) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.333 + +dispatch.merge.365: ; preds = %dispatch.case.400, %dispatch.case.399, %dispatch.case.398, %dispatch.case.397, %dispatch.case.396, %dispatch.case.395, %dispatch.case.394, %dispatch.case.393, %dispatch.case.392, %dispatch.case.391, %dispatch.case.390, %dispatch.case.389, %dispatch.case.388, %dispatch.case.387, %dispatch.case.386, %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.default.366 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.45 -dispatch.default.225: ; preds = %match.arm.57 - store { ptr, i64 } { ptr @str.124, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.224 +dispatch.default.366: ; preds = %match.arm.57 + store { ptr, i64 } { ptr @str.359, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.365 -dispatch.case.226: ; preds = %match.arm.57 - %ua.raw131 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw131 to ptr +dispatch.case.367: ; preds = %match.arm.57 + %ua.raw236 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw236 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.227: ; preds = %match.arm.57 - %ua.raw133 = extractvalue { i64, i64 } %loadN, 1 - %iNp134 = inttoptr i64 %ua.raw133 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp134) +dispatch.case.368: ; preds = %match.arm.57 + %ua.raw238 = extractvalue { i64, i64 } %loadN, 1 + %iNp239 = inttoptr i64 %ua.raw238 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp239) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.228: ; preds = %match.arm.57 - %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 - %iNp137 = inttoptr i64 %ua.raw136 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp137) +dispatch.case.369: ; preds = %match.arm.57 + %ua.raw241 = extractvalue { i64, i64 } %loadN, 1 + %iNp242 = inttoptr i64 %ua.raw241 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp242) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.229: ; preds = %match.arm.57 - %ua.raw139 = extractvalue { i64, i64 } %loadN, 1 - %iNp140 = inttoptr i64 %ua.raw139 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp140) +dispatch.case.370: ; preds = %match.arm.57 + %ua.raw244 = extractvalue { i64, i64 } %loadN, 1 + %iNp245 = inttoptr i64 %ua.raw244 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp245) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.230: ; preds = %match.arm.57 - %ua.raw142 = extractvalue { i64, i64 } %loadN, 1 - %iNp143 = inttoptr i64 %ua.raw142 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp143) +dispatch.case.371: ; preds = %match.arm.57 + %ua.raw247 = extractvalue { i64, i64 } %loadN, 1 + %iNp248 = inttoptr i64 %ua.raw247 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp248) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.231: ; preds = %match.arm.57 - %ua.raw145 = extractvalue { i64, i64 } %loadN, 1 - %iNp146 = inttoptr i64 %ua.raw145 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp146) +dispatch.case.372: ; preds = %match.arm.57 + %ua.raw250 = extractvalue { i64, i64 } %loadN, 1 + %iNp251 = inttoptr i64 %ua.raw250 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp251) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.232: ; preds = %match.arm.57 - %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 - %iNp149 = inttoptr i64 %ua.raw148 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp149) +dispatch.case.373: ; preds = %match.arm.57 + %ua.raw253 = extractvalue { i64, i64 } %loadN, 1 + %iNp254 = inttoptr i64 %ua.raw253 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp254) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.233: ; preds = %match.arm.57 - %ua.raw151 = extractvalue { i64, i64 } %loadN, 1 - %iNp152 = inttoptr i64 %ua.raw151 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp152) +dispatch.case.374: ; preds = %match.arm.57 + %ua.raw256 = extractvalue { i64, i64 } %loadN, 1 + %iNp257 = inttoptr i64 %ua.raw256 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp257) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.234: ; preds = %match.arm.57 - %ua.raw154 = extractvalue { i64, i64 } %loadN, 1 - %iNp155 = inttoptr i64 %ua.raw154 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %iNp155) +dispatch.case.375: ; preds = %match.arm.57 + %ua.raw259 = extractvalue { i64, i64 } %loadN, 1 + %iNp260 = inttoptr i64 %ua.raw259 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp260) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.235: ; preds = %match.arm.57 - %ua.raw157 = extractvalue { i64, i64 } %loadN, 1 - %iNp158 = inttoptr i64 %ua.raw157 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp158) +dispatch.case.376: ; preds = %match.arm.57 + %ua.raw262 = extractvalue { i64, i64 } %loadN, 1 + %iNp263 = inttoptr i64 %ua.raw262 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp263) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.236: ; preds = %match.arm.57 - %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 - %iNp161 = inttoptr i64 %ua.raw160 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp161) +dispatch.case.377: ; preds = %match.arm.57 + %ua.raw265 = extractvalue { i64, i64 } %loadN, 1 + %iNp266 = inttoptr i64 %ua.raw265 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp266) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.237: ; preds = %match.arm.57 - %ua.raw163 = extractvalue { i64, i64 } %loadN, 1 - %iNp164 = inttoptr i64 %ua.raw163 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp164) +dispatch.case.378: ; preds = %match.arm.57 + %ua.raw268 = extractvalue { i64, i64 } %loadN, 1 + %iNp269 = inttoptr i64 %ua.raw268 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp269) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.238: ; preds = %match.arm.57 - %ua.raw166 = extractvalue { i64, i64 } %loadN, 1 - %iNp167 = inttoptr i64 %ua.raw166 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SxBox(ptr %0, ptr %iNp167) +dispatch.case.379: ; preds = %match.arm.57 + %ua.raw271 = extractvalue { i64, i64 } %loadN, 1 + %iNp272 = inttoptr i64 %ua.raw271 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp272) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.239: ; preds = %match.arm.57 - %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 - %iNp170 = inttoptr i64 %ua.raw169 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_SxBox(ptr %0, ptr %iNp170) +dispatch.case.380: ; preds = %match.arm.57 + %ua.raw274 = extractvalue { i64, i64 } %loadN, 1 + %iNp275 = inttoptr i64 %ua.raw274 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp275) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.240: ; preds = %match.arm.57 - %ua.raw172 = extractvalue { i64, i64 } %loadN, 1 - %iNp173 = inttoptr i64 %ua.raw172 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp173) +dispatch.case.381: ; preds = %match.arm.57 + %ua.raw277 = extractvalue { i64, i64 } %loadN, 1 + %iNp278 = inttoptr i64 %ua.raw277 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp278) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.241: ; preds = %match.arm.57 - %ua.raw175 = extractvalue { i64, i64 } %loadN, 1 - %iNp176 = inttoptr i64 %ua.raw175 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp176) +dispatch.case.382: ; preds = %match.arm.57 + %ua.raw280 = extractvalue { i64, i64 } %loadN, 1 + %iNp281 = inttoptr i64 %ua.raw280 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp281) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.242: ; preds = %match.arm.57 - %ua.raw178 = extractvalue { i64, i64 } %loadN, 1 - %iNp179 = inttoptr i64 %ua.raw178 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp179) +dispatch.case.383: ; preds = %match.arm.57 + %ua.raw283 = extractvalue { i64, i64 } %loadN, 1 + %iNp284 = inttoptr i64 %ua.raw283 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp284) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.243: ; preds = %match.arm.57 - %ua.raw181 = extractvalue { i64, i64 } %loadN, 1 - %iNp182 = inttoptr i64 %ua.raw181 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp182) +dispatch.case.384: ; preds = %match.arm.57 + %ua.raw286 = extractvalue { i64, i64 } %loadN, 1 + %iNp287 = inttoptr i64 %ua.raw286 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp287) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.244: ; preds = %match.arm.57 - %ua.raw184 = extractvalue { i64, i64 } %loadN, 1 - %iNp185 = inttoptr i64 %ua.raw184 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp185) +dispatch.case.385: ; preds = %match.arm.57 + %ua.raw289 = extractvalue { i64, i64 } %loadN, 1 + %iNp290 = inttoptr i64 %ua.raw289 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp290) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.245: ; preds = %match.arm.57 - %ua.raw187 = extractvalue { i64, i64 } %loadN, 1 - %iNp188 = inttoptr i64 %ua.raw187 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp188) +dispatch.case.386: ; preds = %match.arm.57 + %ua.raw292 = extractvalue { i64, i64 } %loadN, 1 + %iNp293 = inttoptr i64 %ua.raw292 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp293) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.246: ; preds = %match.arm.57 - %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 - %iNp191 = inttoptr i64 %ua.raw190 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp191) +dispatch.case.387: ; preds = %match.arm.57 + %ua.raw295 = extractvalue { i64, i64 } %loadN, 1 + %iNp296 = inttoptr i64 %ua.raw295 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp296) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 -dispatch.case.247: ; preds = %match.arm.57 - %ua.raw193 = extractvalue { i64, i64 } %loadN, 1 - %iNp194 = inttoptr i64 %ua.raw193 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp194) +dispatch.case.388: ; preds = %match.arm.57 + %ua.raw298 = extractvalue { i64, i64 } %loadN, 1 + %iNp299 = inttoptr i64 %ua.raw298 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp299) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.224 + br label %dispatch.merge.365 + +dispatch.case.389: ; preds = %match.arm.57 + %ua.raw301 = extractvalue { i64, i64 } %loadN, 1 + %iNp302 = inttoptr i64 %ua.raw301 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp302) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.390: ; preds = %match.arm.57 + %ua.raw304 = extractvalue { i64, i64 } %loadN, 1 + %iNp305 = inttoptr i64 %ua.raw304 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %iNp305) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.391: ; preds = %match.arm.57 + %ua.raw307 = extractvalue { i64, i64 } %loadN, 1 + %iNp308 = inttoptr i64 %ua.raw307 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp308) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.392: ; preds = %match.arm.57 + %ua.raw310 = extractvalue { i64, i64 } %loadN, 1 + %iNp311 = inttoptr i64 %ua.raw310 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp311) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.393: ; preds = %match.arm.57 + %ua.raw313 = extractvalue { i64, i64 } %loadN, 1 + %iNp314 = inttoptr i64 %ua.raw313 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SxBox(ptr %0, ptr %iNp314) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.394: ; preds = %match.arm.57 + %ua.raw316 = extractvalue { i64, i64 } %loadN, 1 + %iNp317 = inttoptr i64 %ua.raw316 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_SxBox(ptr %0, ptr %iNp317) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.395: ; preds = %match.arm.57 + %ua.raw319 = extractvalue { i64, i64 } %loadN, 1 + %iNp320 = inttoptr i64 %ua.raw319 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp320) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.396: ; preds = %match.arm.57 + %ua.raw322 = extractvalue { i64, i64 } %loadN, 1 + %iNp323 = inttoptr i64 %ua.raw322 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp323) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.397: ; preds = %match.arm.57 + %ua.raw325 = extractvalue { i64, i64 } %loadN, 1 + %iNp326 = inttoptr i64 %ua.raw325 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp326) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.398: ; preds = %match.arm.57 + %ua.raw328 = extractvalue { i64, i64 } %loadN, 1 + %iNp329 = inttoptr i64 %ua.raw328 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp329) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.399: ; preds = %match.arm.57 + %ua.raw331 = extractvalue { i64, i64 } %loadN, 1 + %iNp332 = inttoptr i64 %ua.raw331 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp332) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.case.400: ; preds = %match.arm.57 + %ua.raw334 = extractvalue { i64, i64 } %loadN, 1 + %iNp335 = inttoptr i64 %ua.raw334 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp335) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.365 + +dispatch.merge.516: ; preds = %dispatch.case.521, %dispatch.case.520, %dispatch.case.519, %dispatch.case.518, %dispatch.default.517 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.45 + +dispatch.default.517: ; preds = %match.arm.58 + store { ptr, i64 } { ptr @str.360, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.516 + +dispatch.case.518: ; preds = %match.arm.58 + %ua.raw338 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr339 = inttoptr i64 %ua.raw338 to ptr + %ua.load340 = load { { i32 }, i1 }, ptr %ua.ptr339, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load340) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.516 + +dispatch.case.519: ; preds = %match.arm.58 + %ua.raw342 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr343 = inttoptr i64 %ua.raw342 to ptr + %ua.load344 = load { { ptr, i64 }, i1 }, ptr %ua.ptr343, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load344) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.516 + +dispatch.case.520: ; preds = %match.arm.58 + %ua.raw346 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr347 = inttoptr i64 %ua.raw346 to ptr + %ua.load348 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr347, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load348) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.516 + +dispatch.case.521: ; preds = %match.arm.58 + %ua.raw350 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr351 = inttoptr i64 %ua.raw350 to ptr + %ua.load352 = load { [64 x i8], i1 }, ptr %ua.ptr351, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load352) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.516 } ; Function Attrs: nounwind @@ -1831,7 +2570,7 @@ 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.125, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.361, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1927,7 +2666,7 @@ if.merge.15: ; preds = %if.merge.29, %if.me if.then.16: ; preds = %if.then.13 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.362, 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 @@ -1935,7 +2674,7 @@ if.then.16: ; preds = %if.then.13 %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.127, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.363, 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 @@ -1945,13 +2684,13 @@ if.then.16: ; preds = %if.then.13 %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.128, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.364, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.17 if.merge.17: ; preds = %if.then.16, %if.then.13 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.365, 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 @@ -1959,7 +2698,7 @@ if.merge.17: ; preds = %if.then.16, %if.the %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.130, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1973,7 +2712,7 @@ if.merge.17: ; preds = %if.then.16, %if.the if.then.27: ; preds = %if.else.14 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, 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 @@ -1981,7 +2720,7 @@ if.then.27: ; preds = %if.else.14 %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.132, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.368, 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 @@ -1992,7 +2731,7 @@ if.then.27: ; preds = %if.else.14 %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.133, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.369, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2049,7 +2788,7 @@ if.merge.35: ; preds = %if.merge.38, %if.el if.then.36: ; preds = %if.then.33 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.370, 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 @@ -2057,7 +2796,7 @@ if.then.36: ; preds = %if.then.33 %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.135, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.371, 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 @@ -2068,7 +2807,7 @@ if.then.36: ; preds = %if.then.33 %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.136, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.372, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2088,7 +2827,7 @@ if.merge.38: ; preds = %if.else.37, %if.the if.then.39: ; preds = %while.exit.6 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.373, 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 @@ -2096,7 +2835,7 @@ if.then.39: ; preds = %while.exit.6 %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.138, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.374, 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 @@ -2107,7 +2846,7 @@ if.then.39: ; preds = %while.exit.6 %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.139, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.375, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.40 @@ -2184,6 +2923,414 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -2295,6 +3442,336 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 ; Function Attrs: nounwind declare i64 @build_options() #0 +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + ; Function Attrs: nounwind declare ptr @objc_getClass(ptr) #0 @@ -2426,9 +3903,9 @@ if.then.41: ; preds = %if.merge.3 ret i32 1 if.merge.42: ; preds = %if.merge.3 - %callN = call ptr @objc_getClass(ptr @str.140) + %callN = call ptr @objc_getClass(ptr @str.376) store ptr %callN, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.141) + %callN = call ptr @sel_registerName(ptr @str.377) store ptr %callN, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8 @@ -2468,14 +3945,14 @@ entry: define internal void @print__ct_s8b0209b1c8e86f29__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.142, i64 30 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.378, i64 30 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.379, i64 0 }, ptr %allocaN, align 8 %load = 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 30) @@ -2491,7 +3968,7 @@ entry: ; 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.144, i64 30 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.380, i64 30 }) ret { ptr, i64 } %call } @@ -2499,7 +3976,7 @@ entry: define internal void @print__ct_s39d1c95f7ad02cfe__pack_s32(ptr %0, i32 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.145, i64 30 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.381, i64 30 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2515,7 +3992,7 @@ entry: %gepN = getelementptr inbounds { 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.146, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.382, 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 27) @@ -2543,7 +4020,7 @@ entry: ; 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.147, i64 30 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.383, i64 30 }) ret { ptr, i64 } %call } @@ -2551,14 +4028,14 @@ entry: define internal void @print__ct_sa76620ef481aaa22__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.148, i64 51 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.384, i64 51 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.149, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.385, i64 0 }, ptr %allocaN, align 8 %load = 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 51) @@ -2574,7 +4051,7 @@ entry: ; 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.150, i64 51 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.386, i64 51 }) ret { ptr, i64 } %call } @@ -2582,7 +4059,7 @@ entry: define internal void @print__ct_se44eb1a972327e7d__pack_s32_s32_s32(ptr %0, i32 %1, i32 %2, i32 %3) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.151, i64 28 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.387, i64 28 }, ptr %alloca, align 8 %allocaN = alloca i32, align 4 store i32 %1, ptr %allocaN, align 4 %allocaN = alloca i32, align 4 @@ -2612,7 +4089,7 @@ entry: %gepN = getelementptr inbounds { 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.152, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.388, 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 12) @@ -2664,7 +4141,7 @@ entry: ; 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.153, i64 28 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.389, i64 28 }) ret { ptr, i64 } %call } @@ -2675,35 +4152,35 @@ entry: %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.154, i64 15 }, { ptr, i64 } { ptr @str.155, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.390, i64 15 }, { ptr, i64 } { ptr @str.391, 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.117 + br label %while.hdr.132 -while.hdr.117: ; preds = %fv.merge, %entry +while.hdr.132: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.118, label %while.exit.119 + br i1 %icmp, label %while.body.133, label %while.exit.134 -while.body.118: ; preds = %while.hdr.117 +while.body.133: ; preds = %while.hdr.132 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.120, label %if.merge.121 + br i1 %icmpN, label %if.then.135, label %if.merge.136 -while.exit.119: ; preds = %while.hdr.117 +while.exit.134: ; preds = %while.hdr.132 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.156, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.392, i64 1 }) ret { ptr, i64 } %callN -if.then.120: ; preds = %while.body.118 +if.then.135: ; preds = %while.body.133 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.157, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.393, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.121 + br label %if.merge.136 -if.merge.121: ; preds = %if.then.120, %while.body.118 +if.merge.136: ; preds = %if.then.135, %while.body.133 %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 @@ -2711,7 +4188,7 @@ if.merge.121: ; preds = %if.then.120, %while %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.161, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.397, 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 @@ -2731,31 +4208,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.117 + br label %while.hdr.132 -fv.default: ; preds = %if.merge.121 +fv.default: ; preds = %if.merge.136 br label %fv.merge -fv.case: ; preds = %if.merge.121 +fv.case: ; preds = %if.merge.136 %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.121 +fv.case17: ; preds = %if.merge.136 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.121 +fv.case20: ; preds = %if.merge.136 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.121 +fv.case24: ; preds = %if.merge.136 %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 @@ -2768,43 +4245,43 @@ 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.162, i64 10 }, { ptr, i64 } { ptr @str.163, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.398, i64 10 }, { ptr, i64 } { ptr @str.399, 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.122 + br label %while.hdr.137 -while.hdr.122: ; preds = %if.merge.126, %entry +while.hdr.137: ; preds = %if.merge.141, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.123, label %while.exit.124 + br i1 %icmp, label %while.body.138, label %while.exit.139 -while.body.123: ; preds = %while.hdr.122 +while.body.138: ; preds = %while.hdr.137 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.125, label %if.merge.126 + br i1 %icmpN, label %if.then.140, label %if.merge.141 -while.exit.124: ; preds = %while.hdr.122 +while.exit.139: ; preds = %while.hdr.137 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.400, i64 1 }) ret { ptr, i64 } %callN -if.then.125: ; preds = %while.body.123 +if.then.140: ; preds = %while.body.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.401, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.126 + br label %if.merge.141 -if.merge.126: ; preds = %if.then.125, %while.body.123 +if.merge.141: ; preds = %if.then.140, %while.body.138 %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.166, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.402, 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.167, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.403, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2815,7 +4292,7 @@ if.merge.126: ; preds = %if.then.125, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.122 + br label %while.hdr.137 } ; Function Attrs: nounwind @@ -2823,43 +4300,43 @@ 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.168, i64 3 }, { ptr, i64 } { ptr @str.169, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.404, i64 3 }, { ptr, i64 } { ptr @str.405, 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.127 + br label %while.hdr.142 -while.hdr.127: ; preds = %fv.merge, %entry +while.hdr.142: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.128, label %while.exit.129 + br i1 %icmp, label %while.body.143, label %while.exit.144 -while.body.128: ; preds = %while.hdr.127 +while.body.143: ; preds = %while.hdr.142 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.130, label %if.merge.131 + br i1 %icmpN, label %if.then.145, label %if.merge.146 -while.exit.129: ; preds = %while.hdr.127 +while.exit.144: ; preds = %while.hdr.142 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.406, i64 1 }) ret { ptr, i64 } %callN -if.then.130: ; preds = %while.body.128 +if.then.145: ; preds = %while.body.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.407, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.131 + br label %if.merge.146 -if.merge.131: ; preds = %if.then.130, %while.body.128 +if.merge.146: ; preds = %if.then.145, %while.body.143 %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.173, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.409, 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.174, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.410, 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 @@ -2876,12 +4353,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.127 + br label %while.hdr.142 -fv.default: ; preds = %if.merge.131 +fv.default: ; preds = %if.merge.146 br label %fv.merge -fv.case: ; preds = %if.merge.131 +fv.case: ; preds = %if.merge.146 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2892,43 +4369,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.175, i64 10 }, { ptr, i64 } { ptr @str.176, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.411, i64 10 }, { ptr, i64 } { ptr @str.412, 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.132 + br label %while.hdr.147 -while.hdr.132: ; preds = %fv.merge, %entry +while.hdr.147: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.133, label %while.exit.134 + br i1 %icmp, label %while.body.148, label %while.exit.149 -while.body.133: ; preds = %while.hdr.132 +while.body.148: ; preds = %while.hdr.147 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.135, label %if.merge.136 + br i1 %icmpN, label %if.then.150, label %if.merge.151 -while.exit.134: ; preds = %while.hdr.132 +while.exit.149: ; preds = %while.hdr.147 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.177, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.413, i64 1 }) ret { ptr, i64 } %callN -if.then.135: ; preds = %while.body.133 +if.then.150: ; preds = %while.body.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.178, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.414, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.136 + br label %if.merge.151 -if.merge.136: ; preds = %if.then.135, %while.body.133 +if.merge.151: ; preds = %if.then.150, %while.body.148 %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.181, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.417, 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.182, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.418, 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 @@ -2946,18 +4423,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.132 + br label %while.hdr.147 -fv.default: ; preds = %if.merge.136 +fv.default: ; preds = %if.merge.151 br label %fv.merge -fv.case: ; preds = %if.merge.136 +fv.case: ; preds = %if.merge.151 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.136 +fv.case17: ; preds = %if.merge.151 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2968,43 +4445,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.183, i64 9 }, { ptr, i64 } { ptr @str.184, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.419, i64 9 }, { ptr, i64 } { ptr @str.420, 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.137 + br label %while.hdr.152 -while.hdr.137: ; preds = %fv.merge, %entry +while.hdr.152: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.138, label %while.exit.139 + br i1 %icmp, label %while.body.153, label %while.exit.154 -while.body.138: ; preds = %while.hdr.137 +while.body.153: ; preds = %while.hdr.152 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.140, label %if.merge.141 + br i1 %icmpN, label %if.then.155, label %if.merge.156 -while.exit.139: ; preds = %while.hdr.137 +while.exit.154: ; preds = %while.hdr.152 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.185, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.421, i64 1 }) ret { ptr, i64 } %callN -if.then.140: ; preds = %while.body.138 +if.then.155: ; preds = %while.body.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.186, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.422, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.141 + br label %if.merge.156 -if.merge.141: ; preds = %if.then.140, %while.body.138 +if.merge.156: ; preds = %if.then.155, %while.body.153 %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.190, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.426, 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.191, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.427, 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 @@ -3023,24 +4500,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.137 + br label %while.hdr.152 -fv.default: ; preds = %if.merge.141 +fv.default: ; preds = %if.merge.156 br label %fv.merge -fv.case: ; preds = %if.merge.141 +fv.case: ; preds = %if.merge.156 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.141 +fv.case17: ; preds = %if.merge.156 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.141 +fv.case21: ; preds = %if.merge.156 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -3053,43 +4530,43 @@ 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.192, i64 5 }, { ptr, i64 } { ptr @str.193, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.428, i64 5 }, { ptr, i64 } { ptr @str.429, 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.142 + br label %while.hdr.157 -while.hdr.142: ; preds = %fv.merge, %entry +while.hdr.157: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.143, label %while.exit.144 + br i1 %icmp, label %while.body.158, label %while.exit.159 -while.body.143: ; preds = %while.hdr.142 +while.body.158: ; preds = %while.hdr.157 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.145, label %if.merge.146 + br i1 %icmpN, label %if.then.160, label %if.merge.161 -while.exit.144: ; preds = %while.hdr.142 +while.exit.159: ; preds = %while.hdr.157 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.194, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.430, i64 1 }) ret { ptr, i64 } %callN -if.then.145: ; preds = %while.body.143 +if.then.160: ; preds = %while.body.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.195, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.431, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.146 + br label %if.merge.161 -if.merge.146: ; preds = %if.then.145, %while.body.143 +if.merge.161: ; preds = %if.then.160, %while.body.158 %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.199, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.435, 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.200, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.436, 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 @@ -3108,23 +4585,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.142 + br label %while.hdr.157 -fv.default: ; preds = %if.merge.146 +fv.default: ; preds = %if.merge.161 br label %fv.merge -fv.case: ; preds = %if.merge.146 +fv.case: ; preds = %if.merge.161 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.146 +fv.case17: ; preds = %if.merge.161 %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.146 +fv.case20: ; preds = %if.merge.161 %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 @@ -3137,43 +4614,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.201, i64 8 }, { ptr, i64 } { ptr @str.202, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.437, i64 8 }, { ptr, i64 } { ptr @str.438, 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.147 + br label %while.hdr.162 -while.hdr.147: ; preds = %fv.merge, %entry +while.hdr.162: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.148, label %while.exit.149 + br i1 %icmp, label %while.body.163, label %while.exit.164 -while.body.148: ; preds = %while.hdr.147 +while.body.163: ; preds = %while.hdr.162 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.150, label %if.merge.151 + br i1 %icmpN, label %if.then.165, label %if.merge.166 -while.exit.149: ; preds = %while.hdr.147 +while.exit.164: ; preds = %while.hdr.162 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.203, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.439, i64 1 }) ret { ptr, i64 } %callN -if.then.150: ; preds = %while.body.148 +if.then.165: ; preds = %while.body.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.204, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.440, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.151 + br label %if.merge.166 -if.merge.151: ; preds = %if.then.150, %while.body.148 +if.merge.166: ; preds = %if.then.165, %while.body.163 %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.208, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.444, 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.209, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.445, 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 @@ -3192,23 +4669,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.147 + br label %while.hdr.162 -fv.default: ; preds = %if.merge.151 +fv.default: ; preds = %if.merge.166 br label %fv.merge -fv.case: ; preds = %if.merge.151 +fv.case: ; preds = %if.merge.166 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.151 +fv.case17: ; preds = %if.merge.166 %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.151 +fv.case20: ; preds = %if.merge.166 %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 @@ -3220,43 +4697,43 @@ 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.210, i64 17 }, { ptr, i64 } { ptr @str.211, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.446, i64 17 }, { ptr, i64 } { ptr @str.447, 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.152 + br label %while.hdr.167 -while.hdr.152: ; preds = %fv.merge, %entry +while.hdr.167: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.153, label %while.exit.154 + br i1 %icmp, label %while.body.168, label %while.exit.169 -while.body.153: ; preds = %while.hdr.152 +while.body.168: ; preds = %while.hdr.167 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.155, label %if.merge.156 + br i1 %icmpN, label %if.then.170, label %if.merge.171 -while.exit.154: ; preds = %while.hdr.152 +while.exit.169: ; preds = %while.hdr.167 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.212, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.448, i64 1 }) ret { ptr, i64 } %callN -if.then.155: ; preds = %while.body.153 +if.then.170: ; preds = %while.body.168 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.213, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.449, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.156 + br label %if.merge.171 -if.merge.156: ; preds = %if.then.155, %while.body.153 +if.merge.171: ; preds = %if.then.170, %while.body.168 %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.218, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.454, 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.219, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.455, 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 @@ -3276,29 +4753,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.152 + br label %while.hdr.167 -fv.default: ; preds = %if.merge.156 +fv.default: ; preds = %if.merge.171 br label %fv.merge -fv.case: ; preds = %if.merge.156 +fv.case: ; preds = %if.merge.171 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.156 +fv.case17: ; preds = %if.merge.171 %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.156 +fv.case20: ; preds = %if.merge.171 %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.156 +fv.case23: ; preds = %if.merge.171 %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 @@ -3310,43 +4787,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.220, i64 7 }, { ptr, i64 } { ptr @str.221, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.456, i64 7 }, { ptr, i64 } { ptr @str.457, 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.157 + br label %while.hdr.172 -while.hdr.157: ; preds = %fv.merge, %entry +while.hdr.172: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.158, label %while.exit.159 + br i1 %icmp, label %while.body.173, label %while.exit.174 -while.body.158: ; preds = %while.hdr.157 +while.body.173: ; preds = %while.hdr.172 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.160, label %if.merge.161 + br i1 %icmpN, label %if.then.175, label %if.merge.176 -while.exit.159: ; preds = %while.hdr.157 +while.exit.174: ; preds = %while.hdr.172 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.222, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.458, i64 1 }) ret { ptr, i64 } %callN -if.then.160: ; preds = %while.body.158 +if.then.175: ; preds = %while.body.173 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.223, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.459, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.161 + br label %if.merge.176 -if.merge.161: ; preds = %if.then.160, %while.body.158 +if.merge.176: ; preds = %if.then.175, %while.body.173 %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.226, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.462, 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.227, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.463, 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 %alloca, align 8 @@ -3364,19 +4841,19 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.157 + br label %while.hdr.172 -fv.default: ; preds = %if.merge.161 +fv.default: ; preds = %if.merge.176 br label %fv.merge -fv.case: ; preds = %if.merge.161 +fv.case: ; preds = %if.merge.176 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.161 +fv.case17: ; preds = %if.merge.176 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 @@ -3384,177 +4861,11 @@ fv.case17: ; preds = %if.merge.161 } ; Function Attrs: nounwind -define internal { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %1) #0 { +define internal { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %1) #0 { entry: - %alloca = alloca {}, align 8 - store {} %1, ptr %alloca, align 1 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.228, i64 12 }, { ptr, i64 } { ptr @str.229, 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.162 - -while.hdr.162: ; preds = %if.merge.166, %entry - %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.163, label %while.exit.164 - -while.body.163: ; preds = %while.hdr.162 - %loadN = load i64, ptr %allocaN, align 8 - %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.165, label %if.merge.166 - -while.exit.164: ; preds = %while.hdr.162 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.230, i64 1 }) - ret { ptr, i64 } %callN - -if.then.165: ; preds = %while.body.163 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.231, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.166 - -if.merge.166: ; preds = %if.then.165, %while.body.163 - %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.232, 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.233, 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.162 -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @struct_to_string__NSString(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.234, i64 8 }, { ptr, i64 } { ptr @str.235, 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.167 - -while.hdr.167: ; preds = %if.merge.171, %entry - %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.168, label %while.exit.169 - -while.body.168: ; preds = %while.hdr.167 - %loadN = load i64, ptr %allocaN, align 8 - %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.170, label %if.merge.171 - -while.exit.169: ; preds = %while.hdr.167 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.236, i64 1 }) - ret { ptr, i64 } %callN - -if.then.170: ; preds = %while.body.168 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.237, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.171 - -if.merge.171: ; preds = %if.then.170, %while.body.168 - %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.238, 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.239, 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.167 -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @struct_to_string__SxBox(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.240, i64 5 }, { ptr, i64 } { ptr @str.241, 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.172 - -while.hdr.172: ; preds = %if.merge.176, %entry - %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.173, label %while.exit.174 - -while.body.173: ; preds = %while.hdr.172 - %loadN = load i64, ptr %allocaN, align 8 - %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.175, label %if.merge.176 - -while.exit.174: ; preds = %while.hdr.172 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.242, i64 1 }) - ret { ptr, i64 } %callN - -if.then.175: ; preds = %while.body.173 - %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.243, i64 2 }) - store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.176 - -if.merge.176: ; preds = %if.then.175, %while.body.173 - %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.244, 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.245, 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.172 -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @struct_to_string____SxBoxState(ptr %0, { { ptr, ptr, ptr }, i32, i32, i32 } %1) #0 { -entry: - %alloca = alloca { { ptr, ptr, ptr }, i32, i32, i32 }, align 8 - %ba.tmp = alloca { ptr, ptr, ptr }, align 8 - store { { ptr, ptr, ptr }, i32, i32, i32 } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.246, i64 12 }, { ptr, i64 } { ptr @str.247, i64 1 }) + %alloca = alloca { i32 }, align 8 + store { i32 } %1, ptr %alloca, align 4 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.464, i64 4 }, { ptr, i64 } { ptr @str.465, i64 1 }) %allocaN = alloca { ptr, i64 }, align 8 store { ptr, i64 } %call, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -3563,7 +4874,7 @@ entry: while.hdr.177: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 - %icmp = icmp slt i64 %load, 4 + %icmp = icmp slt i64 %load, 1 br i1 %icmp, label %while.body.178, label %while.exit.179 while.body.178: ; preds = %while.hdr.177 @@ -3573,24 +4884,1504 @@ while.body.178: ; preds = %while.hdr.177 while.exit.179: ; preds = %while.hdr.177 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.248, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.466, i64 1 }) ret { ptr, i64 } %callN if.then.180: ; preds = %while.body.178 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.249, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.467, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.181 if.merge.181: ; preds = %if.then.180, %while.body.178 %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.254, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.469, 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.255, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.470, 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.177 + +fv.default: ; preds = %if.merge.181 + br label %fv.merge + +fv.case: ; preds = %if.merge.181 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.471, i64 10 }, { ptr, i64 } { ptr @str.472, 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.182 + +while.hdr.182: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.183, label %while.exit.184 + +while.body.183: ; preds = %while.hdr.182 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.185, label %if.merge.186 + +while.exit.184: ; preds = %while.hdr.182 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.473, i64 1 }) + ret { ptr, i64 } %callN + +if.then.185: ; preds = %while.body.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.474, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.186 + +if.merge.186: ; preds = %if.then.185, %while.body.183 + %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.480, 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.481, 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.182 + +fv.default: ; preds = %if.merge.186 + br label %fv.merge + +fv.case: ; preds = %if.merge.186 + %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.186 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.186 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.186 + %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.186 + %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.482, i64 13 }, { ptr, i64 } { ptr @str.483, 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.187 + +while.hdr.187: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.188, label %while.exit.189 + +while.body.188: ; preds = %while.hdr.187 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.190, label %if.merge.191 + +while.exit.189: ; preds = %while.hdr.187 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.484, i64 1 }) + ret { ptr, i64 } %callN + +if.then.190: ; preds = %while.body.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.485, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.191 + +if.merge.191: ; preds = %if.then.190, %while.body.188 + %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.488, 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.489, 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.187 + +fv.default: ; preds = %if.merge.191 + br label %fv.merge + +fv.case: ; preds = %if.merge.191 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.191 + %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.490, i64 8 }, { ptr, i64 } { ptr @str.491, 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.192 + +while.hdr.192: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.193, label %while.exit.194 + +while.body.193: ; preds = %while.hdr.192 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.195, label %if.merge.196 + +while.exit.194: ; preds = %while.hdr.192 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.492, i64 1 }) + ret { ptr, i64 } %callN + +if.then.195: ; preds = %while.body.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.196 + +if.merge.196: ; preds = %if.then.195, %while.body.193 + %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.499, 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.500, 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.192 + +fv.default: ; preds = %if.merge.196 + br label %fv.merge + +fv.case: ; preds = %if.merge.196 + %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.196 + %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.196 + %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.196 + %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.196 + %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.501, i64 5 }, { ptr, i64 } { ptr @str.502, 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.197 + +while.hdr.197: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.198, label %while.exit.199 + +while.body.198: ; preds = %while.hdr.197 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.200, label %if.merge.201 + +while.exit.199: ; preds = %while.hdr.197 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.503, i64 1 }) + ret { ptr, i64 } %callN + +if.then.200: ; preds = %while.body.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.504, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.201 + +if.merge.201: ; preds = %if.then.200, %while.body.198 + %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.508, 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.509, 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.197 + +fv.default: ; preds = %if.merge.201 + br label %fv.merge + +fv.case: ; preds = %if.merge.201 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.201 + %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.201 + %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.510, i64 6 }, { ptr, i64 } { ptr @str.511, 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.202 + +while.hdr.202: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.203, label %while.exit.204 + +while.body.203: ; preds = %while.hdr.202 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.205, label %if.merge.206 + +while.exit.204: ; preds = %while.hdr.202 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.512, i64 1 }) + ret { ptr, i64 } %callN + +if.then.205: ; preds = %while.body.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.513, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.206 + +if.merge.206: ; preds = %if.then.205, %while.body.203 + %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.517, 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.518, 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.202 + +fv.default: ; preds = %if.merge.206 + br label %fv.merge + +fv.case: ; preds = %if.merge.206 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.206 + %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.206 + %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.519, i64 6 }, { ptr, i64 } { ptr @str.520, 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.207 + +while.hdr.207: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.208, label %while.exit.209 + +while.body.208: ; preds = %while.hdr.207 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.210, label %if.merge.211 + +while.exit.209: ; preds = %while.hdr.207 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.521, i64 1 }) + ret { ptr, i64 } %callN + +if.then.210: ; preds = %while.body.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.522, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.211 + +if.merge.211: ; preds = %if.then.210, %while.body.208 + %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.525, 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.526, 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.207 + +fv.default: ; preds = %if.merge.211 + br label %fv.merge + +fv.case: ; preds = %if.merge.211 + %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.211 + %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 54, 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.527, i64 4 }, { ptr, i64 } { ptr @str.528, 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.212 + +while.hdr.212: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.213, label %while.exit.214 + +while.body.213: ; preds = %while.hdr.212 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.215, label %if.merge.216 + +while.exit.214: ; preds = %while.hdr.212 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.529, i64 1 }) + ret { ptr, i64 } %callN + +if.then.215: ; preds = %while.body.213 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.530, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.216 + +if.merge.216: ; preds = %if.then.215, %while.body.213 + %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.534, 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.535, 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.212 + +fv.default: ; preds = %if.merge.216 + br label %fv.merge + +fv.case: ; preds = %if.merge.216 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.216 + %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.216 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.536, i64 6 }, { ptr, i64 } { ptr @str.537, 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.217 + +while.hdr.217: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.218, label %while.exit.219 + +while.body.218: ; preds = %while.hdr.217 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.220, label %if.merge.221 + +while.exit.219: ; preds = %while.hdr.217 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.538, i64 1 }) + ret { ptr, i64 } %callN + +if.then.220: ; preds = %while.body.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.539, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.221 + +if.merge.221: ; preds = %if.then.220, %while.body.218 + %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.543, 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.544, 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.217 + +fv.default: ; preds = %if.merge.221 + br label %fv.merge + +fv.case: ; preds = %if.merge.221 + %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.221 + %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.221 + %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 26, i64 undef }, i64 %ba.p2i23, 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.545, i64 12 }, { ptr, i64 } { ptr @str.546, 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.222 + +while.hdr.222: ; preds = %if.merge.226, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.223, label %while.exit.224 + +while.body.223: ; preds = %while.hdr.222 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.225, label %if.merge.226 + +while.exit.224: ; preds = %while.hdr.222 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.547, i64 1 }) + ret { ptr, i64 } %callN + +if.then.225: ; preds = %while.body.223 + %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 + br label %if.merge.226 + +if.merge.226: ; preds = %if.then.225, %while.body.223 + %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.549, 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.550, 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.222 +} + +; 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.551, i64 8 }, { ptr, i64 } { ptr @str.552, 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.227 + +while.hdr.227: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.228, label %while.exit.229 + +while.body.228: ; preds = %while.hdr.227 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.230, label %if.merge.231 + +while.exit.229: ; preds = %while.hdr.227 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.553, i64 1 }) + ret { ptr, i64 } %callN + +if.then.230: ; preds = %while.body.228 + %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 + br label %if.merge.231 + +if.merge.231: ; preds = %if.then.230, %while.body.228 + %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.558, 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.559, 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.227 + +fv.default: ; preds = %if.merge.231 + br label %fv.merge + +fv.case: ; preds = %if.merge.231 + %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.231 + %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.231 + %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.560, i64 7 }, { ptr, i64 } { ptr @str.561, 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.232 + +while.hdr.232: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.233, label %while.exit.234 + +while.body.233: ; preds = %while.hdr.232 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.235, label %if.merge.236 + +while.exit.234: ; preds = %while.hdr.232 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.562, i64 1 }) + ret { ptr, i64 } %callN + +if.then.235: ; preds = %while.body.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.563, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.236 + +if.merge.236: ; preds = %if.then.235, %while.body.233 + %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.567, 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.568, 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.232 + +fv.default: ; preds = %if.merge.236 + br label %fv.merge + +fv.case: ; preds = %if.merge.236 + %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.236 + %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.236 + %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 77, 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.569, i64 9 }, { ptr, i64 } { ptr @str.570, 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.237 + +while.hdr.237: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.238, label %while.exit.239 + +while.body.238: ; preds = %while.hdr.237 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.240, label %if.merge.241 + +while.exit.239: ; preds = %while.hdr.237 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.571, i64 1 }) + ret { ptr, i64 } %callN + +if.then.240: ; preds = %while.body.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.572, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.241 + +if.merge.241: ; preds = %if.then.240, %while.body.238 + %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.575, 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.576, 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.237 + +fv.default: ; preds = %if.merge.241 + br label %fv.merge + +fv.case: ; preds = %if.merge.241 + %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.241 + %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.577, i64 4 }, { ptr, i64 } { ptr @str.578, 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.242 + +while.hdr.242: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.243, label %while.exit.244 + +while.body.243: ; preds = %while.hdr.242 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.245, label %if.merge.246 + +while.exit.244: ; preds = %while.hdr.242 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.579, i64 1 }) + ret { ptr, i64 } %callN + +if.then.245: ; preds = %while.body.243 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.580, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.246 + +if.merge.246: ; preds = %if.then.245, %while.body.243 + %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.583, 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.584, 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.242 + +fv.default: ; preds = %if.merge.246 + br label %fv.merge + +fv.case: ; preds = %if.merge.246 + %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.246 + %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.585, i64 6 }, { ptr, i64 } { ptr @str.586, 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.247 + +while.hdr.247: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.248, label %while.exit.249 + +while.body.248: ; preds = %while.hdr.247 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.250, label %if.merge.251 + +while.exit.249: ; preds = %while.hdr.247 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.587, i64 1 }) + ret { ptr, i64 } %callN + +if.then.250: ; preds = %while.body.248 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.588, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.251 + +if.merge.251: ; preds = %if.then.250, %while.body.248 + %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.596, 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.597, 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.247 + +fv.default: ; preds = %if.merge.251 + br label %fv.merge + +fv.case: ; preds = %if.merge.251 + %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.251 + %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.251 + %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.251 + %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.251 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.251 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.251 + %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 81, 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.598, i64 6 }, { ptr, i64 } { ptr @str.599, 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.252 + +while.hdr.252: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.253, label %while.exit.254 + +while.body.253: ; preds = %while.hdr.252 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.255, label %if.merge.256 + +while.exit.254: ; preds = %while.hdr.252 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 1 }) + ret { ptr, i64 } %callN + +if.then.255: ; preds = %while.body.253 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.601, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.256 + +if.merge.256: ; preds = %if.then.255, %while.body.253 + %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.606, 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.607, 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.252 + +fv.default: ; preds = %if.merge.256 + br label %fv.merge + +fv.case: ; preds = %if.merge.256 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.256 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.256 + %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.256 + %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__NSString(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.608, i64 8 }, { ptr, i64 } { ptr @str.609, 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.257 + +while.hdr.257: ; preds = %if.merge.261, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.258, label %while.exit.259 + +while.body.258: ; preds = %while.hdr.257 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.260, label %if.merge.261 + +while.exit.259: ; preds = %while.hdr.257 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.610, i64 1 }) + ret { ptr, i64 } %callN + +if.then.260: ; preds = %while.body.258 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.611, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.261 + +if.merge.261: ; preds = %if.then.260, %while.body.258 + %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.612, 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.613, 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.257 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string__SxBox(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.614, i64 5 }, { ptr, i64 } { ptr @str.615, 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.262 + +while.hdr.262: ; preds = %if.merge.266, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 0 + br i1 %icmp, label %while.body.263, label %while.exit.264 + +while.body.263: ; preds = %while.hdr.262 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.265, label %if.merge.266 + +while.exit.264: ; preds = %while.hdr.262 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.616, i64 1 }) + ret { ptr, i64 } %callN + +if.then.265: ; preds = %while.body.263 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.617, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.266 + +if.merge.266: ; preds = %if.then.265, %while.body.263 + %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.618, 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.619, 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.262 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @struct_to_string____SxBoxState(ptr %0, { { ptr, ptr, ptr }, i32, i32, i32 } %1) #0 { +entry: + %alloca = alloca { { ptr, ptr, ptr }, i32, i32, i32 }, align 8 + %ba.tmp = alloca { ptr, ptr, ptr }, align 8 + store { { ptr, ptr, ptr }, i32, i32, i32 } %1, ptr %alloca, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.620, i64 12 }, { ptr, i64 } { ptr @str.621, 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.267 + +while.hdr.267: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.268, label %while.exit.269 + +while.body.268: ; preds = %while.hdr.267 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.270, label %if.merge.271 + +while.exit.269: ; preds = %while.hdr.267 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.622, i64 1 }) + ret { ptr, i64 } %callN + +if.then.270: ; preds = %while.body.268 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.623, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.271 + +if.merge.271: ; preds = %if.then.270, %while.body.268 + %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.628, 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.629, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { { ptr, ptr, ptr }, i32, i32, i32 }, ptr %alloca, align 8 @@ -3610,31 +6401,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.177 + br label %while.hdr.267 -fv.default: ; preds = %if.merge.181 +fv.default: ; preds = %if.merge.271 br label %fv.merge -fv.case: ; preds = %if.merge.181 +fv.case: ; preds = %if.merge.271 %fv.field = extractvalue { { ptr, ptr, ptr }, i32, i32, i32 } %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.181 +fv.case17: ; preds = %if.merge.271 %fv.field18 = extractvalue { { ptr, ptr, ptr }, i32, i32, i32 } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.181 +fv.case20: ; preds = %if.merge.271 %fv.field21 = extractvalue { { ptr, ptr, ptr }, i32, i32, i32 } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.181 +fv.case24: ; preds = %if.merge.271 %fv.field25 = extractvalue { { ptr, ptr, ptr }, i32, i32, i32 } %loadN, 3 %sN = sext i32 %fv.field25 to i64 %fv.val27 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 @@ -3642,7 +6433,7 @@ fv.case24: ; preds = %if.merge.181 } ; Function Attrs: nounwind -define internal { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %1) #0 { +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 @@ -3650,9 +6441,9 @@ entry: %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.264, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.635, 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.256, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.630, 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 @@ -3666,18 +6457,209 @@ entry: %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.186, label %if.merge.187 + br i1 %icmp, label %if.then.279, label %if.merge.280 -if.then.186: ; preds = %entry +if.then.279: ; 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.266, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.265, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.637, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, 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.187 + br label %if.merge.280 -if.merge.187: ; preds = %if.then.186, %entry +if.merge.280: ; preds = %if.then.279, %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.642, 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.638, 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.281, label %if.merge.282 + +if.then.281: ; 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.644, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.643, 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.282 + +if.merge.282: ; preds = %if.then.281, %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.652, 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.645, 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.283: ; 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.654, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.653, 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.284 + +if.merge.284: ; preds = %if.then.283, %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.283, label %if.merge.284 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.663, 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.655, 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.285, label %if.merge.286 + +if.then.285: ; 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.665, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.664, 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.286 + +if.merge.286: ; preds = %if.then.285, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -3691,9 +6673,9 @@ entry: %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.273, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.672, 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.267, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.666, 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 @@ -3707,18 +6689,18 @@ entry: %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.188, label %if.merge.189 + br i1 %icmp, label %if.then.287, label %if.merge.288 -if.then.188: ; preds = %entry +if.then.287: ; 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.275, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.274, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.674, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.673, 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.189 + br label %if.merge.288 -if.merge.189: ; preds = %if.then.188, %entry +if.merge.288: ; preds = %if.then.287, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -3730,33 +6712,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.276, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.675, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.195 + br label %while.hdr.298 -while.hdr.195: ; preds = %if.merge.199, %entry +while.hdr.298: ; preds = %if.merge.302, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.196, label %while.exit.197 + br i1 %icmp, label %while.body.299, label %while.exit.300 -while.body.196: ; preds = %while.hdr.195 +while.body.299: ; preds = %while.hdr.298 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.198, label %if.merge.199 + br i1 %icmpN, label %if.then.301, label %if.merge.302 -while.exit.197: ; preds = %while.hdr.195 +while.exit.300: ; preds = %while.hdr.298 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.277, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.676, i64 1 }) ret { ptr, i64 } %call -if.then.198: ; preds = %while.body.196 +if.then.301: ; preds = %while.body.299 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.278, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.677, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.199 + br label %if.merge.302 -if.merge.199: ; preds = %if.then.198, %while.body.196 +if.merge.302: ; preds = %if.then.301, %while.body.299 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3770,7 +6752,211 @@ if.merge.199: ; preds = %if.then.198, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.195 + br label %while.hdr.298 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.678, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.303 + +while.hdr.303: ; preds = %if.merge.307, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.304, label %while.exit.305 + +while.body.304: ; preds = %while.hdr.303 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.306, label %if.merge.307 + +while.exit.305: ; preds = %while.hdr.303 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.679, i64 1 }) + ret { ptr, i64 } %call + +if.then.306: ; preds = %while.body.304 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.680, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.307 + +if.merge.307: ; preds = %if.then.306, %while.body.304 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.303 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.681, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.308 + +while.hdr.308: ; preds = %if.merge.312, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.309, label %while.exit.310 + +while.body.309: ; preds = %while.hdr.308 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.311, label %if.merge.312 + +while.exit.310: ; preds = %while.hdr.308 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.682, i64 1 }) + ret { ptr, i64 } %call + +if.then.311: ; preds = %while.body.309 + %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.312 + +if.merge.312: ; preds = %if.then.311, %while.body.309 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.308 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.684, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.313 + +while.hdr.313: ; preds = %if.merge.317, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.314, label %while.exit.315 + +while.body.314: ; preds = %while.hdr.313 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.316, label %if.merge.317 + +while.exit.315: ; preds = %while.hdr.313 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.685, i64 1 }) + ret { ptr, i64 } %call + +if.then.316: ; preds = %while.body.314 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.686, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.317 + +if.merge.317: ; preds = %if.then.316, %while.body.314 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.313 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.687, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.318 + +while.hdr.318: ; preds = %if.merge.322, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.319, label %while.exit.320 + +while.body.319: ; preds = %while.hdr.318 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.321, label %if.merge.322 + +while.exit.320: ; preds = %while.hdr.318 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.688, i64 1 }) + ret { ptr, i64 } %call + +if.then.321: ; preds = %while.body.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.689, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.322 + +if.merge.322: ; preds = %if.then.321, %while.body.319 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.318 } ; Function Attrs: nounwind @@ -3781,33 +6967,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.279, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.690, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.200 + br label %while.hdr.323 -while.hdr.200: ; preds = %if.merge.204, %entry +while.hdr.323: ; preds = %if.merge.327, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.201, label %while.exit.202 + br i1 %icmp, label %while.body.324, label %while.exit.325 -while.body.201: ; preds = %while.hdr.200 +while.body.324: ; preds = %while.hdr.323 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.203, label %if.merge.204 + br i1 %icmpN, label %if.then.326, label %if.merge.327 -while.exit.202: ; preds = %while.hdr.200 +while.exit.325: ; preds = %while.hdr.323 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.280, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.691, i64 1 }) ret { ptr, i64 } %call -if.then.203: ; preds = %while.body.201 +if.then.326: ; preds = %while.body.324 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.281, i64 2 }) + %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.204 + br label %if.merge.327 -if.merge.204: ; preds = %if.then.203, %while.body.201 +if.merge.327: ; preds = %if.then.326, %while.body.324 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3823,7 +7009,7 @@ if.merge.204: ; preds = %if.then.203, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.200 + br label %while.hdr.323 } ; Function Attrs: nounwind @@ -3834,33 +7020,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [3 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.282, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.693, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.205 + br label %while.hdr.328 -while.hdr.205: ; preds = %if.merge.209, %entry +while.hdr.328: ; preds = %if.merge.332, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.206, label %while.exit.207 + br i1 %icmp, label %while.body.329, label %while.exit.330 -while.body.206: ; preds = %while.hdr.205 +while.body.329: ; preds = %while.hdr.328 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.208, label %if.merge.209 + br i1 %icmpN, label %if.then.331, label %if.merge.332 -while.exit.207: ; preds = %while.hdr.205 +while.exit.330: ; preds = %while.hdr.328 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.283, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.694, i64 1 }) ret { ptr, i64 } %call -if.then.208: ; preds = %while.body.206 +if.then.331: ; preds = %while.body.329 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.284, i64 2 }) + %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 - br label %if.merge.209 + br label %if.merge.332 -if.merge.209: ; preds = %if.then.208, %while.body.206 +if.merge.332: ; preds = %if.then.331, %while.body.329 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [3 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3876,7 +7062,7 @@ if.merge.209: ; preds = %if.then.208, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.205 + br label %while.hdr.328 } ; Function Attrs: nounwind @@ -3886,35 +7072,35 @@ entry: %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.285, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.696, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.214 + br label %while.hdr.340 -while.hdr.214: ; preds = %if.merge.218, %entry +while.hdr.340: ; preds = %if.merge.344, %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 + br i1 %icmp, label %while.body.341, label %while.exit.342 -while.body.215: ; preds = %while.hdr.214 +while.body.341: ; preds = %while.hdr.340 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.217, label %if.merge.218 + br i1 %icmpN, label %if.then.343, label %if.merge.344 -while.exit.216: ; preds = %while.hdr.214 +while.exit.342: ; preds = %while.hdr.340 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.286, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.697, i64 1 }) ret { ptr, i64 } %call -if.then.217: ; preds = %while.body.215 +if.then.343: ; preds = %while.body.341 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.287, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.698, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.218 + br label %if.merge.344 -if.merge.218: ; preds = %if.then.217, %while.body.215 +if.merge.344: ; preds = %if.then.343, %while.body.341 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3930,7 +7116,167 @@ if.merge.218: ; preds = %if.then.217, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.214 + br label %while.hdr.340 +} + +; 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.699, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.345 + +while.hdr.345: ; preds = %if.merge.349, %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.346, label %while.exit.347 + +while.body.346: ; preds = %while.hdr.345 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.348, label %if.merge.349 + +while.exit.347: ; preds = %while.hdr.345 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.700, i64 1 }) + ret { ptr, i64 } %call + +if.then.348: ; preds = %while.body.346 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.701, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.349 + +if.merge.349: ; preds = %if.then.348, %while.body.346 + %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.345 +} + +; 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.702, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.350 + +while.hdr.350: ; preds = %if.merge.354, %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.351, label %while.exit.352 + +while.body.351: ; preds = %while.hdr.350 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.353, label %if.merge.354 + +while.exit.352: ; preds = %while.hdr.350 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.703, i64 1 }) + ret { ptr, i64 } %call + +if.then.353: ; preds = %while.body.351 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.704, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.354 + +if.merge.354: ; preds = %if.then.353, %while.body.351 + %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 76, 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.350 +} + +; 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.705, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.355 + +while.hdr.355: ; preds = %if.merge.359, %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.356, label %while.exit.357 + +while.body.356: ; preds = %while.hdr.355 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.358, label %if.merge.359 + +while.exit.357: ; preds = %while.hdr.355 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.706, i64 1 }) + ret { ptr, i64 } %call + +if.then.358: ; preds = %while.body.356 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.707, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.359 + +if.merge.359: ; preds = %if.then.358, %while.body.356 + %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 78, 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.355 } ; Function Attrs: nounwind @@ -3940,35 +7286,35 @@ entry: %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.288, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.708, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.219 + br label %while.hdr.360 -while.hdr.219: ; preds = %if.merge.223, %entry +while.hdr.360: ; preds = %if.merge.364, %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.220, label %while.exit.221 + br i1 %icmp, label %while.body.361, label %while.exit.362 -while.body.220: ; preds = %while.hdr.219 +while.body.361: ; preds = %while.hdr.360 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.222, label %if.merge.223 + br i1 %icmpN, label %if.then.363, label %if.merge.364 -while.exit.221: ; preds = %while.hdr.219 +while.exit.362: ; preds = %while.hdr.360 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.289, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.709, i64 1 }) ret { ptr, i64 } %call -if.then.222: ; preds = %while.body.220 +if.then.363: ; preds = %while.body.361 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.290, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.710, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.223 + br label %if.merge.364 -if.merge.223: ; preds = %if.then.222, %while.body.220 +if.merge.364: ; preds = %if.then.363, %while.body.361 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3984,7 +7330,7 @@ if.merge.223: ; preds = %if.then.222, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.219 + br label %while.hdr.360 } ; Function Attrs: nounwind @@ -3998,20 +7344,20 @@ entry: 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.248, label %if.else.249 + br i1 %icmp, label %if.then.401, label %if.else.402 -if.then.248: ; preds = %entry - br label %if.merge.250 +if.then.401: ; preds = %entry + br label %if.merge.403 -if.else.249: ; preds = %entry +if.else.402: ; 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.293, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.292, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.250 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.712, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.403 -if.merge.250: ; preds = %if.else.249, %if.then.248 - %bp = phi { ptr, i64 } [ { ptr @str.291, i64 4 }, %if.then.248 ], [ %callN, %if.else.249 ] +if.merge.403: ; preds = %if.else.402, %if.then.401 + %bp = phi { ptr, i64 } [ { ptr @str.711, i64 4 }, %if.then.401 ], [ %callN, %if.else.402 ] ret { ptr, i64 } %bp } @@ -4026,20 +7372,20 @@ entry: 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.264, label %if.else.265 + br i1 %icmp, label %if.then.417, label %if.else.418 -if.then.264: ; preds = %entry - br label %if.merge.266 +if.then.417: ; preds = %entry + br label %if.merge.419 -if.else.265: ; preds = %entry +if.else.418: ; 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.296, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.295, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.266 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.715, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.419 -if.merge.266: ; preds = %if.else.265, %if.then.264 - %bp = phi { ptr, i64 } [ { ptr @str.294, i64 4 }, %if.then.264 ], [ %callN, %if.else.265 ] +if.merge.419: ; preds = %if.else.418, %if.then.417 + %bp = phi { ptr, i64 } [ { ptr @str.714, i64 4 }, %if.then.417 ], [ %callN, %if.else.418 ] ret { ptr, i64 } %bp } @@ -4054,20 +7400,20 @@ entry: 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.267, label %if.else.268 + br i1 %icmp, label %if.then.420, label %if.else.421 -if.then.267: ; preds = %entry - br label %if.merge.269 +if.then.420: ; preds = %entry + br label %if.merge.422 -if.else.268: ; preds = %entry +if.else.421: ; 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.299, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.298, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.269 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.718, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.422 -if.merge.269: ; preds = %if.else.268, %if.then.267 - %bp = phi { ptr, i64 } [ { ptr @str.297, i64 4 }, %if.then.267 ], [ %callN, %if.else.268 ] +if.merge.422: ; preds = %if.else.421, %if.then.420 + %bp = phi { ptr, i64 } [ { ptr @str.717, i64 4 }, %if.then.420 ], [ %callN, %if.else.421 ] ret { ptr, i64 } %bp } @@ -4082,20 +7428,20 @@ entry: 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.270, label %if.else.271 + br i1 %icmp, label %if.then.423, label %if.else.424 -if.then.270: ; preds = %entry - br label %if.merge.272 +if.then.423: ; preds = %entry + br label %if.merge.425 -if.else.271: ; preds = %entry +if.else.424: ; 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.302, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.301, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.272 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.722, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.721, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.425 -if.merge.272: ; preds = %if.else.271, %if.then.270 - %bp = phi { ptr, i64 } [ { ptr @str.300, i64 4 }, %if.then.270 ], [ %callN, %if.else.271 ] +if.merge.425: ; preds = %if.else.424, %if.then.423 + %bp = phi { ptr, i64 } [ { ptr @str.720, i64 4 }, %if.then.423 ], [ %callN, %if.else.424 ] ret { ptr, i64 } %bp } @@ -4110,20 +7456,20 @@ entry: 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.273, label %if.else.274 + br i1 %icmp, label %if.then.426, label %if.else.427 -if.then.273: ; preds = %entry - br label %if.merge.275 +if.then.426: ; preds = %entry + br label %if.merge.428 -if.else.274: ; preds = %entry +if.else.427: ; 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.305, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.304, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.275 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.725, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.724, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.428 -if.merge.275: ; preds = %if.else.274, %if.then.273 - %bp = phi { ptr, i64 } [ { ptr @str.303, i64 4 }, %if.then.273 ], [ %callN, %if.else.274 ] +if.merge.428: ; preds = %if.else.427, %if.then.426 + %bp = phi { ptr, i64 } [ { ptr @str.723, i64 4 }, %if.then.426 ], [ %callN, %if.else.427 ] ret { ptr, i64 } %bp } @@ -4137,20 +7483,20 @@ entry: 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.276, label %if.else.277 + br i1 %icmp, label %if.then.429, label %if.else.430 -if.then.276: ; preds = %entry - br label %if.merge.278 +if.then.429: ; preds = %entry + br label %if.merge.431 -if.else.277: ; preds = %entry +if.else.430: ; 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.308, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.307, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.278 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.728, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.727, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.431 -if.merge.278: ; preds = %if.else.277, %if.then.276 - %bp = phi { ptr, i64 } [ { ptr @str.306, i64 4 }, %if.then.276 ], [ %callN, %if.else.277 ] +if.merge.431: ; preds = %if.else.430, %if.then.429 + %bp = phi { ptr, i64 } [ { ptr @str.726, i64 4 }, %if.then.429 ], [ %callN, %if.else.430 ] ret { ptr, i64 } %bp } @@ -4165,20 +7511,20 @@ entry: 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.279, label %if.else.280 + br i1 %icmp, label %if.then.432, label %if.else.433 -if.then.279: ; preds = %entry - br label %if.merge.281 +if.then.432: ; preds = %entry + br label %if.merge.434 -if.else.280: ; preds = %entry +if.else.433: ; 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.311, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.310, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.281 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.731, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.730, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.434 -if.merge.281: ; preds = %if.else.280, %if.then.279 - %bp = phi { ptr, i64 } [ { ptr @str.309, i64 4 }, %if.then.279 ], [ %callN, %if.else.280 ] +if.merge.434: ; preds = %if.else.433, %if.then.432 + %bp = phi { ptr, i64 } [ { ptr @str.729, i64 4 }, %if.then.432 ], [ %callN, %if.else.433 ] ret { ptr, i64 } %bp } @@ -4193,25 +7539,25 @@ entry: 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.282, label %if.else.283 + br i1 %icmp, label %if.then.435, label %if.else.436 -if.then.282: ; preds = %entry - br label %if.merge.284 +if.then.435: ; preds = %entry + br label %if.merge.437 -if.else.283: ; preds = %entry +if.else.436: ; 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.314, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.313, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.284 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.734, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.733, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.437 -if.merge.284: ; preds = %if.else.283, %if.then.282 - %bp = phi { ptr, i64 } [ { ptr @str.312, i64 4 }, %if.then.282 ], [ %callN, %if.else.283 ] +if.merge.437: ; preds = %if.else.436, %if.then.435 + %bp = phi { ptr, i64 } [ { ptr @str.732, i64 4 }, %if.then.435 ], [ %callN, %if.else.436 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %1) #0 { +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 @@ -4221,272 +7567,20 @@ entry: 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.285, label %if.else.286 + br i1 %icmp, label %if.then.438, label %if.else.439 -if.then.285: ; preds = %entry - br label %if.merge.287 +if.then.438: ; preds = %entry + br label %if.merge.440 -if.else.286: ; preds = %entry +if.else.439: ; 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.317, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.316, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.287 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.737, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.736, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.440 -if.merge.287: ; preds = %if.else.286, %if.then.285 - %bp = phi { ptr, i64 } [ { ptr @str.315, i64 4 }, %if.then.285 ], [ %callN, %if.else.286 ] - 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.288, label %if.else.289 - -if.then.288: ; preds = %entry - br label %if.merge.290 - -if.else.289: ; 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.320, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.319, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.290 - -if.merge.290: ; preds = %if.else.289, %if.then.288 - %bp = phi { ptr, i64 } [ { ptr @str.318, i64 4 }, %if.then.288 ], [ %callN, %if.else.289 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.291, label %if.else.292 - -if.then.291: ; preds = %entry - br label %if.merge.293 - -if.else.292: ; 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.323, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.322, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.293 - -if.merge.293: ; preds = %if.else.292, %if.then.291 - %bp = phi { ptr, i64 } [ { ptr @str.321, i64 4 }, %if.then.291 ], [ %callN, %if.else.292 ] - 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.294, label %if.else.295 - -if.then.294: ; preds = %entry - br label %if.merge.296 - -if.else.295: ; 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.326, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.325, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.296 - -if.merge.296: ; preds = %if.else.295, %if.then.294 - %bp = phi { ptr, i64 } [ { ptr @str.324, i64 4 }, %if.then.294 ], [ %callN, %if.else.295 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_SxBox(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.297, label %if.else.298 - -if.then.297: ; preds = %entry - br label %if.merge.299 - -if.else.298: ; 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.329, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.328, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.299 - -if.merge.299: ; preds = %if.else.298, %if.then.297 - %bp = phi { ptr, i64 } [ { ptr @str.327, i64 4 }, %if.then.297 ], [ %callN, %if.else.298 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_ptr_SxBox(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.300, label %if.else.301 - -if.then.300: ; preds = %entry - br label %if.merge.302 - -if.else.301: ; 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.332, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.331, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.302 - -if.merge.302: ; preds = %if.else.301, %if.then.300 - %bp = phi { ptr, i64 } [ { ptr @str.330, i64 4 }, %if.then.300 ], [ %callN, %if.else.301 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.303, label %if.else.304 - -if.then.303: ; preds = %entry - br label %if.merge.305 - -if.else.304: ; 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.335, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.334, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.305 - -if.merge.305: ; preds = %if.else.304, %if.then.303 - %bp = phi { ptr, i64 } [ { ptr @str.333, i64 4 }, %if.then.303 ], [ %callN, %if.else.304 ] - 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.306, label %if.else.307 - -if.then.306: ; preds = %entry - br label %if.merge.308 - -if.else.307: ; 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.338, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.337, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.308 - -if.merge.308: ; preds = %if.else.307, %if.then.306 - %bp = phi { ptr, i64 } [ { ptr @str.336, i64 4 }, %if.then.306 ], [ %callN, %if.else.307 ] - 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.309, label %if.else.310 - -if.then.309: ; preds = %entry - br label %if.merge.311 - -if.else.310: ; 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.341, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.340, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.311 - -if.merge.311: ; preds = %if.else.310, %if.then.309 - %bp = phi { ptr, i64 } [ { ptr @str.339, i64 4 }, %if.then.309 ], [ %callN, %if.else.310 ] - 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.312, label %if.else.313 - -if.then.312: ; preds = %entry - br label %if.merge.314 - -if.else.313: ; 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.344, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.343, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.314 - -if.merge.314: ; preds = %if.else.313, %if.then.312 - %bp = phi { ptr, i64 } [ { ptr @str.342, i64 4 }, %if.then.312 ], [ %callN, %if.else.313 ] +if.merge.440: ; preds = %if.else.439, %if.then.438 + %bp = phi { ptr, i64 } [ { ptr @str.735, i64 4 }, %if.then.438 ], [ %callN, %if.else.439 ] ret { ptr, i64 } %bp } @@ -4501,20 +7595,606 @@ entry: 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.315, label %if.else.316 + br i1 %icmp, label %if.then.441, label %if.else.442 -if.then.315: ; preds = %entry - br label %if.merge.317 +if.then.441: ; preds = %entry + br label %if.merge.443 -if.else.316: ; preds = %entry +if.else.442: ; 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.347, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.346, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.317 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.740, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.739, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.443 -if.merge.317: ; preds = %if.else.316, %if.then.315 - %bp = phi { ptr, i64 } [ { ptr @str.345, i64 4 }, %if.then.315 ], [ %callN, %if.else.316 ] +if.merge.443: ; preds = %if.else.442, %if.then.441 + %bp = phi { ptr, i64 } [ { ptr @str.738, i64 4 }, %if.then.441 ], [ %callN, %if.else.442 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.444, label %if.else.445 + +if.then.444: ; preds = %entry + br label %if.merge.446 + +if.else.445: ; 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.743, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.742, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.446 + +if.merge.446: ; preds = %if.else.445, %if.then.444 + %bp = phi { ptr, i64 } [ { ptr @str.741, i64 4 }, %if.then.444 ], [ %callN, %if.else.445 ] + 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.447, label %if.else.448 + +if.then.447: ; preds = %entry + br label %if.merge.449 + +if.else.448: ; 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.746, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.745, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.449 + +if.merge.449: ; preds = %if.else.448, %if.then.447 + %bp = phi { ptr, i64 } [ { ptr @str.744, i64 4 }, %if.then.447 ], [ %callN, %if.else.448 ] + 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.450, label %if.else.451 + +if.then.450: ; preds = %entry + br label %if.merge.452 + +if.else.451: ; 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.749, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.748, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.452 + +if.merge.452: ; preds = %if.else.451, %if.then.450 + %bp = phi { ptr, i64 } [ { ptr @str.747, i64 4 }, %if.then.450 ], [ %callN, %if.else.451 ] + 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.453, label %if.else.454 + +if.then.453: ; preds = %entry + br label %if.merge.455 + +if.else.454: ; 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.752, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.751, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.455 + +if.merge.455: ; preds = %if.else.454, %if.then.453 + %bp = phi { ptr, i64 } [ { ptr @str.750, i64 4 }, %if.then.453 ], [ %callN, %if.else.454 ] + 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.456, label %if.else.457 + +if.then.456: ; preds = %entry + br label %if.merge.458 + +if.else.457: ; 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.755, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.754, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.458 + +if.merge.458: ; preds = %if.else.457, %if.then.456 + %bp = phi { ptr, i64 } [ { ptr @str.753, i64 4 }, %if.then.456 ], [ %callN, %if.else.457 ] + 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.459, label %if.else.460 + +if.then.459: ; preds = %entry + br label %if.merge.461 + +if.else.460: ; 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.758, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.757, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.461 + +if.merge.461: ; preds = %if.else.460, %if.then.459 + %bp = phi { ptr, i64 } [ { ptr @str.756, i64 4 }, %if.then.459 ], [ %callN, %if.else.460 ] + 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.462, label %if.else.463 + +if.then.462: ; preds = %entry + br label %if.merge.464 + +if.else.463: ; 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.761, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.760, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.464 + +if.merge.464: ; preds = %if.else.463, %if.then.462 + %bp = phi { ptr, i64 } [ { ptr @str.759, i64 4 }, %if.then.462 ], [ %callN, %if.else.463 ] + 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.465, label %if.else.466 + +if.then.465: ; preds = %entry + br label %if.merge.467 + +if.else.466: ; 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.764, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.763, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.467 + +if.merge.467: ; preds = %if.else.466, %if.then.465 + %bp = phi { ptr, i64 } [ { ptr @str.762, i64 4 }, %if.then.465 ], [ %callN, %if.else.466 ] + 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.468, label %if.else.469 + +if.then.468: ; preds = %entry + br label %if.merge.470 + +if.else.469: ; 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.767, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.766, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.470 + +if.merge.470: ; preds = %if.else.469, %if.then.468 + %bp = phi { ptr, i64 } [ { ptr @str.765, i64 4 }, %if.then.468 ], [ %callN, %if.else.469 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.471, label %if.else.472 + +if.then.471: ; preds = %entry + br label %if.merge.473 + +if.else.472: ; 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.770, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.769, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.473 + +if.merge.473: ; preds = %if.else.472, %if.then.471 + %bp = phi { ptr, i64 } [ { ptr @str.768, i64 4 }, %if.then.471 ], [ %callN, %if.else.472 ] + 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.474, label %if.else.475 + +if.then.474: ; preds = %entry + br label %if.merge.476 + +if.else.475: ; 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.773, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.772, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.476 + +if.merge.476: ; preds = %if.else.475, %if.then.474 + %bp = phi { ptr, i64 } [ { ptr @str.771, i64 4 }, %if.then.474 ], [ %callN, %if.else.475 ] + 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.477, label %if.else.478 + +if.then.477: ; preds = %entry + br label %if.merge.479 + +if.else.478: ; 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.776, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.775, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.479 + +if.merge.479: ; preds = %if.else.478, %if.then.477 + %bp = phi { ptr, i64 } [ { ptr @str.774, i64 4 }, %if.then.477 ], [ %callN, %if.else.478 ] + 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.480, label %if.else.481 + +if.then.480: ; preds = %entry + br label %if.merge.482 + +if.else.481: ; 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.779, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.778, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.482 + +if.merge.482: ; preds = %if.else.481, %if.then.480 + %bp = phi { ptr, i64 } [ { ptr @str.777, i64 4 }, %if.then.480 ], [ %callN, %if.else.481 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_NSString(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.483, label %if.else.484 + +if.then.483: ; preds = %entry + br label %if.merge.485 + +if.else.484: ; 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.782, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.781, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.485 + +if.merge.485: ; preds = %if.else.484, %if.then.483 + %bp = phi { ptr, i64 } [ { ptr @str.780, i64 4 }, %if.then.483 ], [ %callN, %if.else.484 ] + 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.486, label %if.else.487 + +if.then.486: ; preds = %entry + br label %if.merge.488 + +if.else.487: ; 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.785, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.784, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.488 + +if.merge.488: ; preds = %if.else.487, %if.then.486 + %bp = phi { ptr, i64 } [ { ptr @str.783, i64 4 }, %if.then.486 ], [ %callN, %if.else.487 ] + 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.489, label %if.else.490 + +if.then.489: ; preds = %entry + br label %if.merge.491 + +if.else.490: ; 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.788, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.787, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.491 + +if.merge.491: ; preds = %if.else.490, %if.then.489 + %bp = phi { ptr, i64 } [ { ptr @str.786, i64 4 }, %if.then.489 ], [ %callN, %if.else.490 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_SxBox(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.492, label %if.else.493 + +if.then.492: ; preds = %entry + br label %if.merge.494 + +if.else.493: ; 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.791, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.790, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.494 + +if.merge.494: ; preds = %if.else.493, %if.then.492 + %bp = phi { ptr, i64 } [ { ptr @str.789, i64 4 }, %if.then.492 ], [ %callN, %if.else.493 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_ptr_SxBox(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.495, label %if.else.496 + +if.then.495: ; preds = %entry + br label %if.merge.497 + +if.else.496: ; 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.794, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.793, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.497 + +if.merge.497: ; preds = %if.else.496, %if.then.495 + %bp = phi { ptr, i64 } [ { ptr @str.792, i64 4 }, %if.then.495 ], [ %callN, %if.else.496 ] + 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.498, label %if.else.499 + +if.then.498: ; preds = %entry + br label %if.merge.500 + +if.else.499: ; 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.797, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.796, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.500 + +if.merge.500: ; preds = %if.else.499, %if.then.498 + %bp = phi { ptr, i64 } [ { ptr @str.795, i64 4 }, %if.then.498 ], [ %callN, %if.else.499 ] + 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.501, label %if.else.502 + +if.then.501: ; preds = %entry + br label %if.merge.503 + +if.else.502: ; 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.800, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.799, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.503 + +if.merge.503: ; preds = %if.else.502, %if.then.501 + %bp = phi { ptr, i64 } [ { ptr @str.798, i64 4 }, %if.then.501 ], [ %callN, %if.else.502 ] + 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.504, label %if.else.505 + +if.then.504: ; preds = %entry + br label %if.merge.506 + +if.else.505: ; 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.803, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.802, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.506 + +if.merge.506: ; preds = %if.else.505, %if.then.504 + %bp = phi { ptr, i64 } [ { ptr @str.801, i64 4 }, %if.then.504 ], [ %callN, %if.else.505 ] ret { ptr, i64 } %bp } @@ -4529,20 +8209,20 @@ entry: 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.318, label %if.else.319 + br i1 %icmp, label %if.then.507, label %if.else.508 -if.then.318: ; preds = %entry - br label %if.merge.320 +if.then.507: ; preds = %entry + br label %if.merge.509 -if.else.319: ; preds = %entry +if.else.508: ; 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.350, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.349, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.320 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.806, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.805, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.509 -if.merge.320: ; preds = %if.else.319, %if.then.318 - %bp = phi { ptr, i64 } [ { ptr @str.348, i64 4 }, %if.then.318 ], [ %callN, %if.else.319 ] +if.merge.509: ; preds = %if.else.508, %if.then.507 + %bp = phi { ptr, i64 } [ { ptr @str.804, i64 4 }, %if.then.507 ], [ %callN, %if.else.508 ] ret { ptr, i64 } %bp } @@ -4557,20 +8237,20 @@ entry: 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.321, label %if.else.322 + br i1 %icmp, label %if.then.510, label %if.else.511 -if.then.321: ; preds = %entry - br label %if.merge.323 +if.then.510: ; preds = %entry + br label %if.merge.512 -if.else.322: ; preds = %entry +if.else.511: ; 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.353, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.352, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.323 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.809, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.808, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.512 -if.merge.323: ; preds = %if.else.322, %if.then.321 - %bp = phi { ptr, i64 } [ { ptr @str.351, i64 4 }, %if.then.321 ], [ %callN, %if.else.322 ] +if.merge.512: ; preds = %if.else.511, %if.then.510 + %bp = phi { ptr, i64 } [ { ptr @str.807, i64 4 }, %if.then.510 ], [ %callN, %if.else.511 ] ret { ptr, i64 } %bp } @@ -4585,23 +8265,119 @@ entry: 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.324, label %if.else.325 + br i1 %icmp, label %if.then.513, label %if.else.514 -if.then.324: ; preds = %entry - br label %if.merge.326 +if.then.513: ; preds = %entry + br label %if.merge.515 -if.else.325: ; preds = %entry +if.else.514: ; 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.356, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.355, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.326 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.812, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.811, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.515 -if.merge.326: ; preds = %if.else.325, %if.then.324 - %bp = phi { ptr, i64 } [ { ptr @str.354, i64 4 }, %if.then.324 ], [ %callN, %if.else.325 ] +if.merge.515: ; preds = %if.else.514, %if.then.513 + %bp = phi { ptr, i64 } [ { ptr @str.810, i64 4 }, %if.then.513 ], [ %callN, %if.else.514 ] 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.522, label %if.merge.523 + +if.then.522: ; preds = %entry + ret { ptr, i64 } { ptr @str.813, i64 4 } + +if.merge.523: ; 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 39, 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.524, label %if.merge.525 + +if.then.524: ; preds = %entry + ret { ptr, i64 } { ptr @str.814, i64 4 } + +if.merge.525: ; 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_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.526, label %if.merge.527 + +if.then.526: ; preds = %entry + ret { ptr, i64 } { ptr @str.815, i64 4 } + +if.merge.527: ; 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 45, 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.528, label %if.merge.529 + +if.then.528: ; preds = %entry + ret { ptr, i64 } { ptr @str.816, i64 4 } + +if.merge.529: ; 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 88, 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 ptr @__SxBox_alloc_imp(ptr %0, ptr %1) #0 { entry: @@ -4698,15 +8474,15 @@ define internal void @__sx_objc_selector_init() { entry: %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_init, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.357) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.817) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_setWidth_, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.358) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.818) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_setHeight_, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.359) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.819) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_width, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.360) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.820) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_height, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.361) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.821) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_area, align 8 ret void } @@ -4718,25 +8494,25 @@ declare ptr @class_getInstanceVariable(ptr, ptr) define internal void @__sx_objc_defined_class_init() { entry: %super_cls = call ptr @objc_getClass(ptr @OBJC_CLASS_NAME_) - %cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.362, i64 0) + %cls = call ptr @objc_allocateClassPair(ptr %super_cls, ptr @OBJC_CLASS_NAME_.822, i64 0) %0 = call i8 @class_addIvar(ptr %cls, ptr @OBJC_IVAR_NAME_, i64 8, i8 3, ptr @OBJC_IVAR_TYPE_) %metacls = call ptr @object_getClass(ptr %cls) - %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.363) + %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.823) %1 = call i1 @class_addMethod(ptr %cls, ptr %sel, ptr @__SxBox_width_imp, ptr @OBJC_METH_VAR_TYPE_) - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.364) - %2 = call i1 @class_addMethod(ptr %cls, ptr %selN, ptr @__SxBox_setWidth_imp, ptr @OBJC_METH_VAR_TYPE_.365) - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.366) - %3 = call i1 @class_addMethod(ptr %cls, ptr %selN, ptr @__SxBox_height_imp, ptr @OBJC_METH_VAR_TYPE_.367) - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.368) - %4 = call i1 @class_addMethod(ptr %cls, ptr %selN, ptr @__SxBox_setHeight_imp, ptr @OBJC_METH_VAR_TYPE_.369) - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.370) - %5 = call i1 @class_addMethod(ptr %cls, ptr %selN, ptr @__SxBox_area_imp, ptr @OBJC_METH_VAR_TYPE_.371) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.824) + %2 = call i1 @class_addMethod(ptr %cls, ptr %selN, ptr @__SxBox_setWidth_imp, ptr @OBJC_METH_VAR_TYPE_.825) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.826) + %3 = call i1 @class_addMethod(ptr %cls, ptr %selN, ptr @__SxBox_height_imp, ptr @OBJC_METH_VAR_TYPE_.827) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.828) + %4 = call i1 @class_addMethod(ptr %cls, ptr %selN, ptr @__SxBox_setHeight_imp, ptr @OBJC_METH_VAR_TYPE_.829) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.830) + %5 = call i1 @class_addMethod(ptr %cls, ptr %selN, ptr @__SxBox_area_imp, ptr @OBJC_METH_VAR_TYPE_.831) call void @objc_registerClassPair(ptr %cls) store ptr %cls, ptr @__SxBox_class, align 8 - %sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.372) - %6 = call i1 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxBox_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.373) - %sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.374) - %7 = call i1 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxBox_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.375) + %sel_dealloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.832) + %6 = call i1 @class_addMethod(ptr %cls, ptr %sel_dealloc, ptr @__SxBox_dealloc_imp, ptr @OBJC_METH_VAR_TYPE_.833) + %sel_alloc = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.834) + %7 = call i1 @class_addMethod(ptr %metacls, ptr %sel_alloc, ptr @__SxBox_alloc_imp, ptr @OBJC_METH_VAR_TYPE_.835) %iv = call ptr @class_getInstanceVariable(ptr %cls, ptr @OBJC_IVAR_NAME_) store ptr %iv, ptr @__SxBox_state_ivar, align 8 ret void @@ -4744,7 +8520,7 @@ entry: define internal void @__sx_objc_class_init() { entry: - %cls = call ptr @objc_getClass(ptr @OBJC_CLASS_NAME_.376) + %cls = call ptr @objc_getClass(ptr @OBJC_CLASS_NAME_.836) store ptr %cls, ptr @OBJC_CLASSLIST_REFERENCES_SxBox, align 8 ret void } diff --git a/examples/expected/1329-ffi-objc-call-03-selector-sharing.ir b/examples/expected/1329-ffi-objc-call-03-selector-sharing.ir index 9efc6fc..8f53d49 100644 --- a/examples/expected/1329-ffi-objc-call-03-selector-sharing.ir +++ b/examples/expected/1329-ffi-objc-call-03-selector-sharing.ir @@ -1,31 +1,28 @@ -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @OBJC_SELECTOR_REFERENCES_init = internal global ptr null @OBJC_SELECTOR_REFERENCES_release = internal global ptr null @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.37 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.162 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.163 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.165 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.166 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.167 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.168 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.170 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.171 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.172 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.173 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.174 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.176 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.177 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.178 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.179 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 @OBJC_METH_VAR_NAME_ = private unnamed_addr constant [5 x i8] c"init\00" -@OBJC_METH_VAR_NAME_.39 = private unnamed_addr constant [8 x i8] c"release\00" +@OBJC_METH_VAR_NAME_.180 = private unnamed_addr constant [8 x i8] c"release\00" @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__sx_objc_selector_init, ptr null }] ; Function Attrs: nounwind @@ -331,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.162, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -427,7 +424,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, 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 @@ -435,7 +432,7 @@ if.then.12: ; preds = %if.then.9 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, 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 @@ -445,13 +442,13 @@ if.then.12: ; preds = %if.then.9 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, 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 @@ -459,7 +456,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -473,7 +470,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, 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 @@ -481,7 +478,7 @@ if.then.23: ; preds = %if.else.10 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, 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 @@ -492,7 +489,7 @@ if.then.23: ; preds = %if.else.10 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -549,7 +546,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, 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 @@ -557,7 +554,7 @@ if.then.32: ; preds = %if.then.29 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, 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 @@ -568,7 +565,7 @@ if.then.32: ; preds = %if.then.29 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -588,7 +585,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, 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 @@ -596,7 +593,7 @@ if.then.35: ; preds = %while.exit.2 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, 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 @@ -607,7 +604,7 @@ if.then.35: ; preds = %while.exit.2 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -684,6 +681,414 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -795,6 +1200,336 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 ; Function Attrs: nounwind declare i64 @build_options() #0 +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + ; Function Attrs: nounwind define i32 @main() #0 { entry: @@ -829,14 +1564,14 @@ entry: define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.36, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.177, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.37, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.178, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -852,7 +1587,7 @@ entry: ; 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.38, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.179, i64 3 }) ret { ptr, i64 } %call } @@ -864,7 +1599,7 @@ define internal void @__sx_objc_selector_init() { entry: %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_init, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.39) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.180) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_release, align 8 ret void } diff --git a/examples/expected/1332-ffi-objc-call-06-sret-return.ir b/examples/expected/1332-ffi-objc-call-06-sret-return.ir index 4a9377c..44d8595 100644 --- a/examples/expected/1332-ffi-objc-call-06-sret-return.ir +++ b/examples/expected/1332-ffi-objc-call-06-sret-return.ir @@ -1,326 +1,649 @@ -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @OBJC_SELECTOR_REFERENCES_tripleValue = internal global ptr null @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.22 = private unnamed_addr constant [5 x i8] c"true\00", align 1 -@str.23 = private unnamed_addr constant [6 x i8] c"false\00", align 1 -@str.24 = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.25 = private unnamed_addr constant [4 x i8] c"\00", align 1 -@str.26 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@__sx_type_is_unsigned = private constant [86 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] +@str.162 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.163 = private unnamed_addr constant [5 x i8] c"true\00", align 1 +@str.164 = private unnamed_addr constant [6 x i8] c"false\00", align 1 +@str.165 = private unnamed_addr constant [2 x i8] c"0\00", align 1 +@str.166 = private unnamed_addr constant [4 x i8] c"\00", align 1 +@str.167 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@__sx_type_is_unsigned = private constant [169 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] +@tag.str = private constant [1 x i8] zeroinitializer +@tag.str.168 = private constant [9 x i8] c"Overflow\00" +@tag.str.169 = private constant [3 x i8] c"Io\00" +@tag.str.170 = private constant [16 x i8] c"UnexpectedToken\00" +@tag.str.171 = private constant [14 x i8] c"UnexpectedEnd\00" +@tag.str.172 = private constant [10 x i8] c"BadEscape\00" +@tag.str.173 = private constant [10 x i8] c"BadNumber\00" +@tag.str.174 = private constant [16 x i8] c"TrailingGarbage\00" +@tag.str.175 = private constant [15 x i8] c"BadControlChar\00" +@tag.str.176 = private constant [15 x i8] c"UnknownCommand\00" +@tag.str.177 = private constant [12 x i8] c"UnknownFlag\00" +@tag.str.178 = private constant [13 x i8] c"MissingValue\00" +@tag.str.179 = private constant [16 x i8] c"MissingRequired\00" +@tag.str.180 = private constant [13 x i8] c"TooManyFlags\00" +@tag_names = private constant [14 x { ptr, i64 }] [{ ptr, i64 } { ptr @tag.str, i64 0 }, { ptr, i64 } { ptr @tag.str.168, i64 8 }, { ptr, i64 } { ptr @tag.str.169, i64 2 }, { ptr, i64 } { ptr @tag.str.170, i64 15 }, { ptr, i64 } { ptr @tag.str.171, i64 13 }, { ptr, i64 } { ptr @tag.str.172, i64 9 }, { ptr, i64 } { ptr @tag.str.173, i64 9 }, { ptr, i64 } { ptr @tag.str.174, i64 15 }, { ptr, i64 } { ptr @tag.str.175, i64 14 }, { ptr, i64 } { ptr @tag.str.176, i64 14 }, { ptr, i64 } { ptr @tag.str.177, i64 11 }, { ptr, i64 } { ptr @tag.str.178, i64 12 }, { ptr, i64 } { ptr @tag.str.179, i64 15 }, { ptr, i64 } { ptr @tag.str.180, i64 12 }] @tn.str = private constant [13 x i8] c"\00" -@tn.str.27 = private constant [5 x i8] c"bool\00" -@tn.str.28 = private constant [3 x i8] c"s8\00" -@tn.str.29 = private constant [4 x i8] c"s16\00" -@tn.str.30 = private constant [4 x i8] c"s32\00" -@tn.str.31 = private constant [4 x i8] c"s64\00" -@tn.str.32 = private constant [3 x i8] c"u8\00" -@tn.str.33 = private constant [4 x i8] c"u16\00" -@tn.str.34 = private constant [4 x i8] c"u32\00" -@tn.str.35 = private constant [4 x i8] c"u64\00" -@tn.str.36 = private constant [4 x i8] c"f32\00" -@tn.str.37 = private constant [4 x i8] c"f64\00" -@tn.str.38 = private constant [7 x i8] c"string\00" -@tn.str.39 = private constant [4 x i8] c"Any\00" -@tn.str.40 = private constant [9 x i8] c"noreturn\00" -@tn.str.41 = private constant [6 x i8] c"isize\00" -@tn.str.42 = private constant [6 x i8] c"usize\00" -@tn.str.43 = private constant [5 x i8] c"void\00" -@tn.str.44 = private constant [6 x i8] c"*void\00" -@tn.str.45 = private constant [16 x i8] c"Source_Location\00" -@tn.str.46 = private constant [11 x i8] c"CAllocator\00" -@tn.str.47 = private constant [12 x i8] c"*CAllocator\00" -@tn.str.48 = private constant [4 x i8] c"GPA\00" -@tn.str.49 = private constant [5 x i8] c"*GPA\00" -@tn.str.50 = private constant [11 x i8] c"ArenaChunk\00" -@tn.str.51 = private constant [12 x i8] c"*ArenaChunk\00" -@tn.str.52 = private constant [10 x i8] c"Allocator\00" -@tn.str.53 = private constant [6 x i8] c"Arena\00" -@tn.str.54 = private constant [7 x i8] c"*Arena\00" -@tn.str.55 = private constant [6 x i8] c"[*]u8\00" -@tn.str.56 = private constant [9 x i8] c"BufAlloc\00" -@tn.str.57 = private constant [10 x i8] c"*BufAlloc\00" -@tn.str.58 = private constant [18 x i8] c"TrackingAllocator\00" -@tn.str.59 = private constant [19 x i8] c"*TrackingAllocator\00" -@tn.str.60 = private constant [8 x i8] c"Context\00" -@tn.str.61 = private constant [7 x i8] c"[4]s64\00" -@tn.str.62 = private constant [9 x i8] c"[]string\00" -@tn.str.63 = private constant [16 x i8] c"OperatingSystem\00" -@tn.str.64 = private constant [13 x i8] c"Architecture\00" -@tn.str.65 = private constant [13 x i8] c"BuildOptions\00" -@tn.str.66 = private constant [11 x i8] c"() -> bool\00" -@tn.str.67 = private constant [9 x i8] c"NSString\00" -@tn.str.68 = private constant [10 x i8] c"*NSString\00" -@tn.str.69 = private constant [10 x i8] c"Closure()\00" -@tn.str.70 = private constant [7 x i8] c"Triple\00" -@tn.str.71 = private constant [13 x i8] c"**CAllocator\00" -@tn.str.72 = private constant [5 x i8] c"*s64\00" -@tn.str.73 = private constant [7 x i8] c"**void\00" -@tn.str.74 = private constant [6 x i8] c"*bool\00" -@tn.str.75 = private constant [8 x i8] c"*string\00" -@tn.str.76 = private constant [6 x i8] c"[]Any\00" -@tn.str.77 = private constant [5 x i8] c"*Any\00" -@tn.str.78 = private constant [7 x i8] c"[1]Any\00" -@tn.str.79 = private constant [8 x i8] c"*[1]Any\00" -@tn.str.80 = private constant [7 x i8] c"*[]Any\00" -@tn.str.81 = private constant [4 x i8] c"*u8\00" -@tn.str.82 = private constant [8 x i8] c"*Triple\00" -@tn.str.83 = private constant [7 x i8] c"[3]Any\00" -@tn.str.84 = private constant [8 x i8] c"*[3]Any\00" -@tn.str.85 = private constant [8 x i8] c"*[4]s64\00" -@tn.str.86 = private constant [5 x i8] c"*f64\00" -@tn.str.87 = private constant [17 x i8] c"*Source_Location\00" -@tn.str.88 = private constant [11 x i8] c"*Allocator\00" -@tn.str.89 = private constant [9 x i8] c"*Context\00" -@tn.str.90 = private constant [14 x i8] c"*BuildOptions\00" -@tn.str.91 = private constant [17 x i8] c"*OperatingSystem\00" -@tn.str.92 = private constant [14 x i8] c"*Architecture\00" -@tn.str.93 = private constant [10 x i8] c"*[]string\00" -@tn.str.94 = private constant [6 x i8] c"**GPA\00" -@tn.str.95 = private constant [13 x i8] c"**ArenaChunk\00" -@tn.str.96 = private constant [8 x i8] c"**Arena\00" -@tn.str.97 = private constant [7 x i8] c"*[*]u8\00" -@tn.str.98 = private constant [11 x i8] c"**BufAlloc\00" -@tn.str.99 = private constant [20 x i8] c"**TrackingAllocator\00" -@tn.str.100 = private constant [11 x i8] c"**NSString\00" -@tn.str.101 = private constant [14 x i8] c"***CAllocator\00" -@tn.str.102 = private constant [6 x i8] c"**s64\00" -@tn.str.103 = private constant [8 x i8] c"***void\00" -@tn.str.104 = private constant [7 x i8] c"**bool\00" -@tn.str.105 = private constant [9 x i8] c"**string\00" -@tn.str.106 = private constant [6 x i8] c"**Any\00" -@tn.str.107 = private constant [9 x i8] c"**[1]Any\00" -@tn.str.108 = private constant [8 x i8] c"**[]Any\00" -@tn.str.109 = private constant [5 x i8] c"**u8\00" -@tn.str.110 = private constant [9 x i8] c"**Triple\00" -@tn.str.111 = private constant [9 x i8] c"**[3]Any\00" -@__sx_type_names = private constant [86 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.27, i64 4 }, { ptr, i64 } { ptr @tn.str.28, i64 2 }, { ptr, i64 } { ptr @tn.str.29, i64 3 }, { ptr, i64 } { ptr @tn.str.30, i64 3 }, { ptr, i64 } { ptr @tn.str.31, i64 3 }, { ptr, i64 } { ptr @tn.str.32, i64 2 }, { ptr, i64 } { ptr @tn.str.33, i64 3 }, { ptr, i64 } { ptr @tn.str.34, i64 3 }, { ptr, i64 } { ptr @tn.str.35, i64 3 }, { ptr, i64 } { ptr @tn.str.36, i64 3 }, { ptr, i64 } { ptr @tn.str.37, i64 3 }, { ptr, i64 } { ptr @tn.str.38, i64 6 }, { ptr, i64 } { ptr @tn.str.39, i64 3 }, { ptr, i64 } { ptr @tn.str.40, i64 8 }, { ptr, i64 } { ptr @tn.str.41, i64 5 }, { ptr, i64 } { ptr @tn.str.42, i64 5 }, { ptr, i64 } { ptr @tn.str.43, i64 4 }, { ptr, i64 } { ptr @tn.str.44, i64 5 }, { ptr, i64 } { ptr @tn.str.45, i64 15 }, { ptr, i64 } { ptr @tn.str.46, i64 10 }, { ptr, i64 } { ptr @tn.str.47, i64 11 }, { ptr, i64 } { ptr @tn.str.48, i64 3 }, { ptr, i64 } { ptr @tn.str.49, i64 4 }, { ptr, i64 } { ptr @tn.str.50, i64 10 }, { ptr, i64 } { ptr @tn.str.51, i64 11 }, { ptr, i64 } { ptr @tn.str.52, i64 9 }, { ptr, i64 } { ptr @tn.str.53, i64 5 }, { ptr, i64 } { ptr @tn.str.54, i64 6 }, { ptr, i64 } { ptr @tn.str.55, i64 5 }, { ptr, i64 } { ptr @tn.str.56, i64 8 }, { ptr, i64 } { ptr @tn.str.57, i64 9 }, { ptr, i64 } { ptr @tn.str.58, i64 17 }, { ptr, i64 } { ptr @tn.str.59, i64 18 }, { ptr, i64 } { ptr @tn.str.60, i64 7 }, { ptr, i64 } { ptr @tn.str.61, i64 6 }, { ptr, i64 } { ptr @tn.str.62, i64 8 }, { ptr, i64 } { ptr @tn.str.63, i64 15 }, { ptr, i64 } { ptr @tn.str.64, i64 12 }, { ptr, i64 } { ptr @tn.str.65, i64 12 }, { ptr, i64 } { ptr @tn.str.66, i64 10 }, { ptr, i64 } { ptr @tn.str.67, i64 8 }, { ptr, i64 } { ptr @tn.str.68, i64 9 }, { ptr, i64 } { ptr @tn.str.69, i64 9 }, { ptr, i64 } { ptr @tn.str.70, i64 6 }, { ptr, i64 } { ptr @tn.str.71, i64 12 }, { ptr, i64 } { ptr @tn.str.72, i64 4 }, { ptr, i64 } { ptr @tn.str.73, i64 6 }, { ptr, i64 } { ptr @tn.str.74, i64 5 }, { ptr, i64 } { ptr @tn.str.75, i64 7 }, { ptr, i64 } { ptr @tn.str.76, i64 5 }, { ptr, i64 } { ptr @tn.str.77, i64 4 }, { ptr, i64 } { ptr @tn.str.78, i64 6 }, { ptr, i64 } { ptr @tn.str.79, i64 7 }, { ptr, i64 } { ptr @tn.str.80, i64 6 }, { ptr, i64 } { ptr @tn.str.81, i64 3 }, { ptr, i64 } { ptr @tn.str.82, i64 7 }, { ptr, i64 } { ptr @tn.str.83, i64 6 }, { ptr, i64 } { ptr @tn.str.84, i64 7 }, { ptr, i64 } { ptr @tn.str.85, i64 7 }, { ptr, i64 } { ptr @tn.str.86, i64 4 }, { ptr, i64 } { ptr @tn.str.87, i64 16 }, { ptr, i64 } { ptr @tn.str.88, i64 10 }, { ptr, i64 } { ptr @tn.str.89, i64 8 }, { ptr, i64 } { ptr @tn.str.90, i64 13 }, { ptr, i64 } { ptr @tn.str.91, i64 16 }, { ptr, i64 } { ptr @tn.str.92, i64 13 }, { ptr, i64 } { ptr @tn.str.93, i64 9 }, { ptr, i64 } { ptr @tn.str.94, i64 5 }, { ptr, i64 } { ptr @tn.str.95, i64 12 }, { ptr, i64 } { ptr @tn.str.96, i64 7 }, { ptr, i64 } { ptr @tn.str.97, i64 6 }, { ptr, i64 } { ptr @tn.str.98, i64 10 }, { ptr, i64 } { ptr @tn.str.99, i64 19 }, { ptr, i64 } { ptr @tn.str.100, i64 10 }, { ptr, i64 } { ptr @tn.str.101, i64 13 }, { ptr, i64 } { ptr @tn.str.102, i64 5 }, { ptr, i64 } { ptr @tn.str.103, i64 7 }, { ptr, i64 } { ptr @tn.str.104, i64 6 }, { ptr, i64 } { ptr @tn.str.105, i64 8 }, { ptr, i64 } { ptr @tn.str.106, i64 5 }, { ptr, i64 } { ptr @tn.str.107, i64 8 }, { ptr, i64 } { ptr @tn.str.108, i64 7 }, { ptr, i64 } { ptr @tn.str.109, i64 4 }, { ptr, i64 } { ptr @tn.str.110, i64 8 }, { ptr, i64 } { ptr @tn.str.111, i64 8 }] -@str.112 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.113 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.114 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.115 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.116 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.117 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.118 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.119 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.120 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.121 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.122 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.123 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.124 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.125 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.129 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.130 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.131 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.132 = private unnamed_addr constant [9 x i8] c"NSObject\00", align 1 -@str.133 = private unnamed_addr constant [14 x i8] c"SxTripleProbe\00", align 1 -@str.134 = private unnamed_addr constant [12 x i8] c"tripleValue\00", align 1 -@str.135 = private unnamed_addr constant [15 x i8] c"{Triple=qqq}@:\00", align 1 -@str.136 = private unnamed_addr constant [16 x i8] c"addMethod = {}\0A\00", align 1 -@str.137 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.138 = private unnamed_addr constant [16 x i8] c"addMethod = {}\0A\00", align 1 -@str.139 = private unnamed_addr constant [23 x i8] c"triple = ({}, {}, {})\0A\00", align 1 -@str.140 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.141 = private unnamed_addr constant [23 x i8] c"triple = ({}, {}, {})\0A\00", align 1 -@str.142 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 -@str.143 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.144 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.145 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@tn.str.181 = private constant [5 x i8] c"bool\00" +@tn.str.182 = private constant [3 x i8] c"s8\00" +@tn.str.183 = private constant [4 x i8] c"s16\00" +@tn.str.184 = private constant [4 x i8] c"s32\00" +@tn.str.185 = private constant [4 x i8] c"s64\00" +@tn.str.186 = private constant [3 x i8] c"u8\00" +@tn.str.187 = private constant [4 x i8] c"u16\00" +@tn.str.188 = private constant [4 x i8] c"u32\00" +@tn.str.189 = private constant [4 x i8] c"u64\00" +@tn.str.190 = private constant [4 x i8] c"f32\00" +@tn.str.191 = private constant [4 x i8] c"f64\00" +@tn.str.192 = private constant [7 x i8] c"string\00" +@tn.str.193 = private constant [4 x i8] c"Any\00" +@tn.str.194 = private constant [9 x i8] c"noreturn\00" +@tn.str.195 = private constant [6 x i8] c"isize\00" +@tn.str.196 = private constant [6 x i8] c"usize\00" +@tn.str.197 = private constant [5 x i8] c"void\00" +@tn.str.198 = private constant [6 x i8] c"*void\00" +@tn.str.199 = private constant [16 x i8] c"Source_Location\00" +@tn.str.200 = private constant [11 x i8] c"CAllocator\00" +@tn.str.201 = private constant [12 x i8] c"*CAllocator\00" +@tn.str.202 = private constant [4 x i8] c"GPA\00" +@tn.str.203 = private constant [5 x i8] c"*GPA\00" +@tn.str.204 = private constant [11 x i8] c"ArenaChunk\00" +@tn.str.205 = private constant [12 x i8] c"*ArenaChunk\00" +@tn.str.206 = private constant [10 x i8] c"Allocator\00" +@tn.str.207 = private constant [6 x i8] c"Arena\00" +@tn.str.208 = private constant [7 x i8] c"*Arena\00" +@tn.str.209 = private constant [6 x i8] c"[*]u8\00" +@tn.str.210 = private constant [9 x i8] c"BufAlloc\00" +@tn.str.211 = private constant [10 x i8] c"*BufAlloc\00" +@tn.str.212 = private constant [18 x i8] c"TrackingAllocator\00" +@tn.str.213 = private constant [19 x i8] c"*TrackingAllocator\00" +@tn.str.214 = private constant [8 x i8] c"Context\00" +@tn.str.215 = private constant [7 x i8] c"[4]s64\00" +@tn.str.216 = private constant [9 x i8] c"[]string\00" +@tn.str.217 = private constant [9 x i8] c"OpenMode\00" +@tn.str.218 = private constant [9 x i8] c"SeekFrom\00" +@tn.str.219 = private constant [5 x i8] c"File\00" +@tn.str.220 = private constant [6 x i8] c"*File\00" +@tn.str.221 = private constant [6 x i8] c"?File\00" +@tn.str.222 = private constant [8 x i8] c"?string\00" +@tn.str.223 = private constant [11 x i8] c"TraceFrame\00" +@tn.str.224 = private constant [4 x i8] c"*u8\00" +@tn.str.225 = private constant [14 x i8] c"ProcessResult\00" +@tn.str.226 = private constant [15 x i8] c"?ProcessResult\00" +@tn.str.227 = private constant [5 x i8] c"*s32\00" +@tn.str.228 = private constant [9 x i8] c"SockAddr\00" +@tn.str.229 = private constant [10 x i8] c"*SockAddr\00" +@tn.str.230 = private constant [5 x i8] c"*u32\00" +@tn.str.231 = private constant [10 x i8] c"JsonError\00" +@tn.str.232 = private constant [6 x i8] c"Array\00" +@tn.str.233 = private constant [7 x i8] c"Object\00" +@tn.str.234 = private constant [6 x i8] c"Value\00" +@tn.str.235 = private constant [7 x i8] c"Member\00" +@tn.str.236 = private constant [9 x i8] c"[*]Value\00" +@tn.str.237 = private constant [7 x i8] c"*Array\00" +@tn.str.238 = private constant [10 x i8] c"[*]Member\00" +@tn.str.239 = private constant [8 x i8] c"*Object\00" +@tn.str.240 = private constant [5 x i8] c"[]u8\00" +@tn.str.241 = private constant [5 x i8] c"Sink\00" +@tn.str.242 = private constant [6 x i8] c"*Sink\00" +@tn.str.243 = private constant [17 x i8] c"(s64, JsonError)\00" +@tn.str.244 = private constant [15 x i8] c"JsonParseError\00" +@tn.str.245 = private constant [22 x i8] c"(s64, JsonParseError)\00" +@tn.str.246 = private constant [7 x i8] c"Parser\00" +@tn.str.247 = private constant [8 x i8] c"*Parser\00" +@tn.str.248 = private constant [25 x i8] c"(string, JsonParseError)\00" +@tn.str.249 = private constant [24 x i8] c"(Value, JsonParseError)\00" +@tn.str.250 = private constant [16 x i8] c"OperatingSystem\00" +@tn.str.251 = private constant [13 x i8] c"Architecture\00" +@tn.str.252 = private constant [13 x i8] c"BuildOptions\00" +@tn.str.253 = private constant [11 x i8] c"() -> bool\00" +@tn.str.254 = private constant [5 x i8] c"*s64\00" +@tn.str.255 = private constant [9 x i8] c"CliError\00" +@tn.str.256 = private constant [9 x i8] c"FlagSpec\00" +@tn.str.257 = private constant [11 x i8] c"[]FlagSpec\00" +@tn.str.258 = private constant [8 x i8] c"Command\00" +@tn.str.259 = private constant [10 x i8] c"FlagValue\00" +@tn.str.260 = private constant [5 x i8] c"Diag\00" +@tn.str.261 = private constant [14 x i8] c"[16]FlagValue\00" +@tn.str.262 = private constant [7 x i8] c"Parsed\00" +@tn.str.263 = private constant [8 x i8] c"*Parsed\00" +@tn.str.264 = private constant [19 x i8] c"(Parsed, CliError)\00" +@tn.str.265 = private constant [10 x i8] c"[]Command\00" +@tn.str.266 = private constant [6 x i8] c"*Diag\00" +@tn.str.267 = private constant [7 x i8] c"[8]s64\00" +@tn.str.268 = private constant [7 x i8] c"[64]u8\00" +@tn.str.269 = private constant [7 x i8] c"Sha256\00" +@tn.str.270 = private constant [8 x i8] c"*Sha256\00" +@tn.str.271 = private constant [8 x i8] c"?[64]u8\00" +@tn.str.272 = private constant [8 x i8] c"[64]s64\00" +@tn.str.273 = private constant [9 x i8] c"NSString\00" +@tn.str.274 = private constant [10 x i8] c"*NSString\00" +@tn.str.275 = private constant [10 x i8] c"Closure()\00" +@tn.str.276 = private constant [7 x i8] c"Triple\00" +@tn.str.277 = private constant [13 x i8] c"**CAllocator\00" +@tn.str.278 = private constant [7 x i8] c"**void\00" +@tn.str.279 = private constant [6 x i8] c"*bool\00" +@tn.str.280 = private constant [8 x i8] c"*string\00" +@tn.str.281 = private constant [6 x i8] c"[]Any\00" +@tn.str.282 = private constant [5 x i8] c"*Any\00" +@tn.str.283 = private constant [7 x i8] c"[1]Any\00" +@tn.str.284 = private constant [8 x i8] c"*[1]Any\00" +@tn.str.285 = private constant [7 x i8] c"*[]Any\00" +@tn.str.286 = private constant [8 x i8] c"*Triple\00" +@tn.str.287 = private constant [7 x i8] c"[3]Any\00" +@tn.str.288 = private constant [8 x i8] c"*[3]Any\00" +@tn.str.289 = private constant [8 x i8] c"*[4]s64\00" +@tn.str.290 = private constant [5 x i8] c"*f64\00" +@tn.str.291 = private constant [17 x i8] c"*Source_Location\00" +@tn.str.292 = private constant [11 x i8] c"*Allocator\00" +@tn.str.293 = private constant [9 x i8] c"*Context\00" +@tn.str.294 = private constant [12 x i8] c"*TraceFrame\00" +@tn.str.295 = private constant [15 x i8] c"*ProcessResult\00" +@tn.str.296 = private constant [8 x i8] c"*Member\00" +@tn.str.297 = private constant [14 x i8] c"*BuildOptions\00" +@tn.str.298 = private constant [10 x i8] c"*FlagSpec\00" +@tn.str.299 = private constant [9 x i8] c"*Command\00" +@tn.str.300 = private constant [11 x i8] c"*FlagValue\00" +@tn.str.301 = private constant [10 x i8] c"*OpenMode\00" +@tn.str.302 = private constant [10 x i8] c"*SeekFrom\00" +@tn.str.303 = private constant [7 x i8] c"*Value\00" +@tn.str.304 = private constant [17 x i8] c"*OperatingSystem\00" +@tn.str.305 = private constant [14 x i8] c"*Architecture\00" +@tn.str.306 = private constant [15 x i8] c"*[16]FlagValue\00" +@tn.str.307 = private constant [8 x i8] c"*[8]s64\00" +@tn.str.308 = private constant [8 x i8] c"*[64]u8\00" +@tn.str.309 = private constant [9 x i8] c"*[64]s64\00" +@tn.str.310 = private constant [10 x i8] c"*[]string\00" +@tn.str.311 = private constant [6 x i8] c"*[]u8\00" +@tn.str.312 = private constant [12 x i8] c"*[]FlagSpec\00" +@tn.str.313 = private constant [11 x i8] c"*[]Command\00" +@tn.str.314 = private constant [6 x i8] c"**GPA\00" +@tn.str.315 = private constant [13 x i8] c"**ArenaChunk\00" +@tn.str.316 = private constant [8 x i8] c"**Arena\00" +@tn.str.317 = private constant [7 x i8] c"*[*]u8\00" +@tn.str.318 = private constant [11 x i8] c"**BufAlloc\00" +@tn.str.319 = private constant [20 x i8] c"**TrackingAllocator\00" +@tn.str.320 = private constant [7 x i8] c"**File\00" +@tn.str.321 = private constant [5 x i8] c"**u8\00" +@tn.str.322 = private constant [6 x i8] c"**s32\00" +@tn.str.323 = private constant [11 x i8] c"**SockAddr\00" +@tn.str.324 = private constant [6 x i8] c"**u32\00" +@tn.str.325 = private constant [10 x i8] c"*[*]Value\00" +@tn.str.326 = private constant [8 x i8] c"**Array\00" +@tn.str.327 = private constant [11 x i8] c"*[*]Member\00" +@tn.str.328 = private constant [9 x i8] c"**Object\00" +@tn.str.329 = private constant [7 x i8] c"**Sink\00" +@tn.str.330 = private constant [9 x i8] c"**Parser\00" +@tn.str.331 = private constant [6 x i8] c"**s64\00" +@tn.str.332 = private constant [9 x i8] c"**Parsed\00" +@tn.str.333 = private constant [7 x i8] c"**Diag\00" +@tn.str.334 = private constant [9 x i8] c"**Sha256\00" +@tn.str.335 = private constant [11 x i8] c"**NSString\00" +@tn.str.336 = private constant [14 x i8] c"***CAllocator\00" +@tn.str.337 = private constant [8 x i8] c"***void\00" +@tn.str.338 = private constant [7 x i8] c"**bool\00" +@tn.str.339 = private constant [9 x i8] c"**string\00" +@tn.str.340 = private constant [6 x i8] c"**Any\00" +@tn.str.341 = private constant [9 x i8] c"**[1]Any\00" +@tn.str.342 = private constant [8 x i8] c"**[]Any\00" +@tn.str.343 = private constant [9 x i8] c"**Triple\00" +@tn.str.344 = private constant [9 x i8] c"**[3]Any\00" +@tn.str.345 = private constant [7 x i8] c"*?File\00" +@tn.str.346 = private constant [9 x i8] c"*?string\00" +@tn.str.347 = private constant [16 x i8] c"*?ProcessResult\00" +@tn.str.348 = private constant [9 x i8] c"*?[64]u8\00" +@__sx_type_names = private constant [169 x { ptr, i64 }] [{ ptr, i64 } { ptr @tn.str, i64 12 }, { ptr, i64 } { ptr @tn.str.181, i64 4 }, { ptr, i64 } { ptr @tn.str.182, i64 2 }, { ptr, i64 } { ptr @tn.str.183, i64 3 }, { ptr, i64 } { ptr @tn.str.184, i64 3 }, { ptr, i64 } { ptr @tn.str.185, i64 3 }, { ptr, i64 } { ptr @tn.str.186, i64 2 }, { ptr, i64 } { ptr @tn.str.187, i64 3 }, { ptr, i64 } { ptr @tn.str.188, i64 3 }, { ptr, i64 } { ptr @tn.str.189, i64 3 }, { ptr, i64 } { ptr @tn.str.190, i64 3 }, { ptr, i64 } { ptr @tn.str.191, i64 3 }, { ptr, i64 } { ptr @tn.str.192, i64 6 }, { ptr, i64 } { ptr @tn.str.193, i64 3 }, { ptr, i64 } { ptr @tn.str.194, i64 8 }, { ptr, i64 } { ptr @tn.str.195, i64 5 }, { ptr, i64 } { ptr @tn.str.196, i64 5 }, { ptr, i64 } { ptr @tn.str.197, i64 4 }, { ptr, i64 } { ptr @tn.str.198, i64 5 }, { ptr, i64 } { ptr @tn.str.199, i64 15 }, { ptr, i64 } { ptr @tn.str.200, i64 10 }, { ptr, i64 } { ptr @tn.str.201, i64 11 }, { ptr, i64 } { ptr @tn.str.202, i64 3 }, { ptr, i64 } { ptr @tn.str.203, i64 4 }, { ptr, i64 } { ptr @tn.str.204, i64 10 }, { ptr, i64 } { ptr @tn.str.205, i64 11 }, { ptr, i64 } { ptr @tn.str.206, i64 9 }, { ptr, i64 } { ptr @tn.str.207, i64 5 }, { ptr, i64 } { ptr @tn.str.208, i64 6 }, { ptr, i64 } { ptr @tn.str.209, i64 5 }, { ptr, i64 } { ptr @tn.str.210, i64 8 }, { ptr, i64 } { ptr @tn.str.211, i64 9 }, { ptr, i64 } { ptr @tn.str.212, i64 17 }, { ptr, i64 } { ptr @tn.str.213, i64 18 }, { ptr, i64 } { ptr @tn.str.214, i64 7 }, { ptr, i64 } { ptr @tn.str.215, i64 6 }, { ptr, i64 } { ptr @tn.str.216, i64 8 }, { ptr, i64 } { ptr @tn.str.217, i64 8 }, { ptr, i64 } { ptr @tn.str.218, i64 8 }, { ptr, i64 } { ptr @tn.str.219, i64 4 }, { ptr, i64 } { ptr @tn.str.220, i64 5 }, { ptr, i64 } { ptr @tn.str.221, i64 5 }, { ptr, i64 } { ptr @tn.str.222, i64 7 }, { ptr, i64 } { ptr @tn.str.223, i64 10 }, { ptr, i64 } { ptr @tn.str.224, i64 3 }, { ptr, i64 } { ptr @tn.str.225, i64 13 }, { ptr, i64 } { ptr @tn.str.226, i64 14 }, { ptr, i64 } { ptr @tn.str.227, i64 4 }, { ptr, i64 } { ptr @tn.str.228, i64 8 }, { ptr, i64 } { ptr @tn.str.229, i64 9 }, { ptr, i64 } { ptr @tn.str.230, i64 4 }, { ptr, i64 } { ptr @tn.str.231, i64 9 }, { ptr, i64 } { ptr @tn.str.232, i64 5 }, { ptr, i64 } { ptr @tn.str.233, i64 6 }, { ptr, i64 } { ptr @tn.str.234, i64 5 }, { ptr, i64 } { ptr @tn.str.235, i64 6 }, { ptr, i64 } { ptr @tn.str.236, i64 8 }, { ptr, i64 } { ptr @tn.str.237, i64 6 }, { ptr, i64 } { ptr @tn.str.238, i64 9 }, { ptr, i64 } { ptr @tn.str.239, i64 7 }, { ptr, i64 } { ptr @tn.str.240, i64 4 }, { ptr, i64 } { ptr @tn.str.241, i64 4 }, { ptr, i64 } { ptr @tn.str.242, i64 5 }, { ptr, i64 } { ptr @tn.str.243, i64 16 }, { ptr, i64 } { ptr @tn.str.244, i64 14 }, { ptr, i64 } { ptr @tn.str.245, i64 21 }, { ptr, i64 } { ptr @tn.str.246, i64 6 }, { ptr, i64 } { ptr @tn.str.247, i64 7 }, { ptr, i64 } { ptr @tn.str.248, i64 24 }, { ptr, i64 } { ptr @tn.str.249, i64 23 }, { ptr, i64 } { ptr @tn.str.250, i64 15 }, { ptr, i64 } { ptr @tn.str.251, i64 12 }, { ptr, i64 } { ptr @tn.str.252, i64 12 }, { ptr, i64 } { ptr @tn.str.253, i64 10 }, { ptr, i64 } { ptr @tn.str.254, i64 4 }, { ptr, i64 } { ptr @tn.str.255, i64 8 }, { ptr, i64 } { ptr @tn.str.256, i64 8 }, { ptr, i64 } { ptr @tn.str.257, i64 10 }, { ptr, i64 } { ptr @tn.str.258, i64 7 }, { ptr, i64 } { ptr @tn.str.259, i64 9 }, { ptr, i64 } { ptr @tn.str.260, i64 4 }, { ptr, i64 } { ptr @tn.str.261, i64 13 }, { ptr, i64 } { ptr @tn.str.262, i64 6 }, { ptr, i64 } { ptr @tn.str.263, i64 7 }, { ptr, i64 } { ptr @tn.str.264, i64 18 }, { ptr, i64 } { ptr @tn.str.265, i64 9 }, { ptr, i64 } { ptr @tn.str.266, i64 5 }, { ptr, i64 } { ptr @tn.str.267, i64 6 }, { ptr, i64 } { ptr @tn.str.268, i64 6 }, { ptr, i64 } { ptr @tn.str.269, i64 6 }, { ptr, i64 } { ptr @tn.str.270, i64 7 }, { ptr, i64 } { ptr @tn.str.271, i64 7 }, { ptr, i64 } { ptr @tn.str.272, i64 7 }, { ptr, i64 } { ptr @tn.str.273, i64 8 }, { ptr, i64 } { ptr @tn.str.274, i64 9 }, { ptr, i64 } { ptr @tn.str.275, i64 9 }, { ptr, i64 } { ptr @tn.str.276, i64 6 }, { ptr, i64 } { ptr @tn.str.277, i64 12 }, { ptr, i64 } { ptr @tn.str.278, i64 6 }, { ptr, i64 } { ptr @tn.str.279, i64 5 }, { ptr, i64 } { ptr @tn.str.280, i64 7 }, { ptr, i64 } { ptr @tn.str.281, i64 5 }, { ptr, i64 } { ptr @tn.str.282, i64 4 }, { ptr, i64 } { ptr @tn.str.283, i64 6 }, { ptr, i64 } { ptr @tn.str.284, i64 7 }, { ptr, i64 } { ptr @tn.str.285, i64 6 }, { ptr, i64 } { ptr @tn.str.286, i64 7 }, { ptr, i64 } { ptr @tn.str.287, i64 6 }, { ptr, i64 } { ptr @tn.str.288, i64 7 }, { ptr, i64 } { ptr @tn.str.289, i64 7 }, { ptr, i64 } { ptr @tn.str.290, i64 4 }, { ptr, i64 } { ptr @tn.str.291, i64 16 }, { ptr, i64 } { ptr @tn.str.292, i64 10 }, { ptr, i64 } { ptr @tn.str.293, i64 8 }, { ptr, i64 } { ptr @tn.str.294, i64 11 }, { ptr, i64 } { ptr @tn.str.295, i64 14 }, { ptr, i64 } { ptr @tn.str.296, i64 7 }, { ptr, i64 } { ptr @tn.str.297, i64 13 }, { ptr, i64 } { ptr @tn.str.298, i64 9 }, { ptr, i64 } { ptr @tn.str.299, i64 8 }, { ptr, i64 } { ptr @tn.str.300, i64 10 }, { ptr, i64 } { ptr @tn.str.301, i64 9 }, { ptr, i64 } { ptr @tn.str.302, i64 9 }, { ptr, i64 } { ptr @tn.str.303, i64 6 }, { ptr, i64 } { ptr @tn.str.304, i64 16 }, { ptr, i64 } { ptr @tn.str.305, i64 13 }, { ptr, i64 } { ptr @tn.str.306, i64 14 }, { ptr, i64 } { ptr @tn.str.307, i64 7 }, { ptr, i64 } { ptr @tn.str.308, i64 7 }, { ptr, i64 } { ptr @tn.str.309, i64 8 }, { ptr, i64 } { ptr @tn.str.310, i64 9 }, { ptr, i64 } { ptr @tn.str.311, i64 5 }, { ptr, i64 } { ptr @tn.str.312, i64 11 }, { ptr, i64 } { ptr @tn.str.313, i64 10 }, { ptr, i64 } { ptr @tn.str.314, i64 5 }, { ptr, i64 } { ptr @tn.str.315, i64 12 }, { ptr, i64 } { ptr @tn.str.316, i64 7 }, { ptr, i64 } { ptr @tn.str.317, i64 6 }, { ptr, i64 } { ptr @tn.str.318, i64 10 }, { ptr, i64 } { ptr @tn.str.319, i64 19 }, { ptr, i64 } { ptr @tn.str.320, i64 6 }, { ptr, i64 } { ptr @tn.str.321, i64 4 }, { ptr, i64 } { ptr @tn.str.322, i64 5 }, { ptr, i64 } { ptr @tn.str.323, i64 10 }, { ptr, i64 } { ptr @tn.str.324, i64 5 }, { ptr, i64 } { ptr @tn.str.325, i64 9 }, { ptr, i64 } { ptr @tn.str.326, i64 7 }, { ptr, i64 } { ptr @tn.str.327, i64 10 }, { ptr, i64 } { ptr @tn.str.328, i64 8 }, { ptr, i64 } { ptr @tn.str.329, i64 6 }, { ptr, i64 } { ptr @tn.str.330, i64 8 }, { ptr, i64 } { ptr @tn.str.331, i64 5 }, { ptr, i64 } { ptr @tn.str.332, i64 8 }, { ptr, i64 } { ptr @tn.str.333, i64 6 }, { ptr, i64 } { ptr @tn.str.334, i64 8 }, { ptr, i64 } { ptr @tn.str.335, i64 10 }, { ptr, i64 } { ptr @tn.str.336, i64 13 }, { ptr, i64 } { ptr @tn.str.337, i64 7 }, { ptr, i64 } { ptr @tn.str.338, i64 6 }, { ptr, i64 } { ptr @tn.str.339, i64 8 }, { ptr, i64 } { ptr @tn.str.340, i64 5 }, { ptr, i64 } { ptr @tn.str.341, i64 8 }, { ptr, i64 } { ptr @tn.str.342, i64 7 }, { ptr, i64 } { ptr @tn.str.343, i64 8 }, { ptr, i64 } { ptr @tn.str.344, i64 8 }, { ptr, i64 } { ptr @tn.str.345, i64 6 }, { ptr, i64 } { ptr @tn.str.346, i64 8 }, { ptr, i64 } { ptr @tn.str.347, i64 15 }, { ptr, i64 } { ptr @tn.str.348, i64 8 }] +@str.349 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.350 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.351 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.352 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.353 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.354 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.355 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.356 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.357 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.358 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.359 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.360 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.361 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.362 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.363 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.364 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.365 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.366 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.367 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.368 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.369 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.370 = private unnamed_addr constant [9 x i8] c"NSObject\00", align 1 +@str.371 = private unnamed_addr constant [14 x i8] c"SxTripleProbe\00", align 1 +@str.372 = private unnamed_addr constant [12 x i8] c"tripleValue\00", align 1 +@str.373 = private unnamed_addr constant [15 x i8] c"{Triple=qqq}@:\00", align 1 +@str.374 = private unnamed_addr constant [16 x i8] c"addMethod = {}\0A\00", align 1 +@str.375 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.376 = private unnamed_addr constant [16 x i8] c"addMethod = {}\0A\00", align 1 +@str.377 = private unnamed_addr constant [23 x i8] c"triple = ({}, {}, {})\0A\00", align 1 +@str.378 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.379 = private unnamed_addr constant [23 x i8] c"triple = ({}, {}, {})\0A\00", align 1 +@str.380 = private unnamed_addr constant [16 x i8] c"Source_Location\00", align 1 +@str.381 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.382 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.383 = private unnamed_addr constant [3 x i8] c", \00", align 1 @fld.str = private constant [5 x i8] c"file\00" -@fld.str.146 = private constant [5 x i8] c"line\00" -@fld.str.147 = private constant [4 x i8] c"col\00" -@fld.str.148 = 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.146, i64 4 }, { ptr, i64 } { ptr @fld.str.147, i64 3 }, { ptr, i64 } { ptr @fld.str.148, i64 4 }] -@str.149 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.150 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 -@str.151 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.152 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.153 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.154 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.155 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.156 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 -@str.157 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.158 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.159 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.160 = private constant [12 x i8] c"alloc_count\00" -@field_names.161 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.160, i64 11 }] -@str.162 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.163 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 -@str.164 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.165 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.166 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.167 = private constant [5 x i8] c"next\00" -@fld.str.168 = private constant [4 x i8] c"cap\00" -@field_names.169 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.167, i64 4 }, { ptr, i64 } { ptr @fld.str.168, i64 3 }] -@str.170 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.171 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 -@str.172 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.173 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.174 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.175 = private constant [4 x i8] c"ctx\00" -@fld.str.176 = private constant [6 x i8] c"alloc\00" -@fld.str.177 = private constant [8 x i8] c"dealloc\00" -@field_names.178 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.175, i64 3 }, { ptr, i64 } { ptr @fld.str.176, i64 5 }, { ptr, i64 } { ptr @fld.str.177, i64 7 }] -@str.179 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.180 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 -@str.181 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.182 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.183 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.184 = private constant [6 x i8] c"first\00" -@fld.str.185 = private constant [10 x i8] c"end_index\00" -@fld.str.186 = private constant [7 x i8] c"parent\00" -@field_names.187 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.184, i64 5 }, { ptr, i64 } { ptr @fld.str.185, i64 9 }, { ptr, i64 } { ptr @fld.str.186, i64 6 }] -@str.188 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.189 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 -@str.190 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.191 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.192 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.193 = private constant [4 x i8] c"buf\00" -@fld.str.194 = private constant [4 x i8] c"len\00" -@fld.str.195 = private constant [4 x i8] c"pos\00" -@field_names.196 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.193, i64 3 }, { ptr, i64 } { ptr @fld.str.194, i64 3 }, { ptr, i64 } { ptr @fld.str.195, i64 3 }] -@str.197 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.198 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 -@str.199 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.200 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.201 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.202 = private constant [7 x i8] c"parent\00" -@fld.str.203 = private constant [12 x i8] c"alloc_count\00" -@fld.str.204 = private constant [14 x i8] c"dealloc_count\00" -@fld.str.205 = private constant [18 x i8] c"total_alloc_bytes\00" -@field_names.206 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.202, i64 6 }, { ptr, i64 } { ptr @fld.str.203, i64 11 }, { ptr, i64 } { ptr @fld.str.204, i64 13 }, { ptr, i64 } { ptr @fld.str.205, i64 17 }] -@str.207 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.208 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 -@str.209 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.210 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.211 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.212 = private constant [10 x i8] c"allocator\00" -@fld.str.213 = private constant [5 x i8] c"data\00" -@field_names.214 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.212, i64 9 }, { ptr, i64 } { ptr @fld.str.213, i64 4 }] -@str.215 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.216 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 -@str.217 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.218 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.219 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.220 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.221 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.222 = private unnamed_addr constant [9 x i8] c"NSString\00", align 1 -@str.223 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.224 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.225 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@field_names.226 = private constant [0 x { ptr, i64 }] zeroinitializer -@str.227 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.228 = private unnamed_addr constant [7 x i8] c"Triple\00", align 1 -@str.229 = private unnamed_addr constant [2 x i8] c"{\00", align 1 -@str.230 = private unnamed_addr constant [2 x i8] c"}\00", align 1 -@str.231 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@fld.str.232 = private constant [2 x i8] c"a\00" -@fld.str.233 = private constant [2 x i8] c"b\00" -@fld.str.234 = private constant [2 x i8] c"c\00" -@field_names.235 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.232, i64 1 }, { ptr, i64 } { ptr @fld.str.233, i64 1 }, { ptr, i64 } { ptr @fld.str.234, i64 1 }] -@str.236 = private unnamed_addr constant [3 x i8] c": \00", align 1 -@str.237 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.238 = private constant [6 x i8] c"macos\00" -@fld.str.239 = private constant [6 x i8] c"linux\00" -@fld.str.240 = private constant [8 x i8] c"windows\00" -@fld.str.241 = private constant [5 x i8] c"wasm\00" -@fld.str.242 = private constant [4 x i8] c"ios\00" -@fld.str.243 = private constant [8 x i8] c"android\00" -@fld.str.244 = private constant [8 x i8] c"unknown\00" -@field_names.245 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.238, i64 5 }, { ptr, i64 } { ptr @fld.str.239, i64 5 }, { ptr, i64 } { ptr @fld.str.240, i64 7 }, { ptr, i64 } { ptr @fld.str.241, i64 4 }, { ptr, i64 } { ptr @fld.str.242, i64 3 }, { ptr, i64 } { ptr @fld.str.243, i64 7 }, { ptr, i64 } { ptr @fld.str.244, i64 7 }] -@str.246 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.247 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.248 = private unnamed_addr constant [2 x i8] c".\00", align 1 -@fld.str.249 = private constant [8 x i8] c"aarch64\00" -@fld.str.250 = private constant [7 x i8] c"x86_64\00" -@fld.str.251 = private constant [7 x i8] c"wasm32\00" -@fld.str.252 = private constant [7 x i8] c"wasm64\00" -@fld.str.253 = private constant [8 x i8] c"unknown\00" -@field_names.254 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.249, i64 7 }, { ptr, i64 } { ptr @fld.str.250, i64 6 }, { ptr, i64 } { ptr @fld.str.251, i64 6 }, { ptr, i64 } { ptr @fld.str.252, i64 6 }, { ptr, i64 } { ptr @fld.str.253, i64 7 }] -@str.255 = private unnamed_addr constant [2 x i8] c"(\00", align 1 -@str.256 = private unnamed_addr constant [2 x i8] c")\00", align 1 -@str.257 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.258 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.259 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.260 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.261 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.262 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.263 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.264 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.265 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.266 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.267 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.268 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.269 = private unnamed_addr constant [2 x i8] c"[\00", align 1 -@str.270 = private unnamed_addr constant [2 x i8] c"]\00", align 1 -@str.271 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.272 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.273 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 -@str.274 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.275 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.276 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 -@str.277 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.278 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.279 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 -@str.280 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.281 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.282 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 -@str.283 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.284 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.285 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 -@str.286 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.287 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.288 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 -@str.289 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.290 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.291 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 -@str.292 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.293 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.294 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 -@str.295 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.296 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.297 = private unnamed_addr constant [10 x i8] c"*NSString\00", align 1 -@str.298 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.299 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.300 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 -@str.301 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.302 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.303 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 -@str.304 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.305 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.306 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 -@str.307 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.308 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.309 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 -@str.310 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.311 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.312 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 -@str.313 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.314 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.315 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 -@str.316 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.317 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.318 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 -@str.319 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.320 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.321 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 -@str.322 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.323 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.324 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 -@str.325 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.326 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.327 = private unnamed_addr constant [8 x i8] c"*Triple\00", align 1 -@str.328 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 -@str.329 = private unnamed_addr constant [5 x i8] c"null\00", align 1 -@str.330 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 -@str.331 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@fld.str.384 = private constant [5 x i8] c"line\00" +@fld.str.385 = private constant [4 x i8] c"col\00" +@fld.str.386 = 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.384, i64 4 }, { ptr, i64 } { ptr @fld.str.385, i64 3 }, { ptr, i64 } { ptr @fld.str.386, i64 4 }] +@str.387 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.388 = private unnamed_addr constant [11 x i8] c"CAllocator\00", align 1 +@str.389 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.390 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.391 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.392 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.393 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.394 = private unnamed_addr constant [4 x i8] c"GPA\00", align 1 +@str.395 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.396 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.397 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.398 = private constant [12 x i8] c"alloc_count\00" +@field_names.399 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.398, i64 11 }] +@str.400 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.401 = private unnamed_addr constant [11 x i8] c"ArenaChunk\00", align 1 +@str.402 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.403 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.404 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.405 = private constant [5 x i8] c"next\00" +@fld.str.406 = private constant [4 x i8] c"cap\00" +@field_names.407 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.405, i64 4 }, { ptr, i64 } { ptr @fld.str.406, i64 3 }] +@str.408 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.409 = private unnamed_addr constant [10 x i8] c"Allocator\00", align 1 +@str.410 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.411 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.412 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.413 = private constant [4 x i8] c"ctx\00" +@fld.str.414 = private constant [6 x i8] c"alloc\00" +@fld.str.415 = private constant [8 x i8] c"dealloc\00" +@field_names.416 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.413, i64 3 }, { ptr, i64 } { ptr @fld.str.414, i64 5 }, { ptr, i64 } { ptr @fld.str.415, i64 7 }] +@str.417 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.418 = private unnamed_addr constant [6 x i8] c"Arena\00", align 1 +@str.419 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.420 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.421 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.422 = private constant [6 x i8] c"first\00" +@fld.str.423 = private constant [10 x i8] c"end_index\00" +@fld.str.424 = private constant [7 x i8] c"parent\00" +@field_names.425 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.422, i64 5 }, { ptr, i64 } { ptr @fld.str.423, i64 9 }, { ptr, i64 } { ptr @fld.str.424, i64 6 }] +@str.426 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.427 = private unnamed_addr constant [9 x i8] c"BufAlloc\00", align 1 +@str.428 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.429 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.430 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.431 = private constant [4 x i8] c"buf\00" +@fld.str.432 = private constant [4 x i8] c"len\00" +@fld.str.433 = private constant [4 x i8] c"pos\00" +@field_names.434 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.431, i64 3 }, { ptr, i64 } { ptr @fld.str.432, i64 3 }, { ptr, i64 } { ptr @fld.str.433, i64 3 }] +@str.435 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.436 = private unnamed_addr constant [18 x i8] c"TrackingAllocator\00", align 1 +@str.437 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.438 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.439 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.440 = private constant [7 x i8] c"parent\00" +@fld.str.441 = private constant [12 x i8] c"alloc_count\00" +@fld.str.442 = private constant [14 x i8] c"dealloc_count\00" +@fld.str.443 = private constant [18 x i8] c"total_alloc_bytes\00" +@field_names.444 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.440, i64 6 }, { ptr, i64 } { ptr @fld.str.441, i64 11 }, { ptr, i64 } { ptr @fld.str.442, i64 13 }, { ptr, i64 } { ptr @fld.str.443, i64 17 }] +@str.445 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.446 = private unnamed_addr constant [8 x i8] c"Context\00", align 1 +@str.447 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.448 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.449 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.450 = private constant [10 x i8] c"allocator\00" +@fld.str.451 = private constant [5 x i8] c"data\00" +@field_names.452 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.450, i64 9 }, { ptr, i64 } { ptr @fld.str.451, i64 4 }] +@str.453 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.454 = private unnamed_addr constant [5 x i8] c"File\00", align 1 +@str.455 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.456 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.457 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.458 = private constant [3 x i8] c"fd\00" +@field_names.459 = private constant [1 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.458, i64 2 }] +@str.460 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.461 = private unnamed_addr constant [11 x i8] c"TraceFrame\00", align 1 +@str.462 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.463 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.464 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.465 = private constant [5 x i8] c"file\00" +@fld.str.466 = private constant [5 x i8] c"line\00" +@fld.str.467 = private constant [4 x i8] c"col\00" +@fld.str.468 = private constant [5 x i8] c"func\00" +@fld.str.469 = private constant [10 x i8] c"line_text\00" +@field_names.470 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.465, i64 4 }, { ptr, i64 } { ptr @fld.str.466, i64 4 }, { ptr, i64 } { ptr @fld.str.467, i64 3 }, { ptr, i64 } { ptr @fld.str.468, i64 4 }, { ptr, i64 } { ptr @fld.str.469, i64 9 }] +@str.471 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.472 = private unnamed_addr constant [14 x i8] c"ProcessResult\00", align 1 +@str.473 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.474 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.475 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.476 = private constant [10 x i8] c"exit_code\00" +@fld.str.477 = private constant [7 x i8] c"stdout\00" +@field_names.478 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.476, i64 9 }, { ptr, i64 } { ptr @fld.str.477, i64 6 }] +@str.479 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.480 = private unnamed_addr constant [9 x i8] c"SockAddr\00", align 1 +@str.481 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.482 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.483 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.484 = private constant [8 x i8] c"sin_len\00" +@fld.str.485 = private constant [11 x i8] c"sin_family\00" +@fld.str.486 = private constant [9 x i8] c"sin_port\00" +@fld.str.487 = private constant [9 x i8] c"sin_addr\00" +@fld.str.488 = private constant [9 x i8] c"sin_zero\00" +@field_names.489 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.484, i64 7 }, { ptr, i64 } { ptr @fld.str.485, i64 10 }, { ptr, i64 } { ptr @fld.str.486, i64 8 }, { ptr, i64 } { ptr @fld.str.487, i64 8 }, { ptr, i64 } { ptr @fld.str.488, i64 8 }] +@str.490 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.491 = private unnamed_addr constant [6 x i8] c"Array\00", align 1 +@str.492 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.493 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.494 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.495 = private constant [6 x i8] c"items\00" +@fld.str.496 = private constant [4 x i8] c"len\00" +@fld.str.497 = private constant [4 x i8] c"cap\00" +@field_names.498 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.495, i64 5 }, { ptr, i64 } { ptr @fld.str.496, i64 3 }, { ptr, i64 } { ptr @fld.str.497, i64 3 }] +@str.499 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.500 = private unnamed_addr constant [7 x i8] c"Object\00", align 1 +@str.501 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.502 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.503 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.504 = private constant [6 x i8] c"items\00" +@fld.str.505 = private constant [4 x i8] c"len\00" +@fld.str.506 = private constant [4 x i8] c"cap\00" +@field_names.507 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.504, i64 5 }, { ptr, i64 } { ptr @fld.str.505, i64 3 }, { ptr, i64 } { ptr @fld.str.506, i64 3 }] +@str.508 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.509 = private unnamed_addr constant [7 x i8] c"Member\00", align 1 +@str.510 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.511 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.512 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.513 = private constant [4 x i8] c"key\00" +@fld.str.514 = private constant [4 x i8] c"val\00" +@field_names.515 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.513, i64 3 }, { ptr, i64 } { ptr @fld.str.514, i64 3 }] +@str.516 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.517 = private unnamed_addr constant [5 x i8] c"Sink\00", align 1 +@str.518 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.519 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.520 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.521 = private constant [4 x i8] c"dst\00" +@fld.str.522 = private constant [4 x i8] c"pos\00" +@fld.str.523 = private constant [5 x i8] c"file\00" +@field_names.524 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.521, i64 3 }, { ptr, i64 } { ptr @fld.str.522, i64 3 }, { ptr, i64 } { ptr @fld.str.523, i64 4 }] +@str.525 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.526 = private unnamed_addr constant [7 x i8] c"Parser\00", align 1 +@str.527 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.528 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.529 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.530 = private constant [4 x i8] c"src\00" +@fld.str.531 = private constant [4 x i8] c"pos\00" +@fld.str.532 = private constant [6 x i8] c"alloc\00" +@field_names.533 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.530, i64 3 }, { ptr, i64 } { ptr @fld.str.531, i64 3 }, { ptr, i64 } { ptr @fld.str.532, i64 5 }] +@str.534 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.535 = private unnamed_addr constant [13 x i8] c"BuildOptions\00", align 1 +@str.536 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.537 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.538 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.539 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.540 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.541 = private unnamed_addr constant [9 x i8] c"FlagSpec\00", align 1 +@str.542 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.543 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.544 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.545 = private constant [5 x i8] c"name\00" +@fld.str.546 = private constant [12 x i8] c"takes_value\00" +@fld.str.547 = private constant [9 x i8] c"required\00" +@field_names.548 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.545, i64 4 }, { ptr, i64 } { ptr @fld.str.546, i64 11 }, { ptr, i64 } { ptr @fld.str.547, i64 8 }] +@str.549 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.550 = private unnamed_addr constant [8 x i8] c"Command\00", align 1 +@str.551 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.552 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.553 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.554 = private constant [6 x i8] c"group\00" +@fld.str.555 = private constant [8 x i8] c"command\00" +@fld.str.556 = private constant [6 x i8] c"flags\00" +@field_names.557 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.554, i64 5 }, { ptr, i64 } { ptr @fld.str.555, i64 7 }, { ptr, i64 } { ptr @fld.str.556, i64 5 }] +@str.558 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.559 = private unnamed_addr constant [10 x i8] c"FlagValue\00", align 1 +@str.560 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.561 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.562 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.563 = private constant [4 x i8] c"set\00" +@fld.str.564 = private constant [6 x i8] c"value\00" +@field_names.565 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.563, i64 3 }, { ptr, i64 } { ptr @fld.str.564, i64 5 }] +@str.566 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.567 = private unnamed_addr constant [5 x i8] c"Diag\00", align 1 +@str.568 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.569 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.570 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.571 = private constant [6 x i8] c"index\00" +@fld.str.572 = private constant [6 x i8] c"token\00" +@field_names.573 = private constant [2 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.571, i64 5 }, { ptr, i64 } { ptr @fld.str.572, i64 5 }] +@str.574 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.575 = private unnamed_addr constant [7 x i8] c"Parsed\00", align 1 +@str.576 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.577 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.578 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.579 = private constant [6 x i8] c"group\00" +@fld.str.580 = private constant [8 x i8] c"command\00" +@fld.str.581 = private constant [10 x i8] c"cmd_index\00" +@fld.str.582 = private constant [5 x i8] c"json\00" +@fld.str.583 = private constant [5 x i8] c"rest\00" +@fld.str.584 = private constant [5 x i8] c"spec\00" +@fld.str.585 = private constant [7 x i8] c"values\00" +@field_names.586 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.579, i64 5 }, { ptr, i64 } { ptr @fld.str.580, i64 7 }, { ptr, i64 } { ptr @fld.str.581, i64 9 }, { ptr, i64 } { ptr @fld.str.582, i64 4 }, { ptr, i64 } { ptr @fld.str.583, i64 4 }, { ptr, i64 } { ptr @fld.str.584, i64 4 }, { ptr, i64 } { ptr @fld.str.585, i64 6 }] +@str.587 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.588 = private unnamed_addr constant [7 x i8] c"Sha256\00", align 1 +@str.589 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.590 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.591 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.592 = private constant [2 x i8] c"h\00" +@fld.str.593 = private constant [4 x i8] c"buf\00" +@fld.str.594 = private constant [8 x i8] c"buf_len\00" +@fld.str.595 = private constant [10 x i8] c"total_len\00" +@field_names.596 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.592, i64 1 }, { ptr, i64 } { ptr @fld.str.593, i64 3 }, { ptr, i64 } { ptr @fld.str.594, i64 7 }, { ptr, i64 } { ptr @fld.str.595, i64 9 }] +@str.597 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.598 = private unnamed_addr constant [9 x i8] c"NSString\00", align 1 +@str.599 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.600 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.601 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@field_names.602 = private constant [0 x { ptr, i64 }] zeroinitializer +@str.603 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.604 = private unnamed_addr constant [7 x i8] c"Triple\00", align 1 +@str.605 = private unnamed_addr constant [2 x i8] c"{\00", align 1 +@str.606 = private unnamed_addr constant [2 x i8] c"}\00", align 1 +@str.607 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@fld.str.608 = private constant [2 x i8] c"a\00" +@fld.str.609 = private constant [2 x i8] c"b\00" +@fld.str.610 = private constant [2 x i8] c"c\00" +@field_names.611 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.608, i64 1 }, { ptr, i64 } { ptr @fld.str.609, i64 1 }, { ptr, i64 } { ptr @fld.str.610, i64 1 }] +@str.612 = private unnamed_addr constant [3 x i8] c": \00", align 1 +@str.613 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.614 = private constant [5 x i8] c"read\00" +@fld.str.615 = private constant [6 x i8] c"write\00" +@fld.str.616 = private constant [7 x i8] c"append\00" +@fld.str.617 = private constant [11 x i8] c"read_write\00" +@field_names.618 = private constant [4 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.614, i64 4 }, { ptr, i64 } { ptr @fld.str.615, i64 5 }, { ptr, i64 } { ptr @fld.str.616, i64 6 }, { ptr, i64 } { ptr @fld.str.617, i64 10 }] +@str.619 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.620 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.621 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.622 = private constant [4 x i8] c"set\00" +@fld.str.623 = private constant [8 x i8] c"current\00" +@fld.str.624 = private constant [4 x i8] c"end\00" +@field_names.625 = private constant [3 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.622, i64 3 }, { ptr, i64 } { ptr @fld.str.623, i64 7 }, { ptr, i64 } { ptr @fld.str.624, i64 3 }] +@str.626 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.627 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.628 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.629 = private constant [6 x i8] c"null_\00" +@fld.str.630 = private constant [6 x i8] c"bool_\00" +@fld.str.631 = private constant [5 x i8] c"int_\00" +@fld.str.632 = private constant [4 x i8] c"str\00" +@fld.str.633 = private constant [6 x i8] c"array\00" +@fld.str.634 = private constant [7 x i8] c"object\00" +@field_names.635 = private constant [6 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.629, i64 5 }, { ptr, i64 } { ptr @fld.str.630, i64 5 }, { ptr, i64 } { ptr @fld.str.631, i64 4 }, { ptr, i64 } { ptr @fld.str.632, i64 3 }, { ptr, i64 } { ptr @fld.str.633, i64 5 }, { ptr, i64 } { ptr @fld.str.634, i64 6 }] +@str.636 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.637 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.638 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.639 = private constant [6 x i8] c"macos\00" +@fld.str.640 = private constant [6 x i8] c"linux\00" +@fld.str.641 = private constant [8 x i8] c"windows\00" +@fld.str.642 = private constant [5 x i8] c"wasm\00" +@fld.str.643 = private constant [4 x i8] c"ios\00" +@fld.str.644 = private constant [8 x i8] c"android\00" +@fld.str.645 = private constant [8 x i8] c"unknown\00" +@field_names.646 = private constant [7 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.639, i64 5 }, { ptr, i64 } { ptr @fld.str.640, i64 5 }, { ptr, i64 } { ptr @fld.str.641, i64 7 }, { ptr, i64 } { ptr @fld.str.642, i64 4 }, { ptr, i64 } { ptr @fld.str.643, i64 3 }, { ptr, i64 } { ptr @fld.str.644, i64 7 }, { ptr, i64 } { ptr @fld.str.645, i64 7 }] +@str.647 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.648 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.649 = private unnamed_addr constant [2 x i8] c".\00", align 1 +@fld.str.650 = private constant [8 x i8] c"aarch64\00" +@fld.str.651 = private constant [7 x i8] c"x86_64\00" +@fld.str.652 = private constant [7 x i8] c"wasm32\00" +@fld.str.653 = private constant [7 x i8] c"wasm64\00" +@fld.str.654 = private constant [8 x i8] c"unknown\00" +@field_names.655 = private constant [5 x { ptr, i64 }] [{ ptr, i64 } { ptr @fld.str.650, i64 7 }, { ptr, i64 } { ptr @fld.str.651, i64 6 }, { ptr, i64 } { ptr @fld.str.652, i64 6 }, { ptr, i64 } { ptr @fld.str.653, i64 6 }, { ptr, i64 } { ptr @fld.str.654, i64 7 }] +@str.656 = private unnamed_addr constant [2 x i8] c"(\00", align 1 +@str.657 = private unnamed_addr constant [2 x i8] c")\00", align 1 +@str.658 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.659 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.660 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.661 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.662 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.663 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.664 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.665 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.666 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.667 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.668 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.669 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.670 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.671 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.672 = private unnamed_addr constant [3 x i8] c", \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 +@str.676 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.677 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.678 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.679 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.680 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.681 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.684 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.685 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.686 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.687 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.688 = private unnamed_addr constant [2 x i8] c"[\00", align 1 +@str.689 = private unnamed_addr constant [2 x i8] c"]\00", align 1 +@str.690 = private unnamed_addr constant [3 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 [2 x i8] c"]\00", align 1 +@str.693 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.694 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.695 = private unnamed_addr constant [6 x i8] c"*void\00", align 1 +@str.696 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.697 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.698 = private unnamed_addr constant [12 x i8] c"*CAllocator\00", align 1 +@str.699 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.700 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.701 = private unnamed_addr constant [5 x i8] c"*GPA\00", align 1 +@str.702 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.703 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.704 = private unnamed_addr constant [12 x i8] c"*ArenaChunk\00", align 1 +@str.705 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.706 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.707 = private unnamed_addr constant [7 x i8] c"*Arena\00", align 1 +@str.708 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.709 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.710 = private unnamed_addr constant [6 x i8] c"[*]u8\00", align 1 +@str.711 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.712 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.713 = private unnamed_addr constant [10 x i8] c"*BufAlloc\00", align 1 +@str.714 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.715 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.716 = private unnamed_addr constant [19 x i8] c"*TrackingAllocator\00", align 1 +@str.717 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.718 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.719 = private unnamed_addr constant [6 x i8] c"*File\00", align 1 +@str.720 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.721 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.722 = private unnamed_addr constant [4 x i8] c"*u8\00", align 1 +@str.723 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.724 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.725 = private unnamed_addr constant [5 x i8] c"*s32\00", align 1 +@str.726 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.727 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.728 = private unnamed_addr constant [10 x i8] c"*SockAddr\00", align 1 +@str.729 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.730 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.731 = private unnamed_addr constant [5 x i8] c"*u32\00", align 1 +@str.732 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.733 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.734 = private unnamed_addr constant [9 x i8] c"[*]Value\00", align 1 +@str.735 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.736 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.737 = private unnamed_addr constant [7 x i8] c"*Array\00", align 1 +@str.738 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.739 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.740 = private unnamed_addr constant [10 x i8] c"[*]Member\00", align 1 +@str.741 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.742 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.743 = private unnamed_addr constant [8 x i8] c"*Object\00", align 1 +@str.744 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.745 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.746 = private unnamed_addr constant [6 x i8] c"*Sink\00", align 1 +@str.747 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.748 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.749 = private unnamed_addr constant [8 x i8] c"*Parser\00", align 1 +@str.750 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.751 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.752 = private unnamed_addr constant [5 x i8] c"*s64\00", align 1 +@str.753 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.754 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.755 = private unnamed_addr constant [8 x i8] c"*Parsed\00", align 1 +@str.756 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.757 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.758 = private unnamed_addr constant [6 x i8] c"*Diag\00", align 1 +@str.759 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.760 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.761 = private unnamed_addr constant [8 x i8] c"*Sha256\00", align 1 +@str.762 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.763 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.764 = private unnamed_addr constant [10 x i8] c"*NSString\00", align 1 +@str.765 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.766 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.767 = private unnamed_addr constant [13 x i8] c"**CAllocator\00", align 1 +@str.768 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.769 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.770 = private unnamed_addr constant [7 x i8] c"**void\00", align 1 +@str.771 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.772 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.773 = private unnamed_addr constant [6 x i8] c"*bool\00", align 1 +@str.774 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.775 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.776 = private unnamed_addr constant [8 x i8] c"*string\00", align 1 +@str.777 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.778 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.779 = private unnamed_addr constant [5 x i8] c"*Any\00", align 1 +@str.780 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.781 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.782 = private unnamed_addr constant [8 x i8] c"*[1]Any\00", align 1 +@str.783 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.784 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.785 = private unnamed_addr constant [7 x i8] c"*[]Any\00", align 1 +@str.786 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.787 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.788 = private unnamed_addr constant [8 x i8] c"*Triple\00", align 1 +@str.789 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.790 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.791 = private unnamed_addr constant [8 x i8] c"*[3]Any\00", align 1 +@str.792 = private unnamed_addr constant [4 x i8] c"@0x\00", align 1 +@str.793 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.794 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.795 = private unnamed_addr constant [5 x i8] c"null\00", align 1 +@str.796 = private unnamed_addr constant [5 x i8] c"null\00", align 1 @OBJC_METH_VAR_NAME_ = private unnamed_addr constant [12 x i8] c"tripleValue\00" @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__sx_objc_selector_init, ptr null }] @@ -554,7 +877,7 @@ entry: br i1 %icmp, label %if.then.56, label %if.merge.57 if.then.56: ; preds = %entry - ret { ptr, i64 } { ptr @str.21, i64 1 } + ret { ptr, i64 } { ptr @str.162, i64 1 } if.merge.57: ; preds = %entry %loadN = load i64, ptr %alloca, align 8 @@ -681,7 +1004,7 @@ if.else.79: ; preds = %entry br label %if.merge.80 if.merge.80: ; preds = %if.else.79, %if.then.78 - %bp = phi { ptr, i64 } [ { ptr @str.22, i64 4 }, %if.then.78 ], [ { ptr @str.23, i64 5 }, %if.else.79 ] + %bp = phi { ptr, i64 } [ { ptr @str.163, i64 4 }, %if.then.78 ], [ { ptr @str.164, i64 5 }, %if.else.79 ] ret { ptr, i64 } %bp } @@ -850,38 +1173,38 @@ entry: %loadN = load i64, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 %loadN, ptr %allocaN, align 8 - br label %while.hdr.237 + br label %while.hdr.391 -while.hdr.237: ; preds = %if.merge.242, %entry +while.hdr.391: ; preds = %if.merge.396, %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.238, label %while.exit.239 + br i1 %icmp, label %while.body.392, label %while.exit.393 -while.body.238: ; preds = %while.hdr.237 +while.body.392: ; preds = %while.hdr.391 %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.240, label %if.else.241 + br i1 %icmpN, label %if.then.394, label %if.else.395 -while.exit.239: ; preds = %while.hdr.237 +while.exit.393: ; preds = %while.hdr.391 ret void -if.then.240: ; preds = %while.body.238 +if.then.394: ; preds = %while.body.392 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 48 - br label %if.merge.242 + br label %if.merge.396 -if.else.241: ; preds = %while.body.238 +if.else.395: ; preds = %while.body.392 %loadN = load i64, ptr %allocaN, align 8 %sub = sub i64 %loadN, 10 %addN = add i64 %sub, 97 - br label %if.merge.242 + br label %if.merge.396 -if.merge.242: ; preds = %if.else.241, %if.then.240 - %bp = phi i64 [ %addN, %if.then.240 ], [ %addN, %if.else.241 ] +if.merge.396: ; preds = %if.else.395, %if.then.394 + %bp = phi i64 [ %addN, %if.then.394 ], [ %addN, %if.else.395 ] %loadN = load i64, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %igp.data = extractvalue { ptr, i64 } %loadN, 0 @@ -894,7 +1217,7 @@ if.merge.242: ; preds = %if.else.241, %if.th %loadN = load i64, ptr %allocaN, align 8 %subN = sub i64 %loadN, 1 store i64 %subN, ptr %allocaN, align 8 - br label %while.hdr.237 + br label %while.hdr.391 } ; Function Attrs: nounwind @@ -1012,12 +1335,12 @@ entry: 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.235, label %if.merge.236 + br i1 %icmp, label %if.then.389, label %if.merge.390 -if.then.235: ; preds = %entry - ret { ptr, i64 } { ptr @str.24, i64 1 } +if.then.389: ; preds = %entry + ret { ptr, i64 } { ptr @str.165, i64 1 } -if.merge.236: ; preds = %entry +if.merge.390: ; 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 @@ -1048,14 +1371,14 @@ if.merge.236: ; preds = %entry %ig.val21 = load i64, ptr %ig.ptr20, align 8 call void @hex_group(ptr %0, { ptr, i64 } %loadN, i64 12, i64 %ig.val21) store i64 0, ptr %allocaN, align 8 - br label %while.hdr.243 + br label %while.hdr.397 -while.hdr.243: ; preds = %if.merge.247, %if.merge.236 +while.hdr.397: ; preds = %if.merge.401, %if.merge.390 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp slt i64 %loadN, 15 - br i1 %icmpN, label %while.body.244, label %while.exit.245 + br i1 %icmpN, label %while.body.398, label %while.exit.399 -while.body.244: ; preds = %while.hdr.243 +while.body.398: ; preds = %while.hdr.397 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %ig.data = extractvalue { ptr, i64 } %loadN, 0 @@ -1063,9 +1386,9 @@ while.body.244: ; preds = %while.hdr.243 %ig.val28 = load i8, ptr %ig.ptr27, align 1 %cmp.ext = zext i8 %ig.val28 to i64 %icmpN = icmp ne i64 %cmp.ext, 48 - br i1 %icmpN, label %if.then.246, label %if.merge.247 + br i1 %icmpN, label %if.then.400, label %if.merge.401 -while.exit.245: ; preds = %if.then.246, %while.hdr.243 +while.exit.399: ; preds = %if.then.400, %while.hdr.397 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -1073,14 +1396,14 @@ while.exit.245: ; preds = %if.then.246, %while %callN = call { ptr, i64 } @substr(ptr %0, { ptr, i64 } %loadN, i64 %loadN, i64 %sub) ret { ptr, i64 } %callN -if.then.246: ; preds = %while.body.244 - br label %while.exit.245 +if.then.400: ; preds = %while.body.398 + br label %while.exit.399 -if.merge.247: ; preds = %while.body.244 +if.merge.401: ; preds = %while.body.398 %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.243 + br label %while.hdr.397 } ; Function Attrs: nounwind @@ -1158,12 +1481,14 @@ entry: %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.25, i64 3 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.166, i64 3 }, ptr %allocaN, align 8 %load = load { i64, i64 }, ptr %alloca, align 8 %sg = extractvalue { i64, i64 } %load, 0 %ba.val = insertvalue { i64, i64 } { i64 13, i64 undef }, i64 %sg, 1 @@ -1197,15 +1522,43 @@ entry: i64 32, label %match.arm.43 i64 34, label %match.arm.43 i64 39, label %match.arm.43 - i64 41, label %match.arm.43 - i64 44, label %match.arm.43 + i64 43, label %match.arm.43 + i64 45, label %match.arm.43 + i64 48, label %match.arm.43 + i64 52, label %match.arm.43 + i64 53, label %match.arm.43 + i64 55, label %match.arm.43 + i64 61, label %match.arm.43 + i64 66, label %match.arm.43 + i64 72, label %match.arm.43 + i64 76, label %match.arm.43 + i64 78, label %match.arm.43 + i64 79, label %match.arm.43 + i64 80, label %match.arm.43 + i64 82, label %match.arm.43 + i64 89, label %match.arm.43 + i64 93, label %match.arm.43 + i64 96, label %match.arm.43 i64 37, label %match.arm.44 i64 38, label %match.arm.44 + i64 54, label %match.arm.44 + i64 70, label %match.arm.44 + i64 71, label %match.arm.44 + i64 51, label %match.arm.45 + i64 64, label %match.arm.45 + i64 75, label %match.arm.45 i64 35, label %match.arm.47 - i64 52, label %match.arm.47 - i64 57, label %match.arm.47 + i64 81, label %match.arm.47 + i64 87, label %match.arm.47 + i64 88, label %match.arm.47 + i64 92, label %match.arm.47 + i64 103, label %match.arm.47 + i64 107, label %match.arm.47 i64 36, label %match.arm.48 - i64 50, label %match.arm.48 + i64 60, label %match.arm.48 + i64 77, label %match.arm.48 + i64 85, label %match.arm.48 + i64 101, label %match.arm.48 i64 18, label %match.arm.49 i64 21, label %match.arm.49 i64 23, label %match.arm.49 @@ -1214,27 +1567,44 @@ entry: i64 29, label %match.arm.49 i64 31, label %match.arm.49 i64 33, label %match.arm.49 - i64 42, label %match.arm.49 - i64 45, label %match.arm.49 - i64 46, label %match.arm.49 + i64 40, label %match.arm.49 + i64 44, label %match.arm.49 i64 47, label %match.arm.49 - i64 48, label %match.arm.49 i64 49, label %match.arm.49 - i64 51, label %match.arm.49 - i64 53, label %match.arm.49 - i64 54, label %match.arm.49 - i64 55, label %match.arm.49 + i64 50, label %match.arm.49 i64 56, label %match.arm.49 + i64 57, label %match.arm.49 i64 58, label %match.arm.49 + i64 59, label %match.arm.49 + i64 62, label %match.arm.49 + i64 67, label %match.arm.49 + i64 74, label %match.arm.49 + i64 83, label %match.arm.49 + i64 86, label %match.arm.49 + i64 90, label %match.arm.49 + i64 94, label %match.arm.49 + i64 97, label %match.arm.49 + i64 98, label %match.arm.49 + i64 99, label %match.arm.49 + i64 100, label %match.arm.49 + i64 102, label %match.arm.49 + i64 104, label %match.arm.49 + i64 105, label %match.arm.49 + i64 106, label %match.arm.49 + i64 108, label %match.arm.49 + i64 41, label %match.arm.50 + i64 42, label %match.arm.50 + i64 46, label %match.arm.50 + i64 91, label %match.arm.50 i64 13, label %match.arm.51 ] -match.merge.37: ; preds = %dispatch.merge.210, %dispatch.merge.196, %dispatch.merge.176, %dispatch.merge.168, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.41, %match.arm.40, %match.arm.38 +match.merge.37: ; preds = %dispatch.merge.498, %dispatch.merge.351, %dispatch.merge.319, %dispatch.merge.275, %dispatch.merge.258, %dispatch.merge.94, %float.merge.83, %if.merge.55, %match.unr.52, %match.arm.51, %match.arm.45, %match.arm.41, %match.arm.40, %match.arm.38 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN match.arm.38: ; preds = %entry - store { ptr, i64 } { ptr @str.26, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.167, i64 0 }, ptr %allocaN, align 8 br label %match.merge.37 match.arm.39: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry @@ -1243,7 +1613,7 @@ match.arm.39: ; preds = %entry, %entry, %ent %refl.val = extractvalue { i64, i64 } %loadN, 1 %refl.istype = icmp eq i64 %refl.tag, 13 %refl.tid = select i1 %refl.istype, i64 %refl.val, i64 %refl.tag - %tiu.gep = getelementptr inbounds [86 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid + %tiu.gep = getelementptr inbounds [169 x i1], ptr @__sx_type_is_unsigned, i64 0, i64 %refl.tid %tiu.load = load i1, ptr %tiu.gep, align 1 br i1 %tiu.load, label %if.then.53, label %if.else.54 @@ -1271,7 +1641,7 @@ match.arm.42: ; preds = %entry, %entry %icmp = icmp eq i64 %sgN, 10 br i1 %icmp, label %fN.unbox.81, label %fN.unbox.82 -match.arm.43: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.43: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw16 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 @@ -1286,81 +1656,136 @@ match.arm.43: ; preds = %entry, %entry, %ent i64 32, label %dispatch.case.103 i64 34, label %dispatch.case.104 i64 39, label %dispatch.case.105 - i64 41, label %dispatch.case.106 - i64 44, label %dispatch.case.107 + i64 43, label %dispatch.case.106 + i64 45, label %dispatch.case.107 + i64 48, label %dispatch.case.108 + i64 52, label %dispatch.case.109 + i64 53, label %dispatch.case.110 + i64 55, label %dispatch.case.111 + i64 61, label %dispatch.case.112 + i64 66, label %dispatch.case.113 + i64 72, label %dispatch.case.114 + i64 76, label %dispatch.case.115 + i64 78, label %dispatch.case.116 + i64 79, label %dispatch.case.117 + i64 80, label %dispatch.case.118 + i64 82, label %dispatch.case.119 + i64 89, label %dispatch.case.120 + i64 93, label %dispatch.case.121 + i64 96, label %dispatch.case.122 ] -match.arm.44: ; preds = %entry, %entry +match.arm.44: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 %ua.raw20 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw20, label %dispatch.default.169 [ - i64 37, label %dispatch.case.170 - i64 38, label %dispatch.case.171 + switch i64 %ua.raw20, label %dispatch.default.259 [ + i64 37, label %dispatch.case.260 + i64 38, label %dispatch.case.261 + i64 54, label %dispatch.case.262 + i64 70, label %dispatch.case.263 + i64 71, label %dispatch.case.264 ] -match.arm.45: ; No predecessors! - unreachable +match.arm.45: ; preds = %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %alloca, align 8 + %ua.raw25 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw25 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 [14 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.37 match.arm.46: ; No predecessors! unreachable -match.arm.47: ; preds = %entry, %entry, %entry +match.arm.47: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw24 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw29 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw24, label %dispatch.default.177 [ - i64 35, label %dispatch.case.178 - i64 52, label %dispatch.case.179 - i64 57, label %dispatch.case.180 + switch i64 %ua.raw29, label %dispatch.default.276 [ + i64 35, label %dispatch.case.277 + i64 81, label %dispatch.case.278 + i64 87, label %dispatch.case.279 + i64 88, label %dispatch.case.280 + i64 92, label %dispatch.case.281 + i64 103, label %dispatch.case.282 + i64 107, label %dispatch.case.283 ] -match.arm.48: ; preds = %entry, %entry +match.arm.48: ; preds = %entry, %entry, %entry, %entry, %entry %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw28 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw33 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw28, label %dispatch.default.197 [ - i64 36, label %dispatch.case.198 - i64 50, label %dispatch.case.199 + switch i64 %ua.raw33, label %dispatch.default.320 [ + i64 36, label %dispatch.case.321 + i64 60, label %dispatch.case.322 + i64 77, label %dispatch.case.323 + i64 85, label %dispatch.case.324 + i64 101, label %dispatch.case.325 ] -match.arm.49: ; preds = %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry, %entry +match.arm.49: ; 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 %loadN = load { i64, i64 }, ptr %allocaN, align 8 - %ua.raw32 = extractvalue { i64, i64 } %loadN, 1 + %ua.raw37 = extractvalue { i64, i64 } %loadN, 1 %loadN = load { i64, i64 }, ptr %alloca, align 8 - switch i64 %ua.raw32, label %dispatch.default.211 [ - i64 18, label %dispatch.case.212 - i64 21, label %dispatch.case.213 - i64 23, label %dispatch.case.214 - i64 25, label %dispatch.case.215 - i64 28, label %dispatch.case.216 - i64 29, label %dispatch.case.217 - i64 31, label %dispatch.case.218 - i64 33, label %dispatch.case.219 - i64 42, label %dispatch.case.220 - i64 45, label %dispatch.case.221 - i64 46, label %dispatch.case.222 - i64 47, label %dispatch.case.223 - i64 48, label %dispatch.case.224 - i64 49, label %dispatch.case.225 - i64 51, label %dispatch.case.226 - i64 53, label %dispatch.case.227 - i64 54, label %dispatch.case.228 - i64 55, label %dispatch.case.229 - i64 56, label %dispatch.case.230 - i64 58, label %dispatch.case.231 + switch i64 %ua.raw37, label %dispatch.default.352 [ + i64 18, label %dispatch.case.353 + i64 21, label %dispatch.case.354 + i64 23, label %dispatch.case.355 + i64 25, label %dispatch.case.356 + i64 28, label %dispatch.case.357 + i64 29, label %dispatch.case.358 + i64 31, label %dispatch.case.359 + i64 33, label %dispatch.case.360 + i64 40, label %dispatch.case.361 + i64 44, label %dispatch.case.362 + i64 47, label %dispatch.case.363 + i64 49, label %dispatch.case.364 + i64 50, label %dispatch.case.365 + i64 56, label %dispatch.case.366 + i64 57, label %dispatch.case.367 + i64 58, label %dispatch.case.368 + i64 59, label %dispatch.case.369 + i64 62, label %dispatch.case.370 + i64 67, label %dispatch.case.371 + i64 74, label %dispatch.case.372 + i64 83, label %dispatch.case.373 + i64 86, label %dispatch.case.374 + i64 90, label %dispatch.case.375 + i64 94, label %dispatch.case.376 + i64 97, label %dispatch.case.377 + i64 98, label %dispatch.case.378 + i64 99, label %dispatch.case.379 + i64 100, label %dispatch.case.380 + i64 102, label %dispatch.case.381 + i64 104, label %dispatch.case.382 + i64 105, label %dispatch.case.383 + i64 106, label %dispatch.case.384 + i64 108, label %dispatch.case.385 ] -match.arm.50: ; No predecessors! - unreachable +match.arm.50: ; preds = %entry, %entry, %entry, %entry + %loadN = load { i64, i64 }, ptr %allocaN, align 8 + %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 + %loadN = load { i64, i64 }, ptr %alloca, align 8 + switch i64 %ua.raw41, label %dispatch.default.499 [ + i64 41, label %dispatch.case.500 + i64 42, label %dispatch.case.501 + i64 46, label %dispatch.case.502 + i64 91, label %dispatch.case.503 + ] match.arm.51: ; preds = %entry %loadN = load { i64, i64 }, ptr %alloca, align 8 - %refl.tag36 = extractvalue { i64, i64 } %loadN, 0 - %refl.val37 = extractvalue { i64, i64 } %loadN, 1 - %refl.istype38 = icmp eq i64 %refl.tag36, 13 - %refl.tid39 = select i1 %refl.istype38, i64 %refl.val37, i64 %refl.tag36 - %tn.gep = getelementptr inbounds [86 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid39 + %refl.tag45 = extractvalue { i64, i64 } %loadN, 0 + %refl.val46 = extractvalue { i64, i64 } %loadN, 1 + %refl.istype47 = icmp eq i64 %refl.tag45, 13 + %refl.tid48 = select i1 %refl.istype47, i64 %refl.val46, i64 %refl.tag45 + %tn.gep = getelementptr inbounds [169 x { ptr, i64 }], ptr @__sx_type_names, i64 0, i64 %refl.tid48 %tn.load = load { ptr, i64 }, ptr %tn.gep, align 8 store { ptr, i64 } %tn.load, ptr %allocaN, align 8 br label %match.merge.37 @@ -1370,15 +1795,15 @@ match.unr.52: ; preds = %entry if.then.53: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw41 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw41) + %ua.raw50 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @uint_to_string(ptr %0, i64 %ua.raw50) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 if.else.54: ; preds = %match.arm.39 %loadN = load { i64, i64 }, ptr %alloca, align 8 - %ua.raw44 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw44) + %ua.raw53 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @int_to_string(ptr %0, i64 %ua.raw53) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.55 @@ -1386,16 +1811,16 @@ if.merge.55: ; preds = %if.else.54, %if.the br label %match.merge.37 f32.unbox.81: ; preds = %match.arm.42 - %ua.raw46 = extractvalue { i64, i64 } %loadN, 1 - %trN = trunc i64 %ua.raw46 to i32 + %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 + %trN = trunc i64 %ua.raw55 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.83 f64.unbox.82: ; preds = %match.arm.42 - %ua.raw47 = extractvalue { i64, i64 } %loadN, 1 - %iNd = bitcast i64 %ua.raw47 to double + %ua.raw56 = extractvalue { i64, i64 } %loadN, 1 + %iNd = bitcast i64 %ua.raw56 to double store double %iNd, ptr %allocaN, align 8 br label %float.merge.83 @@ -1405,338 +1830,666 @@ float.merge.83: ; preds = %fN.unbox.82, %fN.un store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.merge.94: ; preds = %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 +dispatch.merge.94: ; preds = %dispatch.case.122, %dispatch.case.121, %dispatch.case.120, %dispatch.case.119, %dispatch.case.118, %dispatch.case.117, %dispatch.case.116, %dispatch.case.115, %dispatch.case.114, %dispatch.case.113, %dispatch.case.112, %dispatch.case.111, %dispatch.case.110, %dispatch.case.109, %dispatch.case.108, %dispatch.case.107, %dispatch.case.106, %dispatch.case.105, %dispatch.case.104, %dispatch.case.103, %dispatch.case.102, %dispatch.case.101, %dispatch.case.100, %dispatch.case.99, %dispatch.case.98, %dispatch.case.97, %dispatch.case.96, %dispatch.default.95 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 dispatch.default.95: ; preds = %match.arm.43 - store { ptr, i64 } { ptr @str.112, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.349, i64 0 }, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.96: ; preds = %match.arm.43 - %ua.raw51 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr52 = inttoptr i64 %ua.raw51 to ptr - %ua.load53 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr52, align 8 - %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load53) + %ua.raw60 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr61 = inttoptr i64 %ua.raw60 to ptr + %ua.load62 = load { { ptr, i64 }, i32, i32, { ptr, i64 } }, ptr %ua.ptr61, align 8 + %callN = call { ptr, i64 } @struct_to_string__Source_Location(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 } } %ua.load62) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.97: ; preds = %match.arm.43 - %ua.raw55 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr56 = inttoptr i64 %ua.raw55 to ptr - %ua.load57 = load {}, ptr %ua.ptr56, align 1 - %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load57) + %ua.raw64 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr65 = inttoptr i64 %ua.raw64 to ptr + %ua.load66 = load {}, ptr %ua.ptr65, align 1 + %callN = call { ptr, i64 } @struct_to_string__CAllocator(ptr %0, {} %ua.load66) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.98: ; preds = %match.arm.43 - %ua.raw59 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr60 = inttoptr i64 %ua.raw59 to ptr - %ua.load61 = load { i64 }, ptr %ua.ptr60, align 8 - %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load61) + %ua.raw68 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr69 = inttoptr i64 %ua.raw68 to ptr + %ua.load70 = load { i64 }, ptr %ua.ptr69, align 8 + %callN = call { ptr, i64 } @struct_to_string__GPA(ptr %0, { i64 } %ua.load70) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.99: ; preds = %match.arm.43 - %ua.raw63 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr64 = inttoptr i64 %ua.raw63 to ptr - %ua.load65 = load { ptr, i64 }, ptr %ua.ptr64, align 8 - %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load65) + %ua.raw72 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr73 = inttoptr i64 %ua.raw72 to ptr + %ua.load74 = load { ptr, i64 }, ptr %ua.ptr73, align 8 + %callN = call { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } %ua.load74) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.100: ; preds = %match.arm.43 - %ua.raw67 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr68 = inttoptr i64 %ua.raw67 to ptr - %ua.load69 = load { ptr, ptr, ptr }, ptr %ua.ptr68, align 8 - %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load69) + %ua.raw76 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr77 = inttoptr i64 %ua.raw76 to ptr + %ua.load78 = load { ptr, ptr, ptr }, ptr %ua.ptr77, align 8 + %callN = call { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, ptr } %ua.load78) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.101: ; preds = %match.arm.43 - %ua.raw71 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr72 = inttoptr i64 %ua.raw71 to ptr - %ua.load73 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr72, align 8 - %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load73) + %ua.raw80 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr81 = inttoptr i64 %ua.raw80 to ptr + %ua.load82 = load { ptr, i64, { ptr, ptr, ptr } }, ptr %ua.ptr81, align 8 + %callN = call { ptr, i64 } @struct_to_string__Arena(ptr %0, { ptr, i64, { ptr, ptr, ptr } } %ua.load82) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.102: ; preds = %match.arm.43 - %ua.raw75 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr76 = inttoptr i64 %ua.raw75 to ptr - %ua.load77 = load { ptr, i64, i64 }, ptr %ua.ptr76, align 8 - %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load77) + %ua.raw84 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr85 = inttoptr i64 %ua.raw84 to ptr + %ua.load86 = load { ptr, i64, i64 }, ptr %ua.ptr85, align 8 + %callN = call { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 } %ua.load86) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.103: ; preds = %match.arm.43 - %ua.raw79 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr80 = inttoptr i64 %ua.raw79 to ptr - %ua.load81 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr80, align 8 - %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load81) + %ua.raw88 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr89 = inttoptr i64 %ua.raw88 to ptr + %ua.load90 = load { { ptr, ptr, ptr }, i64, i64, i64 }, ptr %ua.ptr89, align 8 + %callN = call { ptr, i64 } @struct_to_string__TrackingAllocator(ptr %0, { { ptr, ptr, ptr }, i64, i64, i64 } %ua.load90) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.104: ; preds = %match.arm.43 - %ua.raw83 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr84 = inttoptr i64 %ua.raw83 to ptr - %ua.load85 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr84, align 8 - %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load85) + %ua.raw92 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr93 = inttoptr i64 %ua.raw92 to ptr + %ua.load94 = load { { ptr, ptr, ptr }, ptr }, ptr %ua.ptr93, align 8 + %callN = call { ptr, i64 } @struct_to_string__Context(ptr %0, { { ptr, ptr, ptr }, ptr } %ua.load94) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.105: ; preds = %match.arm.43 - %ua.raw87 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr88 = inttoptr i64 %ua.raw87 to ptr - %ua.load89 = load {}, ptr %ua.ptr88, align 1 - %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load89) + %ua.raw96 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr97 = inttoptr i64 %ua.raw96 to ptr + %ua.load98 = load { i32 }, ptr %ua.ptr97, align 4 + %callN = call { ptr, i64 } @struct_to_string__File(ptr %0, { i32 } %ua.load98) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.106: ; preds = %match.arm.43 - %ua.raw91 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr92 = inttoptr i64 %ua.raw91 to ptr - %ua.load93 = load {}, ptr %ua.ptr92, align 1 - %callN = call { ptr, i64 } @struct_to_string__NSString(ptr %0, {} %ua.load93) + %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr101 = inttoptr i64 %ua.raw100 to ptr + %ua.load102 = load { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr101, align 8 + %callN = call { ptr, i64 } @struct_to_string__TraceFrame(ptr %0, { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %ua.load102) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 dispatch.case.107: ; preds = %match.arm.43 - %ua.raw95 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr96 = inttoptr i64 %ua.raw95 to ptr - %ua.load97 = load { i64, i64, i64 }, ptr %ua.ptr96, align 8 - %callN = call { ptr, i64 } @struct_to_string__Triple(ptr %0, { i64, i64, i64 } %ua.load97) + %ua.raw104 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr105 = inttoptr i64 %ua.raw104 to ptr + %ua.load106 = load { i32, { ptr, i64 } }, ptr %ua.ptr105, align 8 + %callN = call { ptr, i64 } @struct_to_string__ProcessResult(ptr %0, { i32, { ptr, i64 } } %ua.load106) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %dispatch.merge.94 -dispatch.merge.168: ; preds = %dispatch.case.171, %dispatch.case.170, %dispatch.default.169 +dispatch.case.108: ; preds = %match.arm.43 + %ua.raw108 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr109 = inttoptr i64 %ua.raw108 to ptr + %ua.load110 = load { i8, i8, i16, i32, i64 }, ptr %ua.ptr109, align 8 + %callN = call { ptr, i64 } @struct_to_string__SockAddr(ptr %0, { i8, i8, i16, i32, i64 } %ua.load110) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.109: ; preds = %match.arm.43 + %ua.raw112 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr113 = inttoptr i64 %ua.raw112 to ptr + %ua.load114 = load { ptr, i64, i64 }, ptr %ua.ptr113, align 8 + %callN = call { ptr, i64 } @struct_to_string__Array(ptr %0, { ptr, i64, i64 } %ua.load114) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.110: ; preds = %match.arm.43 + %ua.raw116 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr117 = inttoptr i64 %ua.raw116 to ptr + %ua.load118 = load { ptr, i64, i64 }, ptr %ua.ptr117, align 8 + %callN = call { ptr, i64 } @struct_to_string__Object(ptr %0, { ptr, i64, i64 } %ua.load118) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.111: ; preds = %match.arm.43 + %ua.raw120 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr121 = inttoptr i64 %ua.raw120 to ptr + %ua.load122 = load { { ptr, i64 }, { i64, [24 x i8] } }, ptr %ua.ptr121, align 8 + %callN = call { ptr, i64 } @struct_to_string__Member(ptr %0, { { ptr, i64 }, { i64, [24 x i8] } } %ua.load122) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.112: ; preds = %match.arm.43 + %ua.raw124 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr125 = inttoptr i64 %ua.raw124 to ptr + %ua.load126 = load { { ptr, i64 }, i64, ptr }, ptr %ua.ptr125, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sink(ptr %0, { { ptr, i64 }, i64, ptr } %ua.load126) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.113: ; preds = %match.arm.43 + %ua.raw128 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr129 = inttoptr i64 %ua.raw128 to ptr + %ua.load130 = load { { ptr, i64 }, i64, { ptr, ptr, ptr } }, ptr %ua.ptr129, align 8 + %callN = call { ptr, i64 } @struct_to_string__Parser(ptr %0, { { ptr, i64 }, i64, { ptr, ptr, ptr } } %ua.load130) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.114: ; preds = %match.arm.43 + %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr133 = inttoptr i64 %ua.raw132 to ptr + %ua.load134 = load {}, ptr %ua.ptr133, align 1 + %callN = call { ptr, i64 } @struct_to_string__BuildOptions(ptr %0, {} %ua.load134) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.115: ; preds = %match.arm.43 + %ua.raw136 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr137 = inttoptr i64 %ua.raw136 to ptr + %ua.load138 = load { { ptr, i64 }, i1, i1 }, ptr %ua.ptr137, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagSpec(ptr %0, { { ptr, i64 }, i1, i1 } %ua.load138) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.116: ; preds = %match.arm.43 + %ua.raw140 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr141 = inttoptr i64 %ua.raw140 to ptr + %ua.load142 = load { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, ptr %ua.ptr141, align 8 + %callN = call { ptr, i64 } @struct_to_string__Command(ptr %0, { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } } %ua.load142) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.117: ; preds = %match.arm.43 + %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr145 = inttoptr i64 %ua.raw144 to ptr + %ua.load146 = load { i1, { ptr, i64 } }, ptr %ua.ptr145, align 8 + %callN = call { ptr, i64 } @struct_to_string__FlagValue(ptr %0, { i1, { ptr, i64 } } %ua.load146) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.118: ; preds = %match.arm.43 + %ua.raw148 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr149 = inttoptr i64 %ua.raw148 to ptr + %ua.load150 = load { i64, { ptr, i64 } }, ptr %ua.ptr149, align 8 + %callN = call { ptr, i64 } @struct_to_string__Diag(ptr %0, { i64, { ptr, i64 } } %ua.load150) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.119: ; preds = %match.arm.43 + %ua.raw152 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr153 = inttoptr i64 %ua.raw152 to ptr + %ua.load154 = load { { ptr, i64 }, { ptr, i64 }, i64, i1, { ptr, i64 }, { ptr, i64 }, [16 x { i1, { ptr, i64 } }] }, ptr %ua.ptr153, 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.load154) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.120: ; preds = %match.arm.43 + %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr157 = inttoptr i64 %ua.raw156 to ptr + %ua.load158 = load { [8 x i64], [64 x i8], i64, i64 }, ptr %ua.ptr157, align 8 + %callN = call { ptr, i64 } @struct_to_string__Sha256(ptr %0, { [8 x i64], [64 x i8], i64, i64 } %ua.load158) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.121: ; preds = %match.arm.43 + %ua.raw160 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr161 = inttoptr i64 %ua.raw160 to ptr + %ua.load162 = load {}, ptr %ua.ptr161, align 1 + %callN = call { ptr, i64 } @struct_to_string__NSString(ptr %0, {} %ua.load162) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.case.122: ; preds = %match.arm.43 + %ua.raw164 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr165 = inttoptr i64 %ua.raw164 to ptr + %ua.load166 = load { i64, i64, i64 }, ptr %ua.ptr165, align 8 + %callN = call { ptr, i64 } @struct_to_string__Triple(ptr %0, { i64, i64, i64 } %ua.load166) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.94 + +dispatch.merge.258: ; preds = %dispatch.case.264, %dispatch.case.263, %dispatch.case.262, %dispatch.case.261, %dispatch.case.260, %dispatch.default.259 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.169: ; preds = %match.arm.44 - store { ptr, i64 } { ptr @str.113, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.168 +dispatch.default.259: ; preds = %match.arm.44 + store { ptr, i64 } { ptr @str.350, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.258 -dispatch.case.170: ; preds = %match.arm.44 - %ua.raw100 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw100) +dispatch.case.260: ; preds = %match.arm.44 + %ua.raw169 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OpenMode(ptr %0, i64 %ua.raw169) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.168 + br label %dispatch.merge.258 -dispatch.case.171: ; preds = %match.arm.44 - %ua.raw102 = extractvalue { i64, i64 } %loadN, 1 - %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw102) +dispatch.case.261: ; preds = %match.arm.44 + %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__SeekFrom(ptr %0, i64 %ua.raw171) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.168 + br label %dispatch.merge.258 -dispatch.merge.176: ; preds = %dispatch.case.180, %dispatch.case.179, %dispatch.case.178, %dispatch.default.177 +dispatch.case.262: ; preds = %match.arm.44 + %ua.raw173 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr174 = inttoptr i64 %ua.raw173 to ptr + %ua.load175 = load { i64, [24 x i8] }, ptr %ua.ptr174, align 8 + %callN = call { ptr, i64 } @enum_to_string__Value(ptr %0, { i64, [24 x i8] } %ua.load175) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.258 + +dispatch.case.263: ; preds = %match.arm.44 + %ua.raw177 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__OperatingSystem(ptr %0, i64 %ua.raw177) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.258 + +dispatch.case.264: ; preds = %match.arm.44 + %ua.raw179 = extractvalue { i64, i64 } %loadN, 1 + %callN = call { ptr, i64 } @enum_to_string__Architecture(ptr %0, i64 %ua.raw179) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.258 + +dispatch.merge.275: ; preds = %dispatch.case.283, %dispatch.case.282, %dispatch.case.281, %dispatch.case.280, %dispatch.case.279, %dispatch.case.278, %dispatch.case.277, %dispatch.default.276 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.177: ; preds = %match.arm.47 - store { ptr, i64 } { ptr @str.114, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.176 +dispatch.default.276: ; preds = %match.arm.47 + store { ptr, i64 } { ptr @str.351, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.275 -dispatch.case.178: ; preds = %match.arm.47 - %ua.raw105 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr106 = inttoptr i64 %ua.raw105 to ptr - %ua.load107 = load [4 x i64], ptr %ua.ptr106, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load107) +dispatch.case.277: ; preds = %match.arm.47 + %ua.raw182 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr183 = inttoptr i64 %ua.raw182 to ptr + %ua.load184 = load [4 x i64], ptr %ua.ptr183, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_4_s64(ptr %0, [4 x i64] %ua.load184) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.176 + br label %dispatch.merge.275 -dispatch.case.179: ; preds = %match.arm.47 - %ua.raw109 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr110 = inttoptr i64 %ua.raw109 to ptr - %ua.load111 = load [1 x { i64, i64 }], ptr %ua.ptr110, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load111) +dispatch.case.278: ; preds = %match.arm.47 + %ua.raw186 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr187 = inttoptr i64 %ua.raw186 to ptr + %ua.load188 = load [16 x { i1, { ptr, i64 } }], ptr %ua.ptr187, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %ua.load188) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.176 + br label %dispatch.merge.275 -dispatch.case.180: ; preds = %match.arm.47 - %ua.raw113 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr114 = inttoptr i64 %ua.raw113 to ptr - %ua.load115 = load [3 x { i64, i64 }], ptr %ua.ptr114, align 8 - %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load115) +dispatch.case.279: ; preds = %match.arm.47 + %ua.raw190 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr191 = inttoptr i64 %ua.raw190 to ptr + %ua.load192 = load [8 x i64], ptr %ua.ptr191, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %ua.load192) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.176 + br label %dispatch.merge.275 -dispatch.merge.196: ; preds = %dispatch.case.199, %dispatch.case.198, %dispatch.default.197 +dispatch.case.280: ; preds = %match.arm.47 + %ua.raw194 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr195 = inttoptr i64 %ua.raw194 to ptr + %ua.load196 = load [64 x i8], ptr %ua.ptr195, align 1 + %callN = call { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %ua.load196) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.275 + +dispatch.case.281: ; preds = %match.arm.47 + %ua.raw198 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr199 = inttoptr i64 %ua.raw198 to ptr + %ua.load200 = load [64 x i64], ptr %ua.ptr199, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %ua.load200) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.275 + +dispatch.case.282: ; preds = %match.arm.47 + %ua.raw202 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr203 = inttoptr i64 %ua.raw202 to ptr + %ua.load204 = load [1 x { i64, i64 }], ptr %ua.ptr203, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_1_Any(ptr %0, [1 x { i64, i64 }] %ua.load204) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.275 + +dispatch.case.283: ; preds = %match.arm.47 + %ua.raw206 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr207 = inttoptr i64 %ua.raw206 to ptr + %ua.load208 = load [3 x { i64, i64 }], ptr %ua.ptr207, align 8 + %callN = call { ptr, i64 } @array_to_string__AR_3_Any(ptr %0, [3 x { i64, i64 }] %ua.load208) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.275 + +dispatch.merge.319: ; preds = %dispatch.case.325, %dispatch.case.324, %dispatch.case.323, %dispatch.case.322, %dispatch.case.321, %dispatch.default.320 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.197: ; preds = %match.arm.48 - store { ptr, i64 } { ptr @str.115, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.196 +dispatch.default.320: ; preds = %match.arm.48 + store { ptr, i64 } { ptr @str.352, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.319 -dispatch.case.198: ; preds = %match.arm.48 - %ua.raw118 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr119 = inttoptr i64 %ua.raw118 to ptr - %ua.load120 = load { ptr, i64 }, ptr %ua.ptr119, align 8 - %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load120) +dispatch.case.321: ; preds = %match.arm.48 + %ua.raw211 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr212 = inttoptr i64 %ua.raw211 to ptr + %ua.load213 = load { ptr, i64 }, ptr %ua.ptr212, align 8 + %callN = call { ptr, i64 } @slice_to_string__string(ptr %0, { ptr, i64 } %ua.load213) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.319 -dispatch.case.199: ; preds = %match.arm.48 - %ua.raw122 = extractvalue { i64, i64 } %loadN, 1 - %ua.ptr123 = inttoptr i64 %ua.raw122 to ptr - %ua.load124 = load { ptr, i64 }, ptr %ua.ptr123, align 8 - %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load124) +dispatch.case.322: ; preds = %match.arm.48 + %ua.raw215 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr216 = inttoptr i64 %ua.raw215 to ptr + %ua.load217 = load { ptr, i64 }, ptr %ua.ptr216, align 8 + %callN = call { ptr, i64 } @slice_to_string__u8(ptr %0, { ptr, i64 } %ua.load217) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.196 + br label %dispatch.merge.319 -dispatch.merge.210: ; preds = %dispatch.case.231, %dispatch.case.230, %dispatch.case.229, %dispatch.case.228, %dispatch.case.227, %dispatch.case.226, %dispatch.case.225, %dispatch.case.224, %dispatch.case.223, %dispatch.case.222, %dispatch.case.221, %dispatch.case.220, %dispatch.case.219, %dispatch.case.218, %dispatch.case.217, %dispatch.case.216, %dispatch.case.215, %dispatch.case.214, %dispatch.case.213, %dispatch.case.212, %dispatch.default.211 +dispatch.case.323: ; preds = %match.arm.48 + %ua.raw219 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr220 = inttoptr i64 %ua.raw219 to ptr + %ua.load221 = load { ptr, i64 }, ptr %ua.ptr220, align 8 + %callN = call { ptr, i64 } @slice_to_string__FlagSpec(ptr %0, { ptr, i64 } %ua.load221) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.case.324: ; preds = %match.arm.48 + %ua.raw223 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr224 = inttoptr i64 %ua.raw223 to ptr + %ua.load225 = load { ptr, i64 }, ptr %ua.ptr224, align 8 + %callN = call { ptr, i64 } @slice_to_string__Command(ptr %0, { ptr, i64 } %ua.load225) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.case.325: ; preds = %match.arm.48 + %ua.raw227 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr228 = inttoptr i64 %ua.raw227 to ptr + %ua.load229 = load { ptr, i64 }, ptr %ua.ptr228, align 8 + %callN = call { ptr, i64 } @slice_to_string__Any(ptr %0, { ptr, i64 } %ua.load229) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.319 + +dispatch.merge.351: ; preds = %dispatch.case.385, %dispatch.case.384, %dispatch.case.383, %dispatch.case.382, %dispatch.case.381, %dispatch.case.380, %dispatch.case.379, %dispatch.case.378, %dispatch.case.377, %dispatch.case.376, %dispatch.case.375, %dispatch.case.374, %dispatch.case.373, %dispatch.case.372, %dispatch.case.371, %dispatch.case.370, %dispatch.case.369, %dispatch.case.368, %dispatch.case.367, %dispatch.case.366, %dispatch.case.365, %dispatch.case.364, %dispatch.case.363, %dispatch.case.362, %dispatch.case.361, %dispatch.case.360, %dispatch.case.359, %dispatch.case.358, %dispatch.case.357, %dispatch.case.356, %dispatch.case.355, %dispatch.case.354, %dispatch.case.353, %dispatch.default.352 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 store { ptr, i64 } %loadN, ptr %allocaN, align 8 br label %match.merge.37 -dispatch.default.211: ; preds = %match.arm.49 - store { ptr, i64 } { ptr @str.116, i64 0 }, ptr %allocaN, align 8 - br label %dispatch.merge.210 +dispatch.default.352: ; preds = %match.arm.49 + store { ptr, i64 } { ptr @str.353, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.351 -dispatch.case.212: ; preds = %match.arm.49 - %ua.raw127 = extractvalue { i64, i64 } %loadN, 1 - %iNp = inttoptr i64 %ua.raw127 to ptr +dispatch.case.353: ; preds = %match.arm.49 + %ua.raw232 = extractvalue { i64, i64 } %loadN, 1 + %iNp = inttoptr i64 %ua.raw232 to ptr %callN = call { ptr, i64 } @pointer_to_string__ptr_void(ptr %0, ptr %iNp) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.213: ; preds = %match.arm.49 - %ua.raw129 = extractvalue { i64, i64 } %loadN, 1 - %iNp130 = inttoptr i64 %ua.raw129 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp130) +dispatch.case.354: ; preds = %match.arm.49 + %ua.raw234 = extractvalue { i64, i64 } %loadN, 1 + %iNp235 = inttoptr i64 %ua.raw234 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_CAllocator(ptr %0, ptr %iNp235) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.214: ; preds = %match.arm.49 - %ua.raw132 = extractvalue { i64, i64 } %loadN, 1 - %iNp133 = inttoptr i64 %ua.raw132 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp133) +dispatch.case.355: ; preds = %match.arm.49 + %ua.raw237 = extractvalue { i64, i64 } %loadN, 1 + %iNp238 = inttoptr i64 %ua.raw237 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_GPA(ptr %0, ptr %iNp238) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.215: ; preds = %match.arm.49 - %ua.raw135 = extractvalue { i64, i64 } %loadN, 1 - %iNp136 = inttoptr i64 %ua.raw135 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp136) +dispatch.case.356: ; preds = %match.arm.49 + %ua.raw240 = extractvalue { i64, i64 } %loadN, 1 + %iNp241 = inttoptr i64 %ua.raw240 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ArenaChunk(ptr %0, ptr %iNp241) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.216: ; preds = %match.arm.49 - %ua.raw138 = extractvalue { i64, i64 } %loadN, 1 - %iNp139 = inttoptr i64 %ua.raw138 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp139) +dispatch.case.357: ; preds = %match.arm.49 + %ua.raw243 = extractvalue { i64, i64 } %loadN, 1 + %iNp244 = inttoptr i64 %ua.raw243 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Arena(ptr %0, ptr %iNp244) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.217: ; preds = %match.arm.49 - %ua.raw141 = extractvalue { i64, i64 } %loadN, 1 - %iNp142 = inttoptr i64 %ua.raw141 to ptr - %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp142) +dispatch.case.358: ; preds = %match.arm.49 + %ua.raw246 = extractvalue { i64, i64 } %loadN, 1 + %iNp247 = inttoptr i64 %ua.raw246 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_u8(ptr %0, ptr %iNp247) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.218: ; preds = %match.arm.49 - %ua.raw144 = extractvalue { i64, i64 } %loadN, 1 - %iNp145 = inttoptr i64 %ua.raw144 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp145) +dispatch.case.359: ; preds = %match.arm.49 + %ua.raw249 = extractvalue { i64, i64 } %loadN, 1 + %iNp250 = inttoptr i64 %ua.raw249 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_BufAlloc(ptr %0, ptr %iNp250) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.219: ; preds = %match.arm.49 - %ua.raw147 = extractvalue { i64, i64 } %loadN, 1 - %iNp148 = inttoptr i64 %ua.raw147 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp148) +dispatch.case.360: ; preds = %match.arm.49 + %ua.raw252 = extractvalue { i64, i64 } %loadN, 1 + %iNp253 = inttoptr i64 %ua.raw252 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_TrackingAllocator(ptr %0, ptr %iNp253) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.220: ; preds = %match.arm.49 - %ua.raw150 = extractvalue { i64, i64 } %loadN, 1 - %iNp151 = inttoptr i64 %ua.raw150 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %iNp151) +dispatch.case.361: ; preds = %match.arm.49 + %ua.raw255 = extractvalue { i64, i64 } %loadN, 1 + %iNp256 = inttoptr i64 %ua.raw255 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_File(ptr %0, ptr %iNp256) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.221: ; preds = %match.arm.49 - %ua.raw153 = extractvalue { i64, i64 } %loadN, 1 - %iNp154 = inttoptr i64 %ua.raw153 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp154) +dispatch.case.362: ; preds = %match.arm.49 + %ua.raw258 = extractvalue { i64, i64 } %loadN, 1 + %iNp259 = inttoptr i64 %ua.raw258 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp259) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.222: ; preds = %match.arm.49 - %ua.raw156 = extractvalue { i64, i64 } %loadN, 1 - %iNp157 = inttoptr i64 %ua.raw156 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp157) +dispatch.case.363: ; preds = %match.arm.49 + %ua.raw261 = extractvalue { i64, i64 } %loadN, 1 + %iNp262 = inttoptr i64 %ua.raw261 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s32(ptr %0, ptr %iNp262) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.223: ; preds = %match.arm.49 - %ua.raw159 = extractvalue { i64, i64 } %loadN, 1 - %iNp160 = inttoptr i64 %ua.raw159 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp160) +dispatch.case.364: ; preds = %match.arm.49 + %ua.raw264 = extractvalue { i64, i64 } %loadN, 1 + %iNp265 = inttoptr i64 %ua.raw264 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SockAddr(ptr %0, ptr %iNp265) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.224: ; preds = %match.arm.49 - %ua.raw162 = extractvalue { i64, i64 } %loadN, 1 - %iNp163 = inttoptr i64 %ua.raw162 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp163) +dispatch.case.365: ; preds = %match.arm.49 + %ua.raw267 = extractvalue { i64, i64 } %loadN, 1 + %iNp268 = inttoptr i64 %ua.raw267 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_u32(ptr %0, ptr %iNp268) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.225: ; preds = %match.arm.49 - %ua.raw165 = extractvalue { i64, i64 } %loadN, 1 - %iNp166 = inttoptr i64 %ua.raw165 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp166) +dispatch.case.366: ; preds = %match.arm.49 + %ua.raw270 = extractvalue { i64, i64 } %loadN, 1 + %iNp271 = inttoptr i64 %ua.raw270 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Value(ptr %0, ptr %iNp271) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.226: ; preds = %match.arm.49 - %ua.raw168 = extractvalue { i64, i64 } %loadN, 1 - %iNp169 = inttoptr i64 %ua.raw168 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp169) +dispatch.case.367: ; preds = %match.arm.49 + %ua.raw273 = extractvalue { i64, i64 } %loadN, 1 + %iNp274 = inttoptr i64 %ua.raw273 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Array(ptr %0, ptr %iNp274) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.227: ; preds = %match.arm.49 - %ua.raw171 = extractvalue { i64, i64 } %loadN, 1 - %iNp172 = inttoptr i64 %ua.raw171 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp172) +dispatch.case.368: ; preds = %match.arm.49 + %ua.raw276 = extractvalue { i64, i64 } %loadN, 1 + %iNp277 = inttoptr i64 %ua.raw276 to ptr + %callN = call { ptr, i64 } @pointer_to_string__mptr_Member(ptr %0, ptr %iNp277) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.228: ; preds = %match.arm.49 - %ua.raw174 = extractvalue { i64, i64 } %loadN, 1 - %iNp175 = inttoptr i64 %ua.raw174 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp175) +dispatch.case.369: ; preds = %match.arm.49 + %ua.raw279 = extractvalue { i64, i64 } %loadN, 1 + %iNp280 = inttoptr i64 %ua.raw279 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Object(ptr %0, ptr %iNp280) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.229: ; preds = %match.arm.49 - %ua.raw177 = extractvalue { i64, i64 } %loadN, 1 - %iNp178 = inttoptr i64 %ua.raw177 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_u8(ptr %0, ptr %iNp178) +dispatch.case.370: ; preds = %match.arm.49 + %ua.raw282 = extractvalue { i64, i64 } %loadN, 1 + %iNp283 = inttoptr i64 %ua.raw282 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sink(ptr %0, ptr %iNp283) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.230: ; preds = %match.arm.49 - %ua.raw180 = extractvalue { i64, i64 } %loadN, 1 - %iNp181 = inttoptr i64 %ua.raw180 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_Triple(ptr %0, ptr %iNp181) +dispatch.case.371: ; preds = %match.arm.49 + %ua.raw285 = extractvalue { i64, i64 } %loadN, 1 + %iNp286 = inttoptr i64 %ua.raw285 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parser(ptr %0, ptr %iNp286) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 -dispatch.case.231: ; preds = %match.arm.49 - %ua.raw183 = extractvalue { i64, i64 } %loadN, 1 - %iNp184 = inttoptr i64 %ua.raw183 to ptr - %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp184) +dispatch.case.372: ; preds = %match.arm.49 + %ua.raw288 = extractvalue { i64, i64 } %loadN, 1 + %iNp289 = inttoptr i64 %ua.raw288 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_s64(ptr %0, ptr %iNp289) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %dispatch.merge.210 + br label %dispatch.merge.351 + +dispatch.case.373: ; preds = %match.arm.49 + %ua.raw291 = extractvalue { i64, i64 } %loadN, 1 + %iNp292 = inttoptr i64 %ua.raw291 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Parsed(ptr %0, ptr %iNp292) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.374: ; preds = %match.arm.49 + %ua.raw294 = extractvalue { i64, i64 } %loadN, 1 + %iNp295 = inttoptr i64 %ua.raw294 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Diag(ptr %0, ptr %iNp295) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.375: ; preds = %match.arm.49 + %ua.raw297 = extractvalue { i64, i64 } %loadN, 1 + %iNp298 = inttoptr i64 %ua.raw297 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Sha256(ptr %0, ptr %iNp298) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.376: ; preds = %match.arm.49 + %ua.raw300 = extractvalue { i64, i64 } %loadN, 1 + %iNp301 = inttoptr i64 %ua.raw300 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %iNp301) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.377: ; preds = %match.arm.49 + %ua.raw303 = extractvalue { i64, i64 } %loadN, 1 + %iNp304 = inttoptr i64 %ua.raw303 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_CAllocator(ptr %0, ptr %iNp304) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.378: ; preds = %match.arm.49 + %ua.raw306 = extractvalue { i64, i64 } %loadN, 1 + %iNp307 = inttoptr i64 %ua.raw306 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_ptr_void(ptr %0, ptr %iNp307) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.379: ; preds = %match.arm.49 + %ua.raw309 = extractvalue { i64, i64 } %loadN, 1 + %iNp310 = inttoptr i64 %ua.raw309 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_bool(ptr %0, ptr %iNp310) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.380: ; preds = %match.arm.49 + %ua.raw312 = extractvalue { i64, i64 } %loadN, 1 + %iNp313 = inttoptr i64 %ua.raw312 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_string(ptr %0, ptr %iNp313) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.381: ; preds = %match.arm.49 + %ua.raw315 = extractvalue { i64, i64 } %loadN, 1 + %iNp316 = inttoptr i64 %ua.raw315 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Any(ptr %0, ptr %iNp316) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.382: ; preds = %match.arm.49 + %ua.raw318 = extractvalue { i64, i64 } %loadN, 1 + %iNp319 = inttoptr i64 %ua.raw318 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_1_Any(ptr %0, ptr %iNp319) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.383: ; preds = %match.arm.49 + %ua.raw321 = extractvalue { i64, i64 } %loadN, 1 + %iNp322 = inttoptr i64 %ua.raw321 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_SL_Any(ptr %0, ptr %iNp322) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.384: ; preds = %match.arm.49 + %ua.raw324 = extractvalue { i64, i64 } %loadN, 1 + %iNp325 = inttoptr i64 %ua.raw324 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_Triple(ptr %0, ptr %iNp325) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.case.385: ; preds = %match.arm.49 + %ua.raw327 = extractvalue { i64, i64 } %loadN, 1 + %iNp328 = inttoptr i64 %ua.raw327 to ptr + %callN = call { ptr, i64 } @pointer_to_string__ptr_AR_3_Any(ptr %0, ptr %iNp328) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.351 + +dispatch.merge.498: ; preds = %dispatch.case.503, %dispatch.case.502, %dispatch.case.501, %dispatch.case.500, %dispatch.default.499 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + store { ptr, i64 } %loadN, ptr %allocaN, align 8 + br label %match.merge.37 + +dispatch.default.499: ; preds = %match.arm.50 + store { ptr, i64 } { ptr @str.354, i64 0 }, ptr %allocaN, align 8 + br label %dispatch.merge.498 + +dispatch.case.500: ; preds = %match.arm.50 + %ua.raw331 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr332 = inttoptr i64 %ua.raw331 to ptr + %ua.load333 = load { { i32 }, i1 }, ptr %ua.ptr332, align 4 + %callN = call { ptr, i64 } @optional_to_string__opt_File(ptr %0, { { i32 }, i1 } %ua.load333) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.498 + +dispatch.case.501: ; preds = %match.arm.50 + %ua.raw335 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr336 = inttoptr i64 %ua.raw335 to ptr + %ua.load337 = load { { ptr, i64 }, i1 }, ptr %ua.ptr336, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_string(ptr %0, { { ptr, i64 }, i1 } %ua.load337) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.498 + +dispatch.case.502: ; preds = %match.arm.50 + %ua.raw339 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr340 = inttoptr i64 %ua.raw339 to ptr + %ua.load341 = load { { i32, { ptr, i64 } }, i1 }, ptr %ua.ptr340, align 8 + %callN = call { ptr, i64 } @optional_to_string__opt_ProcessResult(ptr %0, { { i32, { ptr, i64 } }, i1 } %ua.load341) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.498 + +dispatch.case.503: ; preds = %match.arm.50 + %ua.raw343 = extractvalue { i64, i64 } %loadN, 1 + %ua.ptr344 = inttoptr i64 %ua.raw343 to ptr + %ua.load345 = load { [64 x i8], i1 }, ptr %ua.ptr344, align 1 + %callN = call { ptr, i64 } @optional_to_string__opt_AR_64_u8(ptr %0, { [64 x i8], i1 } %ua.load345) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %dispatch.merge.498 } ; Function Attrs: nounwind @@ -1745,7 +2498,7 @@ 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.117, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.355, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -1841,7 +2594,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.118, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.356, 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 @@ -1849,7 +2602,7 @@ if.then.12: ; preds = %if.then.9 %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.119, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.357, 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 @@ -1859,13 +2612,13 @@ if.then.12: ; preds = %if.then.9 %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.120, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.358, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.121, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.359, 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 @@ -1873,7 +2626,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.122, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.360, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -1887,7 +2640,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.123, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.361, 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 @@ -1895,7 +2648,7 @@ if.then.23: ; preds = %if.else.10 %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.124, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.362, 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 @@ -1906,7 +2659,7 @@ if.then.23: ; preds = %if.else.10 %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.125, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.363, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -1963,7 +2716,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.364, 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 @@ -1971,7 +2724,7 @@ if.then.32: ; preds = %if.then.29 %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.127, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.365, 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 @@ -1982,7 +2735,7 @@ if.then.32: ; preds = %if.then.29 %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.128, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.366, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -2002,7 +2755,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.367, 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 @@ -2010,7 +2763,7 @@ if.then.35: ; preds = %while.exit.2 %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.130, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.368, 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 @@ -2021,7 +2774,7 @@ if.then.35: ; preds = %while.exit.2 %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.131, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.369, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -2098,6 +2851,414 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -2209,6 +3370,336 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 ; Function Attrs: nounwind declare i64 @build_options() #0 +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + ; Function Attrs: nounwind declare ptr @objc_getClass(ptr) #0 @@ -2275,19 +3766,19 @@ entry: define i32 @main() #0 { entry: call void @__sx_objc_selector_init() - %call = call ptr @objc_getClass(ptr @str.132) + %call = call ptr @objc_getClass(ptr @str.370) %alloca = alloca ptr, align 8 store ptr %call, ptr %alloca, align 8 %load = load ptr, ptr %alloca, align 8 - %callN = call ptr @objc_allocateClassPair(ptr %load, ptr @str.133, i64 0) + %callN = call ptr @objc_allocateClassPair(ptr %load, ptr @str.371, i64 0) %allocaN = alloca ptr, align 8 store ptr %callN, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.134) + %callN = call ptr @sel_registerName(ptr @str.372) %allocaN = alloca ptr, align 8 store ptr %callN, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8 - %callN = call i1 @class_addMethod(ptr %loadN, ptr %loadN, ptr @triple_imp, ptr @str.135) + %callN = call i1 @class_addMethod(ptr %loadN, ptr %loadN, ptr @triple_imp, ptr @str.373) %allocaN = alloca i1, align 1 store i1 %callN, ptr %allocaN, align 1 %loadN = load i1, ptr %allocaN, align 1 @@ -2333,7 +3824,7 @@ entry: define internal void @print__ct_s7f3aff1506f207ab__pack_bool(ptr %0, i1 %1) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.136, i64 15 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.374, i64 15 }, ptr %alloca, align 8 %allocaN = alloca i1, align 1 store i1 %1, ptr %allocaN, align 1 %allocaN = alloca [1 x { i64, i64 }], align 8 @@ -2349,7 +3840,7 @@ entry: %gepN = getelementptr inbounds { 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.137, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.375, 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 12) @@ -2377,7 +3868,7 @@ entry: ; 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.138, i64 15 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.376, i64 15 }) ret { ptr, i64 } %call } @@ -2385,7 +3876,7 @@ entry: define internal void @print__ct_s337be2777a405332__pack_s64_s64_s64(ptr %0, i64 %1, i64 %2, i64 %3) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.139, i64 22 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.377, i64 22 }, ptr %alloca, align 8 %allocaN = alloca i64, align 8 store i64 %1, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -2412,7 +3903,7 @@ entry: %gepN = getelementptr inbounds { 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.140, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.378, 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 10) @@ -2461,7 +3952,7 @@ entry: ; 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.141, i64 22 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.379, i64 22 }) ret { ptr, i64 } %call } @@ -2472,35 +3963,35 @@ entry: %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.142, i64 15 }, { ptr, i64 } { ptr @str.143, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.380, i64 15 }, { ptr, i64 } { ptr @str.381, 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.108 + br label %while.hdr.123 -while.hdr.108: ; preds = %fv.merge, %entry +while.hdr.123: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.109, label %while.exit.110 + br i1 %icmp, label %while.body.124, label %while.exit.125 -while.body.109: ; preds = %while.hdr.108 +while.body.124: ; preds = %while.hdr.123 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.111, label %if.merge.112 + br i1 %icmpN, label %if.then.126, label %if.merge.127 -while.exit.110: ; preds = %while.hdr.108 +while.exit.125: ; preds = %while.hdr.123 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.144, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.382, i64 1 }) ret { ptr, i64 } %callN -if.then.111: ; preds = %while.body.109 +if.then.126: ; preds = %while.body.124 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.145, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.383, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.112 + br label %if.merge.127 -if.merge.112: ; preds = %if.then.111, %while.body.109 +if.merge.127: ; preds = %if.then.126, %while.body.124 %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 @@ -2508,7 +3999,7 @@ if.merge.112: ; preds = %if.then.111, %while %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.149, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.387, 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 @@ -2528,31 +4019,31 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.108 + br label %while.hdr.123 -fv.default: ; preds = %if.merge.112 +fv.default: ; preds = %if.merge.127 br label %fv.merge -fv.case: ; preds = %if.merge.112 +fv.case: ; preds = %if.merge.127 %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.112 +fv.case17: ; preds = %if.merge.127 %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 1 %sN = sext i32 %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case20: ; preds = %if.merge.112 +fv.case20: ; preds = %if.merge.127 %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 } } %loadN, 2 %sN = sext i32 %fv.field21 to i64 %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 br label %fv.merge -fv.case24: ; preds = %if.merge.112 +fv.case24: ; preds = %if.merge.127 %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 @@ -2565,43 +4056,43 @@ 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.150, i64 10 }, { ptr, i64 } { ptr @str.151, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.388, i64 10 }, { ptr, i64 } { ptr @str.389, 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.113 + br label %while.hdr.128 -while.hdr.113: ; preds = %if.merge.117, %entry +while.hdr.128: ; preds = %if.merge.132, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.114, label %while.exit.115 + br i1 %icmp, label %while.body.129, label %while.exit.130 -while.body.114: ; preds = %while.hdr.113 +while.body.129: ; preds = %while.hdr.128 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.116, label %if.merge.117 + br i1 %icmpN, label %if.then.131, label %if.merge.132 -while.exit.115: ; preds = %while.hdr.113 +while.exit.130: ; preds = %while.hdr.128 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.152, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.390, i64 1 }) ret { ptr, i64 } %callN -if.then.116: ; preds = %while.body.114 +if.then.131: ; preds = %while.body.129 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.153, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.391, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.117 + br label %if.merge.132 -if.merge.117: ; preds = %if.then.116, %while.body.114 +if.merge.132: ; preds = %if.then.131, %while.body.129 %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.154, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.392, 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.155, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.393, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -2612,7 +4103,7 @@ if.merge.117: ; preds = %if.then.116, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.113 + br label %while.hdr.128 } ; Function Attrs: nounwind @@ -2620,43 +4111,43 @@ 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.156, i64 3 }, { ptr, i64 } { ptr @str.157, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.394, i64 3 }, { ptr, i64 } { ptr @str.395, 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.118 + br label %while.hdr.133 -while.hdr.118: ; preds = %fv.merge, %entry +while.hdr.133: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.119, label %while.exit.120 + br i1 %icmp, label %while.body.134, label %while.exit.135 -while.body.119: ; preds = %while.hdr.118 +while.body.134: ; preds = %while.hdr.133 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.121, label %if.merge.122 + br i1 %icmpN, label %if.then.136, label %if.merge.137 -while.exit.120: ; preds = %while.hdr.118 +while.exit.135: ; preds = %while.hdr.133 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.158, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.396, i64 1 }) ret { ptr, i64 } %callN -if.then.121: ; preds = %while.body.119 +if.then.136: ; preds = %while.body.134 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.159, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.397, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.122 + br label %if.merge.137 -if.merge.122: ; preds = %if.then.121, %while.body.119 +if.merge.137: ; preds = %if.then.136, %while.body.134 %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.161, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [1 x { ptr, i64 }], ptr @field_names.399, 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.162, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.400, 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 @@ -2673,12 +4164,12 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.118 + br label %while.hdr.133 -fv.default: ; preds = %if.merge.122 +fv.default: ; preds = %if.merge.137 br label %fv.merge -fv.case: ; preds = %if.merge.122 +fv.case: ; preds = %if.merge.137 %fv.field = extractvalue { i64 } %loadN, 0 %fv.val = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field, 1 br label %fv.merge @@ -2689,43 +4180,43 @@ define internal { ptr, i64 } @struct_to_string__ArenaChunk(ptr %0, { ptr, i64 } 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.163, i64 10 }, { ptr, i64 } { ptr @str.164, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.401, i64 10 }, { ptr, i64 } { ptr @str.402, 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.123 + br label %while.hdr.138 -while.hdr.123: ; preds = %fv.merge, %entry +while.hdr.138: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.124, label %while.exit.125 + br i1 %icmp, label %while.body.139, label %while.exit.140 -while.body.124: ; preds = %while.hdr.123 +while.body.139: ; preds = %while.hdr.138 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.126, label %if.merge.127 + br i1 %icmpN, label %if.then.141, label %if.merge.142 -while.exit.125: ; preds = %while.hdr.123 +while.exit.140: ; preds = %while.hdr.138 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.403, i64 1 }) ret { ptr, i64 } %callN -if.then.126: ; preds = %while.body.124 +if.then.141: ; preds = %while.body.139 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.404, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.127 + br label %if.merge.142 -if.merge.127: ; preds = %if.then.126, %while.body.124 +if.merge.142: ; preds = %if.then.141, %while.body.139 %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.169, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.407, 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.170, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.408, 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 @@ -2743,18 +4234,18 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.123 + br label %while.hdr.138 -fv.default: ; preds = %if.merge.127 +fv.default: ; preds = %if.merge.142 br label %fv.merge -fv.case: ; preds = %if.merge.127 +fv.case: ; preds = %if.merge.142 %fv.field = extractvalue { ptr, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.127 +fv.case17: ; preds = %if.merge.142 %fv.field18 = extractvalue { ptr, i64 } %loadN, 1 %fv.val19 = insertvalue { i64, i64 } { i64 5, i64 undef }, i64 %fv.field18, 1 br label %fv.merge @@ -2765,43 +4256,43 @@ define internal { ptr, i64 } @struct_to_string__Allocator(ptr %0, { ptr, ptr, pt 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.171, i64 9 }, { ptr, i64 } { ptr @str.172, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.409, i64 9 }, { ptr, i64 } { ptr @str.410, 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.128 + br label %while.hdr.143 -while.hdr.128: ; preds = %fv.merge, %entry +while.hdr.143: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.129, label %while.exit.130 + br i1 %icmp, label %while.body.144, label %while.exit.145 -while.body.129: ; preds = %while.hdr.128 +while.body.144: ; preds = %while.hdr.143 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.131, label %if.merge.132 + br i1 %icmpN, label %if.then.146, label %if.merge.147 -while.exit.130: ; preds = %while.hdr.128 +while.exit.145: ; preds = %while.hdr.143 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.411, i64 1 }) ret { ptr, i64 } %callN -if.then.131: ; preds = %while.body.129 +if.then.146: ; preds = %while.body.144 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.412, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.132 + br label %if.merge.147 -if.merge.132: ; preds = %if.then.131, %while.body.129 +if.merge.147: ; preds = %if.then.146, %while.body.144 %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.178, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.416, 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.179, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.417, 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 @@ -2820,24 +4311,24 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.128 + br label %while.hdr.143 -fv.default: ; preds = %if.merge.132 +fv.default: ; preds = %if.merge.147 br label %fv.merge -fv.case: ; preds = %if.merge.132 +fv.case: ; preds = %if.merge.147 %fv.field = extractvalue { ptr, ptr, ptr } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.132 +fv.case17: ; preds = %if.merge.147 %fv.field18 = extractvalue { ptr, ptr, ptr } %loadN, 1 %pNi19 = ptrtoint ptr %fv.field18 to i64 %fv.val20 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi19, 1 br label %fv.merge -fv.case21: ; preds = %if.merge.132 +fv.case21: ; preds = %if.merge.147 %fv.field22 = extractvalue { ptr, ptr, ptr } %loadN, 2 %pNi23 = ptrtoint ptr %fv.field22 to i64 %fv.val24 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi23, 1 @@ -2850,43 +4341,43 @@ 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.180, i64 5 }, { ptr, i64 } { ptr @str.181, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.418, i64 5 }, { ptr, i64 } { ptr @str.419, 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.133 + br label %while.hdr.148 -while.hdr.133: ; preds = %fv.merge, %entry +while.hdr.148: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.134, label %while.exit.135 + br i1 %icmp, label %while.body.149, label %while.exit.150 -while.body.134: ; preds = %while.hdr.133 +while.body.149: ; preds = %while.hdr.148 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.136, label %if.merge.137 + br i1 %icmpN, label %if.then.151, label %if.merge.152 -while.exit.135: ; preds = %while.hdr.133 +while.exit.150: ; preds = %while.hdr.148 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.182, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.420, i64 1 }) ret { ptr, i64 } %callN -if.then.136: ; preds = %while.body.134 +if.then.151: ; preds = %while.body.149 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.183, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.421, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.137 + br label %if.merge.152 -if.merge.137: ; preds = %if.then.136, %while.body.134 +if.merge.152: ; preds = %if.then.151, %while.body.149 %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.187, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.425, 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.188, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.426, 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 @@ -2905,23 +4396,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.133 + br label %while.hdr.148 -fv.default: ; preds = %if.merge.137 +fv.default: ; preds = %if.merge.152 br label %fv.merge -fv.case: ; preds = %if.merge.137 +fv.case: ; preds = %if.merge.152 %fv.field = extractvalue { ptr, i64, { ptr, ptr, ptr } } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 25, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.137 +fv.case17: ; preds = %if.merge.152 %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.137 +fv.case20: ; preds = %if.merge.152 %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 @@ -2934,43 +4425,43 @@ define internal { ptr, i64 } @struct_to_string__BufAlloc(ptr %0, { ptr, i64, i64 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.189, i64 8 }, { ptr, i64 } { ptr @str.190, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.427, i64 8 }, { ptr, i64 } { ptr @str.428, 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.138 + br label %while.hdr.153 -while.hdr.138: ; preds = %fv.merge, %entry +while.hdr.153: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.139, label %while.exit.140 + br i1 %icmp, label %while.body.154, label %while.exit.155 -while.body.139: ; preds = %while.hdr.138 +while.body.154: ; preds = %while.hdr.153 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.141, label %if.merge.142 + br i1 %icmpN, label %if.then.156, label %if.merge.157 -while.exit.140: ; preds = %while.hdr.138 +while.exit.155: ; preds = %while.hdr.153 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.191, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.429, i64 1 }) ret { ptr, i64 } %callN -if.then.141: ; preds = %while.body.139 +if.then.156: ; preds = %while.body.154 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.192, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.430, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.142 + br label %if.merge.157 -if.merge.142: ; preds = %if.then.141, %while.body.139 +if.merge.157: ; preds = %if.then.156, %while.body.154 %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.196, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.434, 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.197, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.435, 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 @@ -2989,23 +4480,23 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.138 + br label %while.hdr.153 -fv.default: ; preds = %if.merge.142 +fv.default: ; preds = %if.merge.157 br label %fv.merge -fv.case: ; preds = %if.merge.142 +fv.case: ; preds = %if.merge.157 %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 %pNi = ptrtoint ptr %fv.field to i64 %fv.val = insertvalue { i64, i64 } { i64 29, i64 undef }, i64 %pNi, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.142 +fv.case17: ; preds = %if.merge.157 %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.142 +fv.case20: ; preds = %if.merge.157 %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 @@ -3017,43 +4508,43 @@ 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.198, i64 17 }, { ptr, i64 } { ptr @str.199, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.436, i64 17 }, { ptr, i64 } { ptr @str.437, 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.143 + br label %while.hdr.158 -while.hdr.143: ; preds = %fv.merge, %entry +while.hdr.158: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.144, label %while.exit.145 + br i1 %icmp, label %while.body.159, label %while.exit.160 -while.body.144: ; preds = %while.hdr.143 +while.body.159: ; preds = %while.hdr.158 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.146, label %if.merge.147 + br i1 %icmpN, label %if.then.161, label %if.merge.162 -while.exit.145: ; preds = %while.hdr.143 +while.exit.160: ; preds = %while.hdr.158 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.200, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.438, i64 1 }) ret { ptr, i64 } %callN -if.then.146: ; preds = %while.body.144 +if.then.161: ; preds = %while.body.159 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.201, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.439, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.147 + br label %if.merge.162 -if.merge.147: ; preds = %if.then.146, %while.body.144 +if.merge.162: ; preds = %if.then.161, %while.body.159 %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.206, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.444, 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.207, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.445, 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 @@ -3073,29 +4564,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.143 + br label %while.hdr.158 -fv.default: ; preds = %if.merge.147 +fv.default: ; preds = %if.merge.162 br label %fv.merge -fv.case: ; preds = %if.merge.147 +fv.case: ; preds = %if.merge.162 %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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.147 +fv.case17: ; preds = %if.merge.162 %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.147 +fv.case20: ; preds = %if.merge.162 %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.147 +fv.case23: ; preds = %if.merge.162 %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 @@ -3107,43 +4598,43 @@ entry: %alloca = alloca { { ptr, ptr, ptr }, ptr }, align 8 %ba.tmp = alloca { ptr, ptr, ptr }, align 8 store { { ptr, ptr, ptr }, ptr } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.208, i64 7 }, { ptr, i64 } { ptr @str.209, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.446, i64 7 }, { ptr, i64 } { ptr @str.447, 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.148 + br label %while.hdr.163 -while.hdr.148: ; preds = %fv.merge, %entry +while.hdr.163: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 2 - br i1 %icmp, label %while.body.149, label %while.exit.150 + br i1 %icmp, label %while.body.164, label %while.exit.165 -while.body.149: ; preds = %while.hdr.148 +while.body.164: ; preds = %while.hdr.163 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.151, label %if.merge.152 + br i1 %icmpN, label %if.then.166, label %if.merge.167 -while.exit.150: ; preds = %while.hdr.148 +while.exit.165: ; preds = %while.hdr.163 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.210, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.448, i64 1 }) ret { ptr, i64 } %callN -if.then.151: ; preds = %while.body.149 +if.then.166: ; preds = %while.body.164 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.211, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.449, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.152 + br label %if.merge.167 -if.merge.152: ; preds = %if.then.151, %while.body.149 +if.merge.167: ; preds = %if.then.166, %while.body.164 %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.214, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [2 x { ptr, i64 }], ptr @field_names.452, 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.215, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.453, 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 %alloca, align 8 @@ -3161,67 +4652,834 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.148 + br label %while.hdr.163 -fv.default: ; preds = %if.merge.152 +fv.default: ; preds = %if.merge.167 br label %fv.merge -fv.case: ; preds = %if.merge.152 +fv.case: ; preds = %if.merge.167 %fv.field = extractvalue { { 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 26, i64 undef }, i64 %ba.p2i, 1 br label %fv.merge -fv.case17: ; preds = %if.merge.152 +fv.case17: ; preds = %if.merge.167 %fv.field18 = extractvalue { { ptr, ptr, ptr }, ptr } %loadN, 1 %pNi = ptrtoint ptr %fv.field18 to i64 %fv.val19 = insertvalue { i64, i64 } { i64 18, i64 undef }, i64 %pNi, 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.454, i64 4 }, { ptr, i64 } { ptr @str.455, 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.168 + +while.hdr.168: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 1 + br i1 %icmp, label %while.body.169, label %while.exit.170 + +while.body.169: ; preds = %while.hdr.168 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.171, label %if.merge.172 + +while.exit.170: ; preds = %while.hdr.168 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.456, i64 1 }) + ret { ptr, i64 } %callN + +if.then.171: ; preds = %while.body.169 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.457, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.172 + +if.merge.172: ; preds = %if.then.171, %while.body.169 + %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.459, 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.460, 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.168 + +fv.default: ; preds = %if.merge.172 + br label %fv.merge + +fv.case: ; preds = %if.merge.172 + %fv.field = extractvalue { i32 } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 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.461, i64 10 }, { ptr, i64 } { ptr @str.462, 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.173 + +while.hdr.173: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.174, label %while.exit.175 + +while.body.174: ; preds = %while.hdr.173 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.176, label %if.merge.177 + +while.exit.175: ; preds = %while.hdr.173 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.463, i64 1 }) + ret { ptr, i64 } %callN + +if.then.176: ; preds = %while.body.174 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.464, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.177 + +if.merge.177: ; preds = %if.then.176, %while.body.174 + %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.470, 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.471, 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.173 + +fv.default: ; preds = %if.merge.177 + br label %fv.merge + +fv.case: ; preds = %if.merge.177 + %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.177 + %fv.field18 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 1 + %sN = sext i32 %fv.field18 to i64 + %fv.val19 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case20: ; preds = %if.merge.177 + %fv.field21 = extractvalue { { ptr, i64 }, i32, i32, { ptr, i64 }, { ptr, i64 } } %loadN, 2 + %sN = sext i32 %fv.field21 to i64 + %fv.val23 = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case24: ; preds = %if.merge.177 + %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.177 + %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.472, i64 13 }, { ptr, i64 } { ptr @str.473, 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.178 + +while.hdr.178: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.179, label %while.exit.180 + +while.body.179: ; preds = %while.hdr.178 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.181, label %if.merge.182 + +while.exit.180: ; preds = %while.hdr.178 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.474, i64 1 }) + ret { ptr, i64 } %callN + +if.then.181: ; preds = %while.body.179 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.475, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.182 + +if.merge.182: ; preds = %if.then.181, %while.body.179 + %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.478, 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.479, 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.178 + +fv.default: ; preds = %if.merge.182 + br label %fv.merge + +fv.case: ; preds = %if.merge.182 + %fv.field = extractvalue { i32, { ptr, i64 } } %loadN, 0 + %sN = sext i32 %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 4, i64 undef }, i64 %sN, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.182 + %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.480, i64 8 }, { ptr, i64 } { ptr @str.481, 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.183 + +while.hdr.183: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 5 + br i1 %icmp, label %while.body.184, label %while.exit.185 + +while.body.184: ; preds = %while.hdr.183 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.186, label %if.merge.187 + +while.exit.185: ; preds = %while.hdr.183 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.482, i64 1 }) + ret { ptr, i64 } %callN + +if.then.186: ; preds = %while.body.184 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.483, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.187 + +if.merge.187: ; preds = %if.then.186, %while.body.184 + %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.489, 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.490, 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.183 + +fv.default: ; preds = %if.merge.187 + br label %fv.merge + +fv.case: ; preds = %if.merge.187 + %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.187 + %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.187 + %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.187 + %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.187 + %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.491, i64 5 }, { ptr, i64 } { ptr @str.492, 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.188 + +while.hdr.188: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.189, label %while.exit.190 + +while.body.189: ; preds = %while.hdr.188 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.191, label %if.merge.192 + +while.exit.190: ; preds = %while.hdr.188 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.493, i64 1 }) + ret { ptr, i64 } %callN + +if.then.191: ; preds = %while.body.189 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.494, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.192 + +if.merge.192: ; preds = %if.then.191, %while.body.189 + %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.498, 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.499, 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.188 + +fv.default: ; preds = %if.merge.192 + br label %fv.merge + +fv.case: ; preds = %if.merge.192 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 56, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.192 + %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.192 + %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.500, i64 6 }, { ptr, i64 } { ptr @str.501, 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.193 + +while.hdr.193: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.194, label %while.exit.195 + +while.body.194: ; preds = %while.hdr.193 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.196, label %if.merge.197 + +while.exit.195: ; preds = %while.hdr.193 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.502, i64 1 }) + ret { ptr, i64 } %callN + +if.then.196: ; preds = %while.body.194 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.503, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.197 + +if.merge.197: ; preds = %if.then.196, %while.body.194 + %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.507, 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.508, 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.193 + +fv.default: ; preds = %if.merge.197 + br label %fv.merge + +fv.case: ; preds = %if.merge.197 + %fv.field = extractvalue { ptr, i64, i64 } %loadN, 0 + %pNi = ptrtoint ptr %fv.field to i64 + %fv.val = insertvalue { i64, i64 } { i64 58, i64 undef }, i64 %pNi, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.197 + %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.197 + %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.509, i64 6 }, { ptr, i64 } { ptr @str.510, 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.198 + +while.hdr.198: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.199, label %while.exit.200 + +while.body.199: ; preds = %while.hdr.198 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.201, label %if.merge.202 + +while.exit.200: ; preds = %while.hdr.198 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.511, i64 1 }) + ret { ptr, i64 } %callN + +if.then.201: ; preds = %while.body.199 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.512, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.202 + +if.merge.202: ; preds = %if.then.201, %while.body.199 + %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.515, 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.516, 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.198 + +fv.default: ; preds = %if.merge.202 + br label %fv.merge + +fv.case: ; preds = %if.merge.202 + %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.202 + %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 54, 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.517, i64 4 }, { ptr, i64 } { ptr @str.518, 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.203 + +while.hdr.203: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.204, label %while.exit.205 + +while.body.204: ; preds = %while.hdr.203 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.206, label %if.merge.207 + +while.exit.205: ; preds = %while.hdr.203 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.519, i64 1 }) + ret { ptr, i64 } %callN + +if.then.206: ; preds = %while.body.204 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.520, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.207 + +if.merge.207: ; preds = %if.then.206, %while.body.204 + %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.524, 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.525, 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.203 + +fv.default: ; preds = %if.merge.207 + br label %fv.merge + +fv.case: ; preds = %if.merge.207 + %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 60, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.207 + %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.207 + %fv.field21 = extractvalue { { ptr, i64 }, i64, ptr } %loadN, 2 + %pNi = ptrtoint ptr %fv.field21 to i64 + %fv.val22 = insertvalue { i64, i64 } { i64 40, 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.526, i64 6 }, { ptr, i64 } { ptr @str.527, 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.208 + +while.hdr.208: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.209, label %while.exit.210 + +while.body.209: ; preds = %while.hdr.208 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.211, label %if.merge.212 + +while.exit.210: ; preds = %while.hdr.208 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.528, i64 1 }) + ret { ptr, i64 } %callN + +if.then.211: ; preds = %while.body.209 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.529, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.212 + +if.merge.212: ; preds = %if.then.211, %while.body.209 + %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.533, 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.534, 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.208 + +fv.default: ; preds = %if.merge.212 + br label %fv.merge + +fv.case: ; preds = %if.merge.212 + %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.212 + %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.212 + %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 26, i64 undef }, i64 %ba.p2i23, 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.216, i64 12 }, { ptr, i64 } { ptr @str.217, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.535, i64 12 }, { ptr, i64 } { ptr @str.536, 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.153 + br label %while.hdr.213 -while.hdr.153: ; preds = %if.merge.157, %entry +while.hdr.213: ; preds = %if.merge.217, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.154, label %while.exit.155 + br i1 %icmp, label %while.body.214, label %while.exit.215 -while.body.154: ; preds = %while.hdr.153 +while.body.214: ; preds = %while.hdr.213 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.156, label %if.merge.157 + br i1 %icmpN, label %if.then.216, label %if.merge.217 -while.exit.155: ; preds = %while.hdr.153 +while.exit.215: ; preds = %while.hdr.213 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.218, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.537, i64 1 }) ret { ptr, i64 } %callN -if.then.156: ; preds = %while.body.154 +if.then.216: ; preds = %while.body.214 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.219, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.538, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.157 + br label %if.merge.217 -if.merge.157: ; preds = %if.then.156, %while.body.154 +if.merge.217: ; preds = %if.then.216, %while.body.214 %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.220, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.539, 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.221, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.540, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -3232,7 +5490,554 @@ if.merge.157: ; preds = %if.then.156, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.153 + br label %while.hdr.213 +} + +; 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.541, i64 8 }, { ptr, i64 } { ptr @str.542, 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.218 + +while.hdr.218: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.219, label %while.exit.220 + +while.body.219: ; preds = %while.hdr.218 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.221, label %if.merge.222 + +while.exit.220: ; preds = %while.hdr.218 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.543, i64 1 }) + ret { ptr, i64 } %callN + +if.then.221: ; preds = %while.body.219 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.544, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.222 + +if.merge.222: ; preds = %if.then.221, %while.body.219 + %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.548, 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.549, 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.218 + +fv.default: ; preds = %if.merge.222 + br label %fv.merge + +fv.case: ; preds = %if.merge.222 + %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.222 + %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.222 + %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.550, i64 7 }, { ptr, i64 } { ptr @str.551, 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.223 + +while.hdr.223: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 3 + br i1 %icmp, label %while.body.224, label %while.exit.225 + +while.body.224: ; preds = %while.hdr.223 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.226, label %if.merge.227 + +while.exit.225: ; preds = %while.hdr.223 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.552, i64 1 }) + ret { ptr, i64 } %callN + +if.then.226: ; preds = %while.body.224 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.553, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.227 + +if.merge.227: ; preds = %if.then.226, %while.body.224 + %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.557, 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.558, 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.223 + +fv.default: ; preds = %if.merge.227 + br label %fv.merge + +fv.case: ; preds = %if.merge.227 + %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.227 + %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.227 + %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 77, 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.559, i64 9 }, { ptr, i64 } { ptr @str.560, 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.228 + +while.hdr.228: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.229, label %while.exit.230 + +while.body.229: ; preds = %while.hdr.228 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.231, label %if.merge.232 + +while.exit.230: ; preds = %while.hdr.228 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.561, i64 1 }) + ret { ptr, i64 } %callN + +if.then.231: ; preds = %while.body.229 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.562, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.232 + +if.merge.232: ; preds = %if.then.231, %while.body.229 + %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.565, 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.566, 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.228 + +fv.default: ; preds = %if.merge.232 + br label %fv.merge + +fv.case: ; preds = %if.merge.232 + %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.232 + %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.567, i64 4 }, { ptr, i64 } { ptr @str.568, 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.233 + +while.hdr.233: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 2 + br i1 %icmp, label %while.body.234, label %while.exit.235 + +while.body.234: ; preds = %while.hdr.233 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.236, label %if.merge.237 + +while.exit.235: ; preds = %while.hdr.233 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.569, i64 1 }) + ret { ptr, i64 } %callN + +if.then.236: ; preds = %while.body.234 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.570, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.237 + +if.merge.237: ; preds = %if.then.236, %while.body.234 + %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.573, 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.574, 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.233 + +fv.default: ; preds = %if.merge.237 + br label %fv.merge + +fv.case: ; preds = %if.merge.237 + %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.237 + %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.575, i64 6 }, { ptr, i64 } { ptr @str.576, 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.238 + +while.hdr.238: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 7 + br i1 %icmp, label %while.body.239, label %while.exit.240 + +while.body.239: ; preds = %while.hdr.238 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.241, label %if.merge.242 + +while.exit.240: ; preds = %while.hdr.238 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.577, i64 1 }) + ret { ptr, i64 } %callN + +if.then.241: ; preds = %while.body.239 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.578, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.242 + +if.merge.242: ; preds = %if.then.241, %while.body.239 + %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.586, 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.587, 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.238 + +fv.default: ; preds = %if.merge.242 + br label %fv.merge + +fv.case: ; preds = %if.merge.242 + %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.242 + %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.242 + %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.242 + %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.242 + %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 36, i64 undef }, i64 %ba.p2i31, 1 + br label %fv.merge + +fv.case33: ; preds = %if.merge.242 + %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 77, i64 undef }, i64 %ba.p2i36, 1 + br label %fv.merge + +fv.case38: ; preds = %if.merge.242 + %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 81, 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.588, i64 6 }, { ptr, i64 } { ptr @str.589, 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.243 + +while.hdr.243: ; preds = %fv.merge, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 4 + br i1 %icmp, label %while.body.244, label %while.exit.245 + +while.body.244: ; preds = %while.hdr.243 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.246, label %if.merge.247 + +while.exit.245: ; preds = %while.hdr.243 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.590, i64 1 }) + ret { ptr, i64 } %callN + +if.then.246: ; preds = %while.body.244 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.591, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.247 + +if.merge.247: ; preds = %if.then.246, %while.body.244 + %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.596, 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.597, 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.243 + +fv.default: ; preds = %if.merge.247 + br label %fv.merge + +fv.case: ; preds = %if.merge.247 + %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 87, i64 undef }, i64 %ba.p2i, 1 + br label %fv.merge + +fv.case17: ; preds = %if.merge.247 + %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 88, i64 undef }, i64 %ba.p2i20, 1 + br label %fv.merge + +fv.case22: ; preds = %if.merge.247 + %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.247 + %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 @@ -3240,43 +6045,43 @@ define internal { ptr, i64 } @struct_to_string__NSString(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.222, i64 8 }, { ptr, i64 } { ptr @str.223, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.598, i64 8 }, { ptr, i64 } { ptr @str.599, 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.158 + br label %while.hdr.248 -while.hdr.158: ; preds = %if.merge.162, %entry +while.hdr.248: ; preds = %if.merge.252, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 0 - br i1 %icmp, label %while.body.159, label %while.exit.160 + br i1 %icmp, label %while.body.249, label %while.exit.250 -while.body.159: ; preds = %while.hdr.158 +while.body.249: ; preds = %while.hdr.248 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.161, label %if.merge.162 + br i1 %icmpN, label %if.then.251, label %if.merge.252 -while.exit.160: ; preds = %while.hdr.158 +while.exit.250: ; preds = %while.hdr.248 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.224, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.600, i64 1 }) ret { ptr, i64 } %callN -if.then.161: ; preds = %while.body.159 +if.then.251: ; preds = %while.body.249 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.225, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.601, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.162 + br label %if.merge.252 -if.merge.162: ; preds = %if.then.161, %while.body.159 +if.merge.252: ; preds = %if.then.251, %while.body.249 %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.226, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [0 x { ptr, i64 }], ptr @field_names.602, 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.227, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.603, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load {}, ptr %alloca, align 1 @@ -3287,7 +6092,7 @@ if.merge.162: ; preds = %if.then.161, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.158 + br label %while.hdr.248 } ; Function Attrs: nounwind @@ -3295,43 +6100,43 @@ define internal { ptr, i64 } @struct_to_string__Triple(ptr %0, { i64, i64, i64 } entry: %alloca = alloca { i64, i64, i64 }, align 8 store { i64, i64, i64 } %1, ptr %alloca, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.228, i64 6 }, { ptr, i64 } { ptr @str.229, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.604, i64 6 }, { ptr, i64 } { ptr @str.605, 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.163 + br label %while.hdr.253 -while.hdr.163: ; preds = %fv.merge, %entry +while.hdr.253: ; preds = %fv.merge, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.164, label %while.exit.165 + br i1 %icmp, label %while.body.254, label %while.exit.255 -while.body.164: ; preds = %while.hdr.163 +while.body.254: ; preds = %while.hdr.253 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.166, label %if.merge.167 + br i1 %icmpN, label %if.then.256, label %if.merge.257 -while.exit.165: ; preds = %while.hdr.163 +while.exit.255: ; preds = %while.hdr.253 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.230, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.606, i64 1 }) ret { ptr, i64 } %callN -if.then.166: ; preds = %while.body.164 +if.then.256: ; preds = %while.body.254 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.231, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.607, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.167 + br label %if.merge.257 -if.merge.167: ; preds = %if.then.166, %while.body.164 +if.merge.257: ; preds = %if.then.256, %while.body.254 %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.235, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [3 x { ptr, i64 }], ptr @field_names.611, 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.236, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.612, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { i64, i64, i64 }, ptr %alloca, align 8 @@ -3350,29 +6155,29 @@ fv.merge: ; preds = %fv.default, %fv.cas %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.163 + br label %while.hdr.253 -fv.default: ; preds = %if.merge.167 +fv.default: ; preds = %if.merge.257 br label %fv.merge -fv.case: ; preds = %if.merge.167 +fv.case: ; preds = %if.merge.257 %fv.field = extractvalue { 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.167 +fv.case17: ; preds = %if.merge.257 %fv.field18 = extractvalue { 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.167 +fv.case20: ; preds = %if.merge.257 %fv.field21 = extractvalue { i64, 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 } @enum_to_string__OperatingSystem(ptr %0, i64 %1) #0 { +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 @@ -3380,9 +6185,9 @@ entry: %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.245, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [4 x { ptr, i64 }], ptr @field_names.618, 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.237, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.613, 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 @@ -3396,18 +6201,209 @@ entry: %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.172, label %if.merge.173 + br i1 %icmp, label %if.then.265, label %if.merge.266 -if.then.172: ; preds = %entry +if.then.265: ; 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.247, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.246, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.620, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.619, 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.173 + br label %if.merge.266 -if.merge.173: ; preds = %if.then.172, %entry +if.merge.266: ; preds = %if.then.265, %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.625, 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.621, 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.267, label %if.merge.268 + +if.then.267: ; 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.627, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.626, 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.268 + +if.merge.268: ; preds = %if.then.267, %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.635, 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.628, 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.269: ; 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.637, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.636, 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.270 + +if.merge.270: ; preds = %if.then.269, %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.269, label %if.merge.270 + +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 { 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 { 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 { 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 { 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 52, 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 { 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 53, 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.646, 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.638, 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.271, label %if.merge.272 + +if.then.271: ; 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.648, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.647, 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.272 + +if.merge.272: ; preds = %if.then.271, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -3421,9 +6417,9 @@ entry: %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.254, i64 0, i64 %loadN + %fn.gep = getelementptr inbounds [5 x { ptr, i64 }], ptr @field_names.655, 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.248, i64 1 }, { ptr, i64 } %fn.load) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.649, 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 @@ -3437,18 +6433,18 @@ entry: %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.174, label %if.merge.175 + br i1 %icmp, label %if.then.273, label %if.merge.274 -if.then.174: ; preds = %entry +if.then.273: ; 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.256, i64 1 }) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.255, i64 1 }, { ptr, i64 } %callN) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.657, i64 1 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.656, 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.175 + br label %if.merge.274 -if.merge.175: ; preds = %if.then.174, %entry +if.merge.274: ; preds = %if.then.273, %entry %loadN = load { ptr, i64 }, ptr %allocaN, align 8 ret { ptr, i64 } %loadN } @@ -3460,33 +6456,33 @@ entry: %ig.tmp = alloca [4 x i64], align 8 store [4 x i64] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.257, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.658, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.181 + br label %while.hdr.284 -while.hdr.181: ; preds = %if.merge.185, %entry +while.hdr.284: ; preds = %if.merge.288, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 4 - br i1 %icmp, label %while.body.182, label %while.exit.183 + br i1 %icmp, label %while.body.285, label %while.exit.286 -while.body.182: ; preds = %while.hdr.181 +while.body.285: ; preds = %while.hdr.284 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.184, label %if.merge.185 + br i1 %icmpN, label %if.then.287, label %if.merge.288 -while.exit.183: ; preds = %while.hdr.181 +while.exit.286: ; preds = %while.hdr.284 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.258, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.659, i64 1 }) ret { ptr, i64 } %call -if.then.184: ; preds = %while.body.182 +if.then.287: ; preds = %while.body.285 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.259, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.660, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.185 + br label %if.merge.288 -if.merge.185: ; preds = %if.then.184, %while.body.182 +if.merge.288: ; preds = %if.then.287, %while.body.285 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [4 x i64], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3500,7 +6496,211 @@ if.merge.185: ; preds = %if.then.184, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.181 + br label %while.hdr.284 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_16_FlagValue(ptr %0, [16 x { i1, { ptr, i64 } }] %1) #0 { +entry: + %alloca = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ig.tmp = alloca [16 x { i1, { ptr, i64 } }], align 8 + %ba.tmp = alloca { i1, { ptr, i64 } }, align 8 + store [16 x { i1, { ptr, i64 } }] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.661, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.289 + +while.hdr.289: ; preds = %if.merge.293, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 16 + br i1 %icmp, label %while.body.290, label %while.exit.291 + +while.body.290: ; preds = %while.hdr.289 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.292, label %if.merge.293 + +while.exit.291: ; preds = %while.hdr.289 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.662, i64 1 }) + ret { ptr, i64 } %call + +if.then.292: ; preds = %while.body.290 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.663, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.293 + +if.merge.293: ; preds = %if.then.292, %while.body.290 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [16 x { i1, { ptr, i64 } }], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [16 x { i1, { ptr, i64 } }] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [16 x { i1, { ptr, i64 } }], ptr %ig.tmp, i64 0, 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 79, 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.289 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_8_s64(ptr %0, [8 x i64] %1) #0 { +entry: + %alloca = alloca [8 x i64], align 8 + %ig.tmp = alloca [8 x i64], align 8 + store [8 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.664, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.294 + +while.hdr.294: ; preds = %if.merge.298, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 8 + br i1 %icmp, label %while.body.295, label %while.exit.296 + +while.body.295: ; preds = %while.hdr.294 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.297, label %if.merge.298 + +while.exit.296: ; preds = %while.hdr.294 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.665, i64 1 }) + ret { ptr, i64 } %call + +if.then.297: ; preds = %while.body.295 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.666, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.298 + +if.merge.298: ; preds = %if.then.297, %while.body.295 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [8 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [8 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [8 x i64], ptr %ig.tmp, i64 0, 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.294 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_u8(ptr %0, [64 x i8] %1) #0 { +entry: + %alloca = alloca [64 x i8], align 1 + %ig.tmp = alloca [64 x i8], align 1 + store [64 x i8] %1, ptr %alloca, align 1 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.667, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.299 + +while.hdr.299: ; preds = %if.merge.303, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.300, label %while.exit.301 + +while.body.300: ; preds = %while.hdr.299 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.302, label %if.merge.303 + +while.exit.301: ; preds = %while.hdr.299 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.668, i64 1 }) + ret { ptr, i64 } %call + +if.then.302: ; preds = %while.body.300 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.669, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.303 + +if.merge.303: ; preds = %if.then.302, %while.body.300 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i8], ptr %alloca, align 1 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i8] %loadN, ptr %ig.tmp, align 1 + %ig.ptr = getelementptr [64 x i8], ptr %ig.tmp, i64 0, 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.299 +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @array_to_string__AR_64_s64(ptr %0, [64 x i64] %1) #0 { +entry: + %alloca = alloca [64 x i64], align 8 + %ig.tmp = alloca [64 x i64], align 8 + store [64 x i64] %1, ptr %alloca, align 8 + %allocaN = alloca { ptr, i64 }, align 8 + store { ptr, i64 } { ptr @str.670, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.304 + +while.hdr.304: ; preds = %if.merge.308, %entry + %load = load i64, ptr %allocaN, align 8 + %icmp = icmp slt i64 %load, 64 + br i1 %icmp, label %while.body.305, label %while.exit.306 + +while.body.305: ; preds = %while.hdr.304 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.307, label %if.merge.308 + +while.exit.306: ; preds = %while.hdr.304 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.671, i64 1 }) + ret { ptr, i64 } %call + +if.then.307: ; preds = %while.body.305 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.672, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.308 + +if.merge.308: ; preds = %if.then.307, %while.body.305 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %loadN = load [64 x i64], ptr %alloca, align 8 + %loadN = load i64, ptr %allocaN, align 8 + store [64 x i64] %loadN, ptr %ig.tmp, align 8 + %ig.ptr = getelementptr [64 x i64], ptr %ig.tmp, i64 0, 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.304 } ; Function Attrs: nounwind @@ -3511,33 +6711,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [1 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.260, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.673, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.186 + br label %while.hdr.309 -while.hdr.186: ; preds = %if.merge.190, %entry +while.hdr.309: ; preds = %if.merge.313, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 1 - br i1 %icmp, label %while.body.187, label %while.exit.188 + br i1 %icmp, label %while.body.310, label %while.exit.311 -while.body.187: ; preds = %while.hdr.186 +while.body.310: ; preds = %while.hdr.309 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.189, label %if.merge.190 + br i1 %icmpN, label %if.then.312, label %if.merge.313 -while.exit.188: ; preds = %while.hdr.186 +while.exit.311: ; preds = %while.hdr.309 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.261, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.674, i64 1 }) ret { ptr, i64 } %call -if.then.189: ; preds = %while.body.187 +if.then.312: ; preds = %while.body.310 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.262, i64 2 }) + %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.190 + br label %if.merge.313 -if.merge.190: ; preds = %if.then.189, %while.body.187 +if.merge.313: ; preds = %if.then.312, %while.body.310 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [1 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3553,7 +6753,7 @@ if.merge.190: ; preds = %if.then.189, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.186 + br label %while.hdr.309 } ; Function Attrs: nounwind @@ -3564,33 +6764,33 @@ entry: %ba.tmp = alloca { i64, i64 }, align 8 store [3 x { i64, i64 }] %1, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.263, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.676, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.191 + br label %while.hdr.314 -while.hdr.191: ; preds = %if.merge.195, %entry +while.hdr.314: ; preds = %if.merge.318, %entry %load = load i64, ptr %allocaN, align 8 %icmp = icmp slt i64 %load, 3 - br i1 %icmp, label %while.body.192, label %while.exit.193 + br i1 %icmp, label %while.body.315, label %while.exit.316 -while.body.192: ; preds = %while.hdr.191 +while.body.315: ; preds = %while.hdr.314 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.194, label %if.merge.195 + br i1 %icmpN, label %if.then.317, label %if.merge.318 -while.exit.193: ; preds = %while.hdr.191 +while.exit.316: ; preds = %while.hdr.314 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.264, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.677, i64 1 }) ret { ptr, i64 } %call -if.then.194: ; preds = %while.body.192 +if.then.317: ; preds = %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.265, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.678, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.195 + br label %if.merge.318 -if.merge.195: ; preds = %if.then.194, %while.body.192 +if.merge.318: ; preds = %if.then.317, %while.body.315 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load [3 x { i64, i64 }], ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3606,7 +6806,7 @@ if.merge.195: ; preds = %if.then.194, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.191 + br label %while.hdr.314 } ; Function Attrs: nounwind @@ -3616,35 +6816,35 @@ entry: %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.266, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.679, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.200 + br label %while.hdr.326 -while.hdr.200: ; preds = %if.merge.204, %entry +while.hdr.326: ; preds = %if.merge.330, %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.201, label %while.exit.202 + br i1 %icmp, label %while.body.327, label %while.exit.328 -while.body.201: ; preds = %while.hdr.200 +while.body.327: ; preds = %while.hdr.326 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.203, label %if.merge.204 + br i1 %icmpN, label %if.then.329, label %if.merge.330 -while.exit.202: ; preds = %while.hdr.200 +while.exit.328: ; preds = %while.hdr.326 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.267, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.680, i64 1 }) ret { ptr, i64 } %call -if.then.203: ; preds = %while.body.201 +if.then.329: ; preds = %while.body.327 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.268, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.681, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.204 + br label %if.merge.330 -if.merge.204: ; preds = %if.then.203, %while.body.201 +if.merge.330: ; preds = %if.then.329, %while.body.327 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3660,7 +6860,167 @@ if.merge.204: ; preds = %if.then.203, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.200 + br label %while.hdr.326 +} + +; 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.682, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.331 + +while.hdr.331: ; preds = %if.merge.335, %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.332, label %while.exit.333 + +while.body.332: ; preds = %while.hdr.331 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.334, label %if.merge.335 + +while.exit.333: ; preds = %while.hdr.331 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.683, i64 1 }) + ret { ptr, i64 } %call + +if.then.334: ; preds = %while.body.332 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.684, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.335 + +if.merge.335: ; preds = %if.then.334, %while.body.332 + %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.331 +} + +; 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.685, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.336 + +while.hdr.336: ; preds = %if.merge.340, %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.337, label %while.exit.338 + +while.body.337: ; preds = %while.hdr.336 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.339, label %if.merge.340 + +while.exit.338: ; preds = %while.hdr.336 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.686, i64 1 }) + ret { ptr, i64 } %call + +if.then.339: ; preds = %while.body.337 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.687, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.340 + +if.merge.340: ; preds = %if.then.339, %while.body.337 + %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 76, 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.336 +} + +; 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.688, i64 1 }, ptr %allocaN, align 8 + %allocaN = alloca i64, align 8 + store i64 0, ptr %allocaN, align 8 + br label %while.hdr.341 + +while.hdr.341: ; preds = %if.merge.345, %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.342, label %while.exit.343 + +while.body.342: ; preds = %while.hdr.341 + %loadN = load i64, ptr %allocaN, align 8 + %icmpN = icmp sgt i64 %loadN, 0 + br i1 %icmpN, label %if.then.344, label %if.merge.345 + +while.exit.343: ; preds = %while.hdr.341 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.689, i64 1 }) + ret { ptr, i64 } %call + +if.then.344: ; preds = %while.body.342 + %loadN = load { ptr, i64 }, ptr %allocaN, align 8 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.690, i64 2 }) + store { ptr, i64 } %callN, ptr %allocaN, align 8 + br label %if.merge.345 + +if.merge.345: ; preds = %if.then.344, %while.body.342 + %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 78, 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.341 } ; Function Attrs: nounwind @@ -3670,35 +7030,35 @@ entry: %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.269, i64 1 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.691, i64 1 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 - br label %while.hdr.205 + br label %while.hdr.346 -while.hdr.205: ; preds = %if.merge.209, %entry +while.hdr.346: ; preds = %if.merge.350, %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.206, label %while.exit.207 + br i1 %icmp, label %while.body.347, label %while.exit.348 -while.body.206: ; preds = %while.hdr.205 +while.body.347: ; preds = %while.hdr.346 %loadN = load i64, ptr %allocaN, align 8 %icmpN = icmp sgt i64 %loadN, 0 - br i1 %icmpN, label %if.then.208, label %if.merge.209 + br i1 %icmpN, label %if.then.349, label %if.merge.350 -while.exit.207: ; preds = %while.hdr.205 +while.exit.348: ; preds = %while.hdr.346 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.270, i64 1 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.692, i64 1 }) ret { ptr, i64 } %call -if.then.208: ; preds = %while.body.206 +if.then.349: ; preds = %while.body.347 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.271, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.693, i64 2 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 - br label %if.merge.209 + br label %if.merge.350 -if.merge.209: ; preds = %if.then.208, %while.body.206 +if.merge.350: ; preds = %if.then.349, %while.body.347 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 %loadN = load { ptr, i64 }, ptr %alloca, align 8 %loadN = load i64, ptr %allocaN, align 8 @@ -3714,7 +7074,7 @@ if.merge.209: ; preds = %if.then.208, %while %loadN = load i64, ptr %allocaN, align 8 %add = add i64 %loadN, 1 store i64 %add, ptr %allocaN, align 8 - br label %while.hdr.205 + br label %while.hdr.346 } ; Function Attrs: nounwind @@ -3728,20 +7088,20 @@ entry: 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.232, label %if.else.233 + br i1 %icmp, label %if.then.386, label %if.else.387 -if.then.232: ; preds = %entry - br label %if.merge.234 +if.then.386: ; preds = %entry + br label %if.merge.388 -if.else.233: ; preds = %entry +if.else.387: ; 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.274, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.273, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.234 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.696, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.695, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.388 -if.merge.234: ; preds = %if.else.233, %if.then.232 - %bp = phi { ptr, i64 } [ { ptr @str.272, i64 4 }, %if.then.232 ], [ %callN, %if.else.233 ] +if.merge.388: ; preds = %if.else.387, %if.then.386 + %bp = phi { ptr, i64 } [ { ptr @str.694, i64 4 }, %if.then.386 ], [ %callN, %if.else.387 ] ret { ptr, i64 } %bp } @@ -3756,20 +7116,20 @@ entry: 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.248, label %if.else.249 + br i1 %icmp, label %if.then.402, label %if.else.403 -if.then.248: ; preds = %entry - br label %if.merge.250 +if.then.402: ; preds = %entry + br label %if.merge.404 -if.else.249: ; preds = %entry +if.else.403: ; 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.277, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.276, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.250 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.699, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.698, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.404 -if.merge.250: ; preds = %if.else.249, %if.then.248 - %bp = phi { ptr, i64 } [ { ptr @str.275, i64 4 }, %if.then.248 ], [ %callN, %if.else.249 ] +if.merge.404: ; preds = %if.else.403, %if.then.402 + %bp = phi { ptr, i64 } [ { ptr @str.697, i64 4 }, %if.then.402 ], [ %callN, %if.else.403 ] ret { ptr, i64 } %bp } @@ -3784,20 +7144,20 @@ entry: 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.251, label %if.else.252 + br i1 %icmp, label %if.then.405, label %if.else.406 -if.then.251: ; preds = %entry - br label %if.merge.253 +if.then.405: ; preds = %entry + br label %if.merge.407 -if.else.252: ; preds = %entry +if.else.406: ; 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.280, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.279, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.253 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.702, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.701, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.407 -if.merge.253: ; preds = %if.else.252, %if.then.251 - %bp = phi { ptr, i64 } [ { ptr @str.278, i64 4 }, %if.then.251 ], [ %callN, %if.else.252 ] +if.merge.407: ; preds = %if.else.406, %if.then.405 + %bp = phi { ptr, i64 } [ { ptr @str.700, i64 4 }, %if.then.405 ], [ %callN, %if.else.406 ] ret { ptr, i64 } %bp } @@ -3812,20 +7172,20 @@ entry: 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.254, label %if.else.255 + br i1 %icmp, label %if.then.408, label %if.else.409 -if.then.254: ; preds = %entry - br label %if.merge.256 +if.then.408: ; preds = %entry + br label %if.merge.410 -if.else.255: ; preds = %entry +if.else.409: ; 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.283, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.282, i64 11 }, { ptr, i64 } %callN) - br label %if.merge.256 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.705, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.704, i64 11 }, { ptr, i64 } %callN) + br label %if.merge.410 -if.merge.256: ; preds = %if.else.255, %if.then.254 - %bp = phi { ptr, i64 } [ { ptr @str.281, i64 4 }, %if.then.254 ], [ %callN, %if.else.255 ] +if.merge.410: ; preds = %if.else.409, %if.then.408 + %bp = phi { ptr, i64 } [ { ptr @str.703, i64 4 }, %if.then.408 ], [ %callN, %if.else.409 ] ret { ptr, i64 } %bp } @@ -3840,20 +7200,20 @@ entry: 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.257, label %if.else.258 + br i1 %icmp, label %if.then.411, label %if.else.412 -if.then.257: ; preds = %entry - br label %if.merge.259 +if.then.411: ; preds = %entry + br label %if.merge.413 -if.else.258: ; preds = %entry +if.else.412: ; 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.286, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.285, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.259 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.708, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.707, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.413 -if.merge.259: ; preds = %if.else.258, %if.then.257 - %bp = phi { ptr, i64 } [ { ptr @str.284, i64 4 }, %if.then.257 ], [ %callN, %if.else.258 ] +if.merge.413: ; preds = %if.else.412, %if.then.411 + %bp = phi { ptr, i64 } [ { ptr @str.706, i64 4 }, %if.then.411 ], [ %callN, %if.else.412 ] ret { ptr, i64 } %bp } @@ -3867,20 +7227,20 @@ entry: 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.260, label %if.else.261 + br i1 %icmp, label %if.then.414, label %if.else.415 -if.then.260: ; preds = %entry - br label %if.merge.262 +if.then.414: ; preds = %entry + br label %if.merge.416 -if.else.261: ; preds = %entry +if.else.415: ; 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.289, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.288, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.262 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.711, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.710, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.416 -if.merge.262: ; preds = %if.else.261, %if.then.260 - %bp = phi { ptr, i64 } [ { ptr @str.287, i64 4 }, %if.then.260 ], [ %callN, %if.else.261 ] +if.merge.416: ; preds = %if.else.415, %if.then.414 + %bp = phi { ptr, i64 } [ { ptr @str.709, i64 4 }, %if.then.414 ], [ %callN, %if.else.415 ] ret { ptr, i64 } %bp } @@ -3895,20 +7255,20 @@ entry: 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.263, label %if.else.264 + br i1 %icmp, label %if.then.417, label %if.else.418 -if.then.263: ; preds = %entry - br label %if.merge.265 +if.then.417: ; preds = %entry + br label %if.merge.419 -if.else.264: ; preds = %entry +if.else.418: ; 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.292, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.291, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.265 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.714, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.713, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.419 -if.merge.265: ; preds = %if.else.264, %if.then.263 - %bp = phi { ptr, i64 } [ { ptr @str.290, i64 4 }, %if.then.263 ], [ %callN, %if.else.264 ] +if.merge.419: ; preds = %if.else.418, %if.then.417 + %bp = phi { ptr, i64 } [ { ptr @str.712, i64 4 }, %if.then.417 ], [ %callN, %if.else.418 ] ret { ptr, i64 } %bp } @@ -3923,25 +7283,25 @@ entry: 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.266, label %if.else.267 + br i1 %icmp, label %if.then.420, label %if.else.421 -if.then.266: ; preds = %entry - br label %if.merge.268 +if.then.420: ; preds = %entry + br label %if.merge.422 -if.else.267: ; preds = %entry +if.else.421: ; 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.295, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.294, i64 18 }, { ptr, i64 } %callN) - br label %if.merge.268 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.717, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.716, i64 18 }, { ptr, i64 } %callN) + br label %if.merge.422 -if.merge.268: ; preds = %if.else.267, %if.then.266 - %bp = phi { ptr, i64 } [ { ptr @str.293, i64 4 }, %if.then.266 ], [ %callN, %if.else.267 ] +if.merge.422: ; preds = %if.else.421, %if.then.420 + %bp = phi { ptr, i64 } [ { ptr @str.715, i64 4 }, %if.then.420 ], [ %callN, %if.else.421 ] ret { ptr, i64 } %bp } ; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_NSString(ptr %0, ptr %1) #0 { +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 @@ -3951,244 +7311,20 @@ entry: 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.269, label %if.else.270 + br i1 %icmp, label %if.then.423, label %if.else.424 -if.then.269: ; preds = %entry - br label %if.merge.271 +if.then.423: ; preds = %entry + br label %if.merge.425 -if.else.270: ; preds = %entry +if.else.424: ; 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.298, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.297, i64 9 }, { ptr, i64 } %callN) - br label %if.merge.271 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.720, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.719, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.425 -if.merge.271: ; preds = %if.else.270, %if.then.269 - %bp = phi { ptr, i64 } [ { ptr @str.296, i64 4 }, %if.then.269 ], [ %callN, %if.else.270 ] - 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.272, label %if.else.273 - -if.then.272: ; preds = %entry - br label %if.merge.274 - -if.else.273: ; 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.301, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.300, i64 12 }, { ptr, i64 } %callN) - br label %if.merge.274 - -if.merge.274: ; preds = %if.else.273, %if.then.272 - %bp = phi { ptr, i64 } [ { ptr @str.299, i64 4 }, %if.then.272 ], [ %callN, %if.else.273 ] - ret { ptr, i64 } %bp -} - -; Function Attrs: nounwind -define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.275, label %if.else.276 - -if.then.275: ; preds = %entry - br label %if.merge.277 - -if.else.276: ; 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.304, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.303, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.277 - -if.merge.277: ; preds = %if.else.276, %if.then.275 - %bp = phi { ptr, i64 } [ { ptr @str.302, i64 4 }, %if.then.275 ], [ %callN, %if.else.276 ] - 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.278, label %if.else.279 - -if.then.278: ; preds = %entry - br label %if.merge.280 - -if.else.279: ; 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.307, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.306, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.280 - -if.merge.280: ; preds = %if.else.279, %if.then.278 - %bp = phi { ptr, i64 } [ { ptr @str.305, i64 4 }, %if.then.278 ], [ %callN, %if.else.279 ] - 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.281, label %if.else.282 - -if.then.281: ; preds = %entry - br label %if.merge.283 - -if.else.282: ; 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.310, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.309, i64 5 }, { ptr, i64 } %callN) - br label %if.merge.283 - -if.merge.283: ; preds = %if.else.282, %if.then.281 - %bp = phi { ptr, i64 } [ { ptr @str.308, i64 4 }, %if.then.281 ], [ %callN, %if.else.282 ] - 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.284, label %if.else.285 - -if.then.284: ; preds = %entry - br label %if.merge.286 - -if.else.285: ; 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.313, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.312, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.286 - -if.merge.286: ; preds = %if.else.285, %if.then.284 - %bp = phi { ptr, i64 } [ { ptr @str.311, i64 4 }, %if.then.284 ], [ %callN, %if.else.285 ] - 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.287, label %if.else.288 - -if.then.287: ; preds = %entry - br label %if.merge.289 - -if.else.288: ; 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.316, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.315, i64 4 }, { ptr, i64 } %callN) - br label %if.merge.289 - -if.merge.289: ; preds = %if.else.288, %if.then.287 - %bp = phi { ptr, i64 } [ { ptr @str.314, i64 4 }, %if.then.287 ], [ %callN, %if.else.288 ] - 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.290, label %if.else.291 - -if.then.290: ; preds = %entry - br label %if.merge.292 - -if.else.291: ; 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.319, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.318, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.292 - -if.merge.292: ; preds = %if.else.291, %if.then.290 - %bp = phi { ptr, i64 } [ { ptr @str.317, i64 4 }, %if.then.290 ], [ %callN, %if.else.291 ] - 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.293, label %if.else.294 - -if.then.293: ; preds = %entry - br label %if.merge.295 - -if.else.294: ; 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.322, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.321, i64 6 }, { ptr, i64 } %callN) - br label %if.merge.295 - -if.merge.295: ; preds = %if.else.294, %if.then.293 - %bp = phi { ptr, i64 } [ { ptr @str.320, i64 4 }, %if.then.293 ], [ %callN, %if.else.294 ] +if.merge.425: ; preds = %if.else.424, %if.then.423 + %bp = phi { ptr, i64 } [ { ptr @str.718, i64 4 }, %if.then.423 ], [ %callN, %if.else.424 ] ret { ptr, i64 } %bp } @@ -4203,20 +7339,606 @@ entry: 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.296, label %if.else.297 + br i1 %icmp, label %if.then.426, label %if.else.427 -if.then.296: ; preds = %entry - br label %if.merge.298 +if.then.426: ; preds = %entry + br label %if.merge.428 -if.else.297: ; preds = %entry +if.else.427: ; 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.325, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.324, i64 3 }, { ptr, i64 } %callN) - br label %if.merge.298 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.723, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.722, i64 3 }, { ptr, i64 } %callN) + br label %if.merge.428 -if.merge.298: ; preds = %if.else.297, %if.then.296 - %bp = phi { ptr, i64 } [ { ptr @str.323, i64 4 }, %if.then.296 ], [ %callN, %if.else.297 ] +if.merge.428: ; preds = %if.else.427, %if.then.426 + %bp = phi { ptr, i64 } [ { ptr @str.721, i64 4 }, %if.then.426 ], [ %callN, %if.else.427 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s32(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.429, label %if.else.430 + +if.then.429: ; preds = %entry + br label %if.merge.431 + +if.else.430: ; 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.726, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.725, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.431 + +if.merge.431: ; preds = %if.else.430, %if.then.429 + %bp = phi { ptr, i64 } [ { ptr @str.724, i64 4 }, %if.then.429 ], [ %callN, %if.else.430 ] + 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.432, label %if.else.433 + +if.then.432: ; preds = %entry + br label %if.merge.434 + +if.else.433: ; 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.729, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.728, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.434 + +if.merge.434: ; preds = %if.else.433, %if.then.432 + %bp = phi { ptr, i64 } [ { ptr @str.727, i64 4 }, %if.then.432 ], [ %callN, %if.else.433 ] + 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.435, label %if.else.436 + +if.then.435: ; preds = %entry + br label %if.merge.437 + +if.else.436: ; 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.732, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.731, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.437 + +if.merge.437: ; preds = %if.else.436, %if.then.435 + %bp = phi { ptr, i64 } [ { ptr @str.730, i64 4 }, %if.then.435 ], [ %callN, %if.else.436 ] + 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.438, label %if.else.439 + +if.then.438: ; preds = %entry + br label %if.merge.440 + +if.else.439: ; 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.735, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.734, i64 8 }, { ptr, i64 } %callN) + br label %if.merge.440 + +if.merge.440: ; preds = %if.else.439, %if.then.438 + %bp = phi { ptr, i64 } [ { ptr @str.733, i64 4 }, %if.then.438 ], [ %callN, %if.else.439 ] + 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.441, label %if.else.442 + +if.then.441: ; preds = %entry + br label %if.merge.443 + +if.else.442: ; 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.738, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.737, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.443 + +if.merge.443: ; preds = %if.else.442, %if.then.441 + %bp = phi { ptr, i64 } [ { ptr @str.736, i64 4 }, %if.then.441 ], [ %callN, %if.else.442 ] + 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.444, label %if.else.445 + +if.then.444: ; preds = %entry + br label %if.merge.446 + +if.else.445: ; 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.741, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.740, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.446 + +if.merge.446: ; preds = %if.else.445, %if.then.444 + %bp = phi { ptr, i64 } [ { ptr @str.739, i64 4 }, %if.then.444 ], [ %callN, %if.else.445 ] + 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.447, label %if.else.448 + +if.then.447: ; preds = %entry + br label %if.merge.449 + +if.else.448: ; 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.744, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.743, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.449 + +if.merge.449: ; preds = %if.else.448, %if.then.447 + %bp = phi { ptr, i64 } [ { ptr @str.742, i64 4 }, %if.then.447 ], [ %callN, %if.else.448 ] + 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.450, label %if.else.451 + +if.then.450: ; preds = %entry + br label %if.merge.452 + +if.else.451: ; 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.747, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.746, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.452 + +if.merge.452: ; preds = %if.else.451, %if.then.450 + %bp = phi { ptr, i64 } [ { ptr @str.745, i64 4 }, %if.then.450 ], [ %callN, %if.else.451 ] + 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.453, label %if.else.454 + +if.then.453: ; preds = %entry + br label %if.merge.455 + +if.else.454: ; 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.750, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.749, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.455 + +if.merge.455: ; preds = %if.else.454, %if.then.453 + %bp = phi { ptr, i64 } [ { ptr @str.748, i64 4 }, %if.then.453 ], [ %callN, %if.else.454 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_s64(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.456, label %if.else.457 + +if.then.456: ; preds = %entry + br label %if.merge.458 + +if.else.457: ; 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.753, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.752, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.458 + +if.merge.458: ; preds = %if.else.457, %if.then.456 + %bp = phi { ptr, i64 } [ { ptr @str.751, i64 4 }, %if.then.456 ], [ %callN, %if.else.457 ] + 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.459, label %if.else.460 + +if.then.459: ; preds = %entry + br label %if.merge.461 + +if.else.460: ; 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.756, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.755, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.461 + +if.merge.461: ; preds = %if.else.460, %if.then.459 + %bp = phi { ptr, i64 } [ { ptr @str.754, i64 4 }, %if.then.459 ], [ %callN, %if.else.460 ] + 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.462, label %if.else.463 + +if.then.462: ; preds = %entry + br label %if.merge.464 + +if.else.463: ; 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.759, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.758, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.464 + +if.merge.464: ; preds = %if.else.463, %if.then.462 + %bp = phi { ptr, i64 } [ { ptr @str.757, i64 4 }, %if.then.462 ], [ %callN, %if.else.463 ] + 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.465, label %if.else.466 + +if.then.465: ; preds = %entry + br label %if.merge.467 + +if.else.466: ; 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.762, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.761, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.467 + +if.merge.467: ; preds = %if.else.466, %if.then.465 + %bp = phi { ptr, i64 } [ { ptr @str.760, i64 4 }, %if.then.465 ], [ %callN, %if.else.466 ] + ret { ptr, i64 } %bp +} + +; Function Attrs: nounwind +define internal { ptr, i64 } @pointer_to_string__ptr_NSString(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.468, label %if.else.469 + +if.then.468: ; preds = %entry + br label %if.merge.470 + +if.else.469: ; 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.765, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.764, i64 9 }, { ptr, i64 } %callN) + br label %if.merge.470 + +if.merge.470: ; preds = %if.else.469, %if.then.468 + %bp = phi { ptr, i64 } [ { ptr @str.763, i64 4 }, %if.then.468 ], [ %callN, %if.else.469 ] + 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.471, label %if.else.472 + +if.then.471: ; preds = %entry + br label %if.merge.473 + +if.else.472: ; 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.768, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.767, i64 12 }, { ptr, i64 } %callN) + br label %if.merge.473 + +if.merge.473: ; preds = %if.else.472, %if.then.471 + %bp = phi { ptr, i64 } [ { ptr @str.766, i64 4 }, %if.then.471 ], [ %callN, %if.else.472 ] + 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.474, label %if.else.475 + +if.then.474: ; preds = %entry + br label %if.merge.476 + +if.else.475: ; 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.771, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.770, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.476 + +if.merge.476: ; preds = %if.else.475, %if.then.474 + %bp = phi { ptr, i64 } [ { ptr @str.769, i64 4 }, %if.then.474 ], [ %callN, %if.else.475 ] + 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.477, label %if.else.478 + +if.then.477: ; preds = %entry + br label %if.merge.479 + +if.else.478: ; 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.774, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.773, i64 5 }, { ptr, i64 } %callN) + br label %if.merge.479 + +if.merge.479: ; preds = %if.else.478, %if.then.477 + %bp = phi { ptr, i64 } [ { ptr @str.772, i64 4 }, %if.then.477 ], [ %callN, %if.else.478 ] + 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.480, label %if.else.481 + +if.then.480: ; preds = %entry + br label %if.merge.482 + +if.else.481: ; 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.777, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.776, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.482 + +if.merge.482: ; preds = %if.else.481, %if.then.480 + %bp = phi { ptr, i64 } [ { ptr @str.775, i64 4 }, %if.then.480 ], [ %callN, %if.else.481 ] + 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.483, label %if.else.484 + +if.then.483: ; preds = %entry + br label %if.merge.485 + +if.else.484: ; 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.780, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.779, i64 4 }, { ptr, i64 } %callN) + br label %if.merge.485 + +if.merge.485: ; preds = %if.else.484, %if.then.483 + %bp = phi { ptr, i64 } [ { ptr @str.778, i64 4 }, %if.then.483 ], [ %callN, %if.else.484 ] + 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.486, label %if.else.487 + +if.then.486: ; preds = %entry + br label %if.merge.488 + +if.else.487: ; 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.783, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.782, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.488 + +if.merge.488: ; preds = %if.else.487, %if.then.486 + %bp = phi { ptr, i64 } [ { ptr @str.781, i64 4 }, %if.then.486 ], [ %callN, %if.else.487 ] + 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.489, label %if.else.490 + +if.then.489: ; preds = %entry + br label %if.merge.491 + +if.else.490: ; 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.786, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.785, i64 6 }, { ptr, i64 } %callN) + br label %if.merge.491 + +if.merge.491: ; preds = %if.else.490, %if.then.489 + %bp = phi { ptr, i64 } [ { ptr @str.784, i64 4 }, %if.then.489 ], [ %callN, %if.else.490 ] ret { ptr, i64 } %bp } @@ -4231,20 +7953,20 @@ entry: 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.299, label %if.else.300 + br i1 %icmp, label %if.then.492, label %if.else.493 -if.then.299: ; preds = %entry - br label %if.merge.301 +if.then.492: ; preds = %entry + br label %if.merge.494 -if.else.300: ; preds = %entry +if.else.493: ; 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.328, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.327, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.301 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.789, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.788, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.494 -if.merge.301: ; preds = %if.else.300, %if.then.299 - %bp = phi { ptr, i64 } [ { ptr @str.326, i64 4 }, %if.then.299 ], [ %callN, %if.else.300 ] +if.merge.494: ; preds = %if.else.493, %if.then.492 + %bp = phi { ptr, i64 } [ { ptr @str.787, i64 4 }, %if.then.492 ], [ %callN, %if.else.493 ] ret { ptr, i64 } %bp } @@ -4259,23 +7981,119 @@ entry: 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.302, label %if.else.303 + br i1 %icmp, label %if.then.495, label %if.else.496 -if.then.302: ; preds = %entry - br label %if.merge.304 +if.then.495: ; preds = %entry + br label %if.merge.497 -if.else.303: ; preds = %entry +if.else.496: ; 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.331, i64 3 }, { ptr, i64 } %call) - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.330, i64 7 }, { ptr, i64 } %callN) - br label %if.merge.304 + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.792, i64 3 }, { ptr, i64 } %call) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } { ptr @str.791, i64 7 }, { ptr, i64 } %callN) + br label %if.merge.497 -if.merge.304: ; preds = %if.else.303, %if.then.302 - %bp = phi { ptr, i64 } [ { ptr @str.329, i64 4 }, %if.then.302 ], [ %callN, %if.else.303 ] +if.merge.497: ; preds = %if.else.496, %if.then.495 + %bp = phi { ptr, i64 } [ { ptr @str.790, i64 4 }, %if.then.495 ], [ %callN, %if.else.496 ] 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.504, label %if.merge.505 + +if.then.504: ; preds = %entry + ret { ptr, i64 } { ptr @str.793, i64 4 } + +if.merge.505: ; 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 39, 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.506, label %if.merge.507 + +if.then.506: ; preds = %entry + ret { ptr, i64 } { ptr @str.794, i64 4 } + +if.merge.507: ; 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_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.508, label %if.merge.509 + +if.then.508: ; preds = %entry + ret { ptr, i64 } { ptr @str.795, i64 4 } + +if.merge.509: ; 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 45, 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.510, label %if.merge.511 + +if.then.510: ; preds = %entry + ret { ptr, i64 } { ptr @str.796, i64 4 } + +if.merge.511: ; 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 88, i64 undef }, i64 %ba.p2i, 1 + %call = call { ptr, i64 } @any_to_string(ptr %0, { i64, i64 } %ba.val) + ret { ptr, i64 } %call +} + define internal void @__sx_objc_selector_init() { entry: %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) diff --git a/examples/expected/1347-ffi-objc-dsl-07-mangling-table.ir b/examples/expected/1347-ffi-objc-dsl-07-mangling-table.ir index ca138e7..7340857 100644 --- a/examples/expected/1347-ffi-objc-dsl-07-mangling-table.ir +++ b/examples/expected/1347-ffi-objc-dsl-07-mangling-table.ir @@ -1,7 +1,4 @@ -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @OBJC_SELECTOR_REFERENCES_length = internal global ptr null @OBJC_SELECTOR_REFERENCES_addObject_ = internal global ptr null @@ -11,47 +8,47 @@ @OBJC_SELECTOR_REFERENCES_initWithFrame_options_ = internal global ptr null @OBJC_SELECTOR_REFERENCES_actualSelectorName = internal global ptr null @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [9 x i8] c"NSObject\00", align 1 -@str.37 = private unnamed_addr constant [16 x i8] c"SxManglingProbe\00", align 1 -@str.38 = private unnamed_addr constant [7 x i8] c"length\00", align 1 -@str.39 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1 -@str.40 = private unnamed_addr constant [11 x i8] c"addObject:\00", align 1 -@str.41 = private unnamed_addr constant [5 x i8] c"i@:i\00", align 1 -@str.42 = private unnamed_addr constant [13 x i8] c"combine:and:\00", align 1 -@str.43 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1 -@str.44 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00", align 1 -@str.45 = private unnamed_addr constant [7 x i8] c"i@:iii\00", align 1 -@str.46 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00", align 1 -@str.47 = private unnamed_addr constant [8 x i8] c"i@:iiii\00", align 1 -@str.48 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00", align 1 -@str.49 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1 -@str.50 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00", align 1 -@str.51 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1 -@str.52 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1 -@str.53 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.54 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1 +@str.162 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.163 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.164 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.165 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.166 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.167 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.168 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.169 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.170 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.171 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.172 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.173 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.174 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.175 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.176 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.177 = private unnamed_addr constant [9 x i8] c"NSObject\00", align 1 +@str.178 = private unnamed_addr constant [16 x i8] c"SxManglingProbe\00", align 1 +@str.179 = private unnamed_addr constant [7 x i8] c"length\00", align 1 +@str.180 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1 +@str.181 = private unnamed_addr constant [11 x i8] c"addObject:\00", align 1 +@str.182 = private unnamed_addr constant [5 x i8] c"i@:i\00", align 1 +@str.183 = private unnamed_addr constant [13 x i8] c"combine:and:\00", align 1 +@str.184 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1 +@str.185 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00", align 1 +@str.186 = private unnamed_addr constant [7 x i8] c"i@:iii\00", align 1 +@str.187 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00", align 1 +@str.188 = private unnamed_addr constant [8 x i8] c"i@:iiii\00", align 1 +@str.189 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00", align 1 +@str.190 = private unnamed_addr constant [6 x i8] c"i@:ii\00", align 1 +@str.191 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00", align 1 +@str.192 = private unnamed_addr constant [4 x i8] c"i@:\00", align 1 +@str.193 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1 +@str.194 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.195 = private unnamed_addr constant [19 x i8] c"mangling table OK\0A\00", align 1 @OBJC_METH_VAR_NAME_ = private unnamed_addr constant [7 x i8] c"length\00" -@OBJC_METH_VAR_NAME_.55 = private unnamed_addr constant [11 x i8] c"addObject:\00" -@OBJC_METH_VAR_NAME_.56 = private unnamed_addr constant [13 x i8] c"combine:and:\00" -@OBJC_METH_VAR_NAME_.57 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00" -@OBJC_METH_VAR_NAME_.58 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00" -@OBJC_METH_VAR_NAME_.59 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00" -@OBJC_METH_VAR_NAME_.60 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00" +@OBJC_METH_VAR_NAME_.196 = private unnamed_addr constant [11 x i8] c"addObject:\00" +@OBJC_METH_VAR_NAME_.197 = private unnamed_addr constant [13 x i8] c"combine:and:\00" +@OBJC_METH_VAR_NAME_.198 = private unnamed_addr constant [20 x i8] c"insert:after:index:\00" +@OBJC_METH_VAR_NAME_.199 = private unnamed_addr constant [24 x i8] c"add:observer:for:event:\00" +@OBJC_METH_VAR_NAME_.200 = private unnamed_addr constant [23 x i8] c"initWithFrame:options:\00" +@OBJC_METH_VAR_NAME_.201 = private unnamed_addr constant [19 x i8] c"actualSelectorName\00" @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 65535, ptr @__sx_objc_selector_init, ptr null }] ; Function Attrs: nounwind @@ -357,7 +354,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.162, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -453,7 +450,7 @@ if.merge.11: ; preds = %if.merge.25, %if.me if.then.12: ; preds = %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.163, 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 @@ -461,7 +458,7 @@ if.then.12: ; preds = %if.then.9 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.164, 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 @@ -471,13 +468,13 @@ if.then.12: ; preds = %if.then.9 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.165, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.13 if.merge.13: ; preds = %if.then.12, %if.then.9 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.166, 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 @@ -485,7 +482,7 @@ if.merge.13: ; preds = %if.then.12, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.167, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -499,7 +496,7 @@ if.merge.13: ; preds = %if.then.12, %if.the if.then.23: ; preds = %if.else.10 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.168, 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 @@ -507,7 +504,7 @@ if.then.23: ; preds = %if.else.10 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.169, 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 @@ -518,7 +515,7 @@ if.then.23: ; preds = %if.else.10 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.170, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -575,7 +572,7 @@ if.merge.31: ; preds = %if.merge.34, %if.el if.then.32: ; preds = %if.then.29 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.171, 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 @@ -583,7 +580,7 @@ if.then.32: ; preds = %if.then.29 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.172, 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 @@ -594,7 +591,7 @@ if.then.32: ; preds = %if.then.29 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.173, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -614,7 +611,7 @@ if.merge.34: ; preds = %if.else.33, %if.the if.then.35: ; preds = %while.exit.2 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.174, 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 @@ -622,7 +619,7 @@ if.then.35: ; preds = %while.exit.2 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.175, 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 @@ -633,7 +630,7 @@ if.then.35: ; preds = %while.exit.2 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.176, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.36 @@ -710,6 +707,414 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -821,6 +1226,336 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 ; Function Attrs: nounwind declare i64 @build_options() #0 +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + ; Function Attrs: nounwind declare ptr @objc_getClass(ptr) #0 @@ -901,34 +1636,34 @@ entry: define i32 @main() #0 { entry: call void @__sx_objc_selector_init() - %call = call ptr @objc_getClass(ptr @str.36) + %call = call ptr @objc_getClass(ptr @str.177) %alloca = alloca ptr, align 8 store ptr %call, ptr %alloca, align 8 %load = load ptr, ptr %alloca, align 8 - %callN = call ptr @objc_allocateClassPair(ptr %load, ptr @str.37, i64 0) + %callN = call ptr @objc_allocateClassPair(ptr %load, ptr @str.178, i64 0) %allocaN = alloca ptr, align 8 store ptr %callN, ptr %allocaN, align 8 %loadN = load ptr, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.38) - %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.39) + %callN = call ptr @sel_registerName(ptr @str.179) + %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.180) %loadN = load ptr, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.40) - %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.41) + %callN = call ptr @sel_registerName(ptr @str.181) + %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.182) %loadN = load ptr, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.42) - %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.43) + %callN = call ptr @sel_registerName(ptr @str.183) + %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.184) %loadN = load ptr, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.44) - %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.45) + %callN = call ptr @sel_registerName(ptr @str.185) + %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.186) %loadN = load ptr, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.46) - %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.47) + %callN = call ptr @sel_registerName(ptr @str.187) + %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.188) %loadN = load ptr, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.48) - %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.49) + %callN = call ptr @sel_registerName(ptr @str.189) + %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.190) %loadN = load ptr, ptr %allocaN, align 8 - %callN = call ptr @sel_registerName(ptr @str.50) - %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.51) + %callN = call ptr @sel_registerName(ptr @str.191) + %callN = call i1 @class_addMethod(ptr %loadN, ptr %callN, ptr @universal_imp, ptr @str.192) %loadN = load ptr, ptr %allocaN, align 8 call void @objc_registerClassPair(ptr %loadN) %allocaN = alloca ptr, align 8 @@ -978,14 +1713,14 @@ entry: define internal void @print__ct_s4c1a58a7c89bfbba__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.52, i64 18 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.193, i64 18 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.53, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.194, i64 0 }, ptr %allocaN, align 8 %load = 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 18) @@ -1001,7 +1736,7 @@ entry: ; 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.54, i64 18 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.195, i64 18 }) ret { ptr, i64 } %call } @@ -1009,17 +1744,17 @@ define internal void @__sx_objc_selector_init() { entry: %sel = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_) store ptr %sel, ptr @OBJC_SELECTOR_REFERENCES_length, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.55) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.196) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_addObject_, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.56) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.197) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_combine_and_, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.57) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.198) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_insert_after_index_, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.58) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.199) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_add_observer_for_event_, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.59) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.200) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_initWithFrame_options_, align 8 - %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.60) + %selN = call ptr @sel_registerName(ptr @OBJC_METH_VAR_NAME_.201) store ptr %selN, ptr @OBJC_SELECTOR_REFERENCES_actualSelectorName, align 8 ret void } diff --git a/examples/expected/1402-ffi-jni-call-03-methodid-sharing.ir b/examples/expected/1402-ffi-jni-call-03-methodid-sharing.ir index 0f01b64..99c2e69 100644 --- a/examples/expected/1402-ffi-jni-call-03-methodid-sharing.ir +++ b/examples/expected/1402-ffi-jni-call-03-methodid-sharing.ir @@ -2,30 +2,30 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 -@str.37 = private unnamed_addr constant [4 x i8] c"()V\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 +@str.141 = private unnamed_addr constant [4 x i8] c"()V\00", align 1 @SX_JNI_CLS_noop____V = internal global ptr null @SX_JNI_MID_noop____V = internal global ptr null -@str.38 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 -@str.39 = private unnamed_addr constant [4 x i8] c"()V\00", align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.41 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.42 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 +@str.143 = private unnamed_addr constant [4 x i8] c"()V\00", align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.145 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.146 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -330,7 +330,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -426,7 +426,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -434,7 +434,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -444,13 +444,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -458,7 +458,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -472,7 +472,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -480,7 +480,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -491,7 +491,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -548,7 +548,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -556,7 +556,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -567,7 +567,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -587,7 +587,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -595,7 +595,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -606,7 +606,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -683,6 +683,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -709,7 +1447,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_noop____V, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %5, align 8 - %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_noop____V, align 8 br label %jni.cont @@ -734,7 +1472,7 @@ jni.miss7: ; preds = %jni.cont store ptr %jni.global.cls12, ptr @SX_JNI_CLS_noop____V, align 8 %9 = getelementptr inbounds ptr, ptr %jni.ifs4, i32 33 %jni.GetMethodID13 = load ptr, ptr %9, align 8 - %jni.fresh.mid14 = call ptr %jni.GetMethodID13(ptr %load, ptr %jni.global.cls12, ptr @str.38, ptr @str.39) + %jni.fresh.mid14 = call ptr %jni.GetMethodID13(ptr %load, ptr %jni.global.cls12, ptr @str.142, ptr @str.143) store ptr %jni.fresh.mid14, ptr @SX_JNI_MID_noop____V, align 8 br label %jni.cont8 @@ -786,14 +1524,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.40, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.144, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.41, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.145, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -809,6 +1547,6 @@ entry: ; 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.42, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.146, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1403-ffi-jni-call-04-jint-return.ir b/examples/expected/1403-ffi-jni-call-04-jint-return.ir index 83b8fd3..908ca10 100644 --- a/examples/expected/1403-ffi-jni-call-04-jint-return.ir +++ b/examples/expected/1403-ffi-jni-call-04-jint-return.ir @@ -2,28 +2,28 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [9 x i8] c"getCount\00", align 1 -@str.37 = private unnamed_addr constant [4 x i8] c"()I\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [9 x i8] c"getCount\00", align 1 +@str.141 = private unnamed_addr constant [4 x i8] c"()I\00", align 1 @SX_JNI_CLS_getCount____I = internal global ptr null @SX_JNI_MID_getCount____I = internal global ptr null -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.39 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -328,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -424,7 +424,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -432,7 +432,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -442,13 +442,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -456,7 +456,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -470,7 +470,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -478,7 +478,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -489,7 +489,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -546,7 +546,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -554,7 +554,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -565,7 +565,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -585,7 +585,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -593,7 +593,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -604,7 +604,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -681,6 +681,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i32 @read_int(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -707,7 +1445,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_getCount____I, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %5, align 8 - %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getCount____I, align 8 br label %jni.cont @@ -761,14 +1499,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.38, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.39, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -784,6 +1522,6 @@ entry: ; 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.40, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1404-ffi-jni-call-05-jlong-return.ir b/examples/expected/1404-ffi-jni-call-05-jlong-return.ir index 6840925..016c7ba 100644 --- a/examples/expected/1404-ffi-jni-call-05-jlong-return.ir +++ b/examples/expected/1404-ffi-jni-call-05-jlong-return.ir @@ -2,28 +2,28 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [18 x i8] c"currentTimeMillis\00", align 1 -@str.37 = private unnamed_addr constant [4 x i8] c"()J\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [18 x i8] c"currentTimeMillis\00", align 1 +@str.141 = private unnamed_addr constant [4 x i8] c"()J\00", align 1 @SX_JNI_CLS_currentTimeMillis____J = internal global ptr null @SX_JNI_MID_currentTimeMillis____J = internal global ptr null -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.39 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -328,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -424,7 +424,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -432,7 +432,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -442,13 +442,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -456,7 +456,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -470,7 +470,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -478,7 +478,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -489,7 +489,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -546,7 +546,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -554,7 +554,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -565,7 +565,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -585,7 +585,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -593,7 +593,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -604,7 +604,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -681,6 +681,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i64 @read_long(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -707,7 +1445,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_currentTimeMillis____J, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %5, align 8 - %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_currentTimeMillis____J, align 8 br label %jni.cont @@ -761,14 +1499,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.38, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.39, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -784,6 +1522,6 @@ entry: ; 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.40, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1405-ffi-jni-call-06-jdouble-return.ir b/examples/expected/1405-ffi-jni-call-06-jdouble-return.ir index be9954d..cb72757 100644 --- a/examples/expected/1405-ffi-jni-call-06-jdouble-return.ir +++ b/examples/expected/1405-ffi-jni-call-06-jdouble-return.ir @@ -2,28 +2,28 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [9 x i8] c"getValue\00", align 1 -@str.37 = private unnamed_addr constant [4 x i8] c"()D\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [9 x i8] c"getValue\00", align 1 +@str.141 = private unnamed_addr constant [4 x i8] c"()D\00", align 1 @SX_JNI_CLS_getValue____D = internal global ptr null @SX_JNI_MID_getValue____D = internal global ptr null -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.39 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -328,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -424,7 +424,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -432,7 +432,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -442,13 +442,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -456,7 +456,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -470,7 +470,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -478,7 +478,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -489,7 +489,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -546,7 +546,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -554,7 +554,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -565,7 +565,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -585,7 +585,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -593,7 +593,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -604,7 +604,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -681,6 +681,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal double @read_double(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -707,7 +1445,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_getValue____D, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %5, align 8 - %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getValue____D, align 8 br label %jni.cont @@ -761,14 +1499,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.38, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.39, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -784,6 +1522,6 @@ entry: ; 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.40, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1406-ffi-jni-call-07-jboolean-return.ir b/examples/expected/1406-ffi-jni-call-07-jboolean-return.ir index d6dd944..0267a3e 100644 --- a/examples/expected/1406-ffi-jni-call-07-jboolean-return.ir +++ b/examples/expected/1406-ffi-jni-call-07-jboolean-return.ir @@ -2,28 +2,28 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [8 x i8] c"isShown\00", align 1 -@str.37 = private unnamed_addr constant [4 x i8] c"()Z\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [8 x i8] c"isShown\00", align 1 +@str.141 = private unnamed_addr constant [4 x i8] c"()Z\00", align 1 @SX_JNI_CLS_isShown____Z = internal global ptr null @SX_JNI_MID_isShown____Z = internal global ptr null -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.39 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -328,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -424,7 +424,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -432,7 +432,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -442,13 +442,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -456,7 +456,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -470,7 +470,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -478,7 +478,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -489,7 +489,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -546,7 +546,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -554,7 +554,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -565,7 +565,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -585,7 +585,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -593,7 +593,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -604,7 +604,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -681,6 +681,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i1 @read_bool(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -707,7 +1445,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_isShown____Z, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %5, align 8 - %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_isShown____Z, align 8 br label %jni.cont @@ -761,14 +1499,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.38, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.39, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -784,6 +1522,6 @@ entry: ; 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.40, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1407-ffi-jni-call-08-jobject-return.ir b/examples/expected/1407-ffi-jni-call-08-jobject-return.ir index 74ef04f..0e866d3 100644 --- a/examples/expected/1407-ffi-jni-call-08-jobject-return.ir +++ b/examples/expected/1407-ffi-jni-call-08-jobject-return.ir @@ -2,28 +2,28 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1 -@str.37 = private unnamed_addr constant [24 x i8] c"()Landroid/view/Window;\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1 +@str.141 = private unnamed_addr constant [24 x i8] c"()Landroid/view/Window;\00", align 1 @SX_JNI_CLS_getWindow____Landroid_view_Window_ = internal global ptr null @SX_JNI_MID_getWindow____Landroid_view_Window_ = internal global ptr null -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.39 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -328,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -424,7 +424,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -432,7 +432,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -442,13 +442,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -456,7 +456,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -470,7 +470,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -478,7 +478,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -489,7 +489,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -546,7 +546,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -554,7 +554,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -565,7 +565,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -585,7 +585,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -593,7 +593,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -604,7 +604,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -681,6 +681,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal ptr @get_window(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -707,7 +1445,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_getWindow____Landroid_view_Window_, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %5, align 8 - %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getWindow____Landroid_view_Window_, align 8 br label %jni.cont @@ -761,14 +1499,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.38, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.39, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -784,6 +1522,6 @@ entry: ; 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.40, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1408-ffi-jni-call-09-static.ir b/examples/expected/1408-ffi-jni-call-09-static.ir index 97bf679..a738cc9 100644 --- a/examples/expected/1408-ffi-jni-call-09-static.ir +++ b/examples/expected/1408-ffi-jni-call-09-static.ir @@ -2,28 +2,28 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [4 x i8] c"max\00", align 1 -@str.37 = private unnamed_addr constant [6 x i8] c"(II)I\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [4 x i8] c"max\00", align 1 +@str.141 = private unnamed_addr constant [6 x i8] c"(II)I\00", align 1 @SX_JNI_CLS_max___II_I = internal global ptr null @SX_JNI_MID_max___II_I = internal global ptr null -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.39 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -328,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -424,7 +424,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -432,7 +432,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -442,13 +442,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -456,7 +456,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -470,7 +470,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -478,7 +478,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -489,7 +489,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -546,7 +546,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -554,7 +554,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -565,7 +565,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -585,7 +585,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -593,7 +593,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -604,7 +604,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -681,6 +681,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal i32 @call_static_max(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -704,7 +1442,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_max___II_I, align 8 %4 = getelementptr inbounds ptr, ptr %jni.ifs, i32 113 %jni.GetStaticMethodID = load ptr, ptr %4, align 8 - %jni.fresh.mid = call ptr %jni.GetStaticMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetStaticMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_max___II_I, align 8 br label %jni.cont @@ -758,14 +1496,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.38, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.39, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -781,6 +1519,6 @@ entry: ; 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.40, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1418-ffi-jni-class-08-call.ir b/examples/expected/1418-ffi-jni-class-08-call.ir index 860d0b6..cc3217d 100644 --- a/examples/expected/1418-ffi-jni-class-08-call.ir +++ b/examples/expected/1418-ffi-jni-class-08-call.ir @@ -2,28 +2,28 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1 -@str.37 = private unnamed_addr constant [21 x i8] c"()Ljava/lang/Object;\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [10 x i8] c"getWindow\00", align 1 +@str.141 = private unnamed_addr constant [21 x i8] c"()Ljava/lang/Object;\00", align 1 @SX_JNI_CLS_getWindow____Ljava_lang_Object_ = internal global ptr null @SX_JNI_MID_getWindow____Ljava_lang_Object_ = internal global ptr null -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.39 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -328,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -424,7 +424,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -432,7 +432,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -442,13 +442,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -456,7 +456,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -470,7 +470,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -478,7 +478,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -489,7 +489,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -546,7 +546,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -554,7 +554,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -565,7 +565,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -585,7 +585,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -593,7 +593,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -604,7 +604,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -681,6 +681,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -708,7 +1446,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_getWindow____Ljava_lang_Object_, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %5, align 8 - %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_getWindow____Ljava_lang_Object_, align 8 br label %jni.cont @@ -761,14 +1499,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.38, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.39, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -784,6 +1522,6 @@ entry: ; 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.40, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1421-ffi-jni-env-02-lexical-direct.ir b/examples/expected/1421-ffi-jni-env-02-lexical-direct.ir index 0ccc373..ef9f689 100644 --- a/examples/expected/1421-ffi-jni-env-02-lexical-direct.ir +++ b/examples/expected/1421-ffi-jni-env-02-lexical-direct.ir @@ -2,28 +2,28 @@ @g_should_call = internal global i1 false @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [2 x i8] c"0\00", align 1 -@str.21 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 -@str.22 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.23 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.24 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.25 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 -@str.26 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 -@str.27 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.28 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.29 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.30 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.31 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.32 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.33 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 -@str.34 = private unnamed_addr constant [3 x i8] c", \00", align 1 -@str.35 = private unnamed_addr constant [5 x i8] c")); \00", align 1 -@str.36 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 -@str.37 = private unnamed_addr constant [4 x i8] c"()V\00", align 1 +@str.125 = private unnamed_addr constant [15 x i8] c"result := \22\22; \00", align 1 +@str.126 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.127 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.128 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.129 = private unnamed_addr constant [44 x i8] c"result = concat(result, any_to_string(args[\00", align 1 +@str.130 = private unnamed_addr constant [6 x i8] c"])); \00", align 1 +@str.131 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.132 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.133 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.134 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.135 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.136 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.137 = private unnamed_addr constant [37 x i8] c"result = concat(result, substr(fmt, \00", align 1 +@str.138 = private unnamed_addr constant [3 x i8] c", \00", align 1 +@str.139 = private unnamed_addr constant [5 x i8] c")); \00", align 1 +@str.140 = private unnamed_addr constant [5 x i8] c"noop\00", align 1 +@str.141 = private unnamed_addr constant [4 x i8] c"()V\00", align 1 @SX_JNI_CLS_noop____V = internal global ptr null @SX_JNI_MID_noop____V = internal global ptr null -@str.38 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 -@str.39 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 -@str.40 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.142 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 +@str.143 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 +@str.144 = private unnamed_addr constant [4 x i8] c"ok\0A\00", align 1 ; Function Attrs: nounwind declare void @out(ptr) #0 @@ -328,7 +328,7 @@ 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.21, i64 14 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.125, i64 14 }, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 store i64 0, ptr %allocaN, align 8 %allocaN = alloca i64, align 8 @@ -424,7 +424,7 @@ if.merge.13: ; preds = %if.merge.27, %if.me if.then.14: ; preds = %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.22, i64 36 }) + %call = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.126, 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 @@ -432,7 +432,7 @@ if.then.14: ; preds = %if.then.11 %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.23, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.127, 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 @@ -442,13 +442,13 @@ if.then.14: ; preds = %if.then.11 %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.24, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.128, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.15 if.merge.15: ; preds = %if.then.14, %if.then.11 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.25, i64 43 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.129, 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 @@ -456,7 +456,7 @@ if.merge.15: ; preds = %if.then.14, %if.the %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.26, i64 5 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.130, i64 5 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 1 @@ -470,7 +470,7 @@ if.merge.15: ; preds = %if.then.14, %if.the if.then.25: ; preds = %if.else.12 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.27, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.131, 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 @@ -478,7 +478,7 @@ if.then.25: ; preds = %if.else.12 %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.28, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.132, 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 @@ -489,7 +489,7 @@ if.then.25: ; preds = %if.else.12 %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.29, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.133, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -546,7 +546,7 @@ if.merge.33: ; preds = %if.merge.36, %if.el if.then.34: ; preds = %if.then.31 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.30, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.134, 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 @@ -554,7 +554,7 @@ if.then.34: ; preds = %if.then.31 %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.31, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.135, 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 @@ -565,7 +565,7 @@ if.then.34: ; preds = %if.then.31 %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.32, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.136, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 %loadN = load i64, ptr %allocaN, align 8 %addN = add i64 %loadN, 2 @@ -585,7 +585,7 @@ if.merge.36: ; preds = %if.else.35, %if.the if.then.37: ; preds = %while.exit.4 %loadN = load { ptr, i64 }, ptr %allocaN, align 8 - %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.33, i64 36 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.137, 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 @@ -593,7 +593,7 @@ if.then.37: ; preds = %while.exit.4 %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.34, i64 2 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.138, 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 @@ -604,7 +604,7 @@ if.then.37: ; preds = %while.exit.4 %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.35, i64 4 }) + %callN = call { ptr, i64 } @concat(ptr %0, { ptr, i64 } %loadN, { ptr, i64 } { ptr @str.139, i64 4 }) store { ptr, i64 } %callN, ptr %allocaN, align 8 br label %if.merge.38 @@ -681,6 +681,744 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 +declare void @BuildOptions.add_link_flag(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options() #0 + +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + ; Function Attrs: nounwind define internal void @unused_jni(ptr %0, ptr %1, ptr %2) #0 { entry: @@ -707,7 +1445,7 @@ jni.miss: ; preds = %entry store ptr %jni.global.cls, ptr @SX_JNI_CLS_noop____V, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %5, align 8 - %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.36, ptr @str.37) + %jni.fresh.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.global.cls, ptr @str.140, ptr @str.141) store ptr %jni.fresh.mid, ptr @SX_JNI_MID_noop____V, align 8 br label %jni.cont @@ -759,14 +1497,14 @@ declare void @sx_jni_env_tl_set(ptr) #0 define internal void @print__ct_sbdbafa1a5fe828c0__pack(ptr %0) #0 { entry: %alloca = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.38, i64 3 }, ptr %alloca, align 8 + store { ptr, i64 } { ptr @str.142, i64 3 }, ptr %alloca, align 8 %allocaN = alloca { ptr, i64 }, align 8 %gep = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 0 store ptr null, ptr %gep, align 8 %gepN = getelementptr inbounds { ptr, i64 }, ptr %allocaN, i32 0, i32 1 store i64 0, ptr %gepN, align 8 %allocaN = alloca { ptr, i64 }, align 8 - store { ptr, i64 } { ptr @str.39, i64 0 }, ptr %allocaN, align 8 + store { ptr, i64 } { ptr @str.143, i64 0 }, ptr %allocaN, align 8 %load = 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 3) @@ -782,6 +1520,6 @@ entry: ; 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.40, i64 3 }) + %call = call { ptr, i64 } @build_format(ptr %0, { ptr, i64 } { ptr @str.144, i64 3 }) ret { ptr, i64 } %call } diff --git a/examples/expected/1425-ffi-jni-main-03-ctor.ir b/examples/expected/1425-ffi-jni-main-03-ctor.ir index 5117abd..eec5be6 100644 --- a/examples/expected/1425-ffi-jni-main-03-ctor.ir +++ b/examples/expected/1425-ffi-jni-main-03-ctor.ir @@ -1,14 +1,11 @@ -@OS = internal global i64 6 -@ARCH = internal global i64 4 -@POINTER_SIZE = internal global i64 8 @g_held_view = internal global ptr null @__sx_default_context = internal global { { ptr, ptr, ptr }, ptr } { { ptr, ptr, ptr } { ptr null, ptr @__thunk_CAllocator_Allocator_alloc, ptr @__thunk_CAllocator_Allocator_dealloc }, ptr null } @str = private unnamed_addr constant [9 x i8] c"onCreate\00", align 1 -@str.21 = private unnamed_addr constant [23 x i8] c"(Landroid/os/Bundle;)V\00", align 1 +@str.162 = private unnamed_addr constant [23 x i8] c"(Landroid/os/Bundle;)V\00", align 1 @jni.parent.path = private unnamed_addr constant [21 x i8] c"android/app/Activity\00", align 1 -@str.22 = private unnamed_addr constant [7 x i8] c"\00", align 1 -@str.23 = private unnamed_addr constant [29 x i8] c"(Landroid/content/Context;)V\00", align 1 +@str.163 = private unnamed_addr constant [7 x i8] c"\00", align 1 +@str.164 = private unnamed_addr constant [29 x i8] c"(Landroid/content/Context;)V\00", align 1 @jni.ctor.path = private unnamed_addr constant [25 x i8] c"android/view/SurfaceView\00", align 1 ; Function Attrs: nounwind @@ -207,6 +204,414 @@ declare i64 @write(i32, ptr, i64) ; Function Attrs: nounwind declare void @log_emit(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 +declare void @read_file(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename(ptr, ptr) #0 + +; 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 i64 @strlen(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system(ptr) #0 + +; Function Attrs: nounwind +declare void @run(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; 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 i64 @read.21(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i32 @close.22(i32) #0 + +; Function Attrs: nounwind +declare i16 @htons(ptr, i64) #0 + +; Function Attrs: nounwind +declare ptr @CAllocator.alloc.23(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @CAllocator.dealloc.24(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @GPA.init.25(ptr) #0 + +; Function Attrs: nounwind +declare ptr @GPA.alloc.26(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @GPA.dealloc.27(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.add_chunk.28(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.init.29(ptr sret({ ptr, i64, { ptr, ptr, ptr } }), ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.reset.30(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @Arena.deinit.31(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @Arena.alloc.32(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @Arena.dealloc.33(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.init.34(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.reset.35(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BufAlloc.alloc.36(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @BufAlloc.dealloc.37(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.init.38(ptr sret({ { ptr, ptr, ptr }, i64, i64, i64 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @TrackingAllocator.leak_count.39(ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.report.40(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @TrackingAllocator.alloc.41(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @TrackingAllocator.dealloc.42(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @open.43(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.44(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.45(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.46(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.47(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.48(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.49(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.50(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.51(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.52(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.53(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.54(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.55(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.56(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.57(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.58(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.59(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.60(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.61(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.62(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.63(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.64(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.65(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.66(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.67(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.68(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.69(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.70(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.71(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.72(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 declare void @BuildOptions.add_link_flag(i64, ptr) #0 @@ -318,6 +723,336 @@ declare ptr @BuildOptions.jni_main_java_source_at(i64, i64) #0 ; Function Attrs: nounwind declare i64 @build_options() #0 +; Function Attrs: nounwind +declare ptr @spaces.73(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_len.74() #0 + +; Function Attrs: nounwind +declare i32 @sx_trace_truncated.75() #0 + +; Function Attrs: nounwind +declare i64 @sx_trace_frame_at.76(i32) #0 + +; Function Attrs: nounwind +declare ptr @to_string.77(ptr) #0 + +; Function Attrs: nounwind +declare void @print_current.78(ptr) #0 + +; Function Attrs: nounwind +declare void @print_interpreter_frames.79(ptr) #0 + +; Function Attrs: nounwind +declare ptr @popen.80(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i32 @pclose.81(ptr) #0 + +; Function Attrs: nounwind +declare i64 @fread.82(ptr, i64, i64, ptr) #0 + +; Function Attrs: nounwind +declare i32 @feof.83(ptr) #0 + +; Function Attrs: nounwind +declare ptr @getenv.84(ptr) #0 + +; Function Attrs: nounwind +declare i64 @strlen.85(ptr) #0 + +; Function Attrs: nounwind +declare i32 @system.86(ptr) #0 + +; Function Attrs: nounwind +declare void @run.87(ptr sret({ { i32, { ptr, i64 } }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @env.88(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @find_executable.89(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare void @_exit.90(i32) #0 + +; Function Attrs: nounwind +declare void @exit.91(ptr, i8, ptr) #0 + +; Function Attrs: nounwind +declare void @assert.92(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.93(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 i32 @open.94(ptr, i32, ...) #0 + +; Function Attrs: nounwind +declare i32 @close.95(i32) #0 + +; Function Attrs: nounwind +declare i64 @read.96(i32, ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @lseek.97(i32, i64, i32) #0 + +; Function Attrs: nounwind +declare i32 @unlink.98(ptr) #0 + +; Function Attrs: nounwind +declare i32 @rmdir.99(ptr) #0 + +; Function Attrs: nounwind +declare i32 @mkdir.100(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @access.101(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @chmod.102(ptr, i32) #0 + +; Function Attrs: nounwind +declare i32 @rename.103(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.is_valid.104(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @File.close.105(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.read.106(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.write.107(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @File.seek.108(ptr, ptr, i64, i64) #0 + +; Function Attrs: nounwind +declare i32 @mode_to_flags.109(ptr, i64) #0 + +; Function Attrs: nounwind +declare i64 @open_file.110(ptr, ptr, i64) #0 + +; Function Attrs: nounwind +declare void @read_file.111(ptr sret({ { ptr, i64 }, i1 }), ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @write_file.112(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @append_file.113(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @exists.114(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_file.115(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @delete_dir.116(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir.117(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @set_mode.118(ptr, ptr, i32) #0 + +; Function Attrs: nounwind +declare i1 @move.119(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @create_dir_all.120(ptr, ptr) #0 + +; Function Attrs: nounwind +declare i1 @copy_file.121(ptr, ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @basename.122(ptr, ptr) #0 + +; Function Attrs: nounwind +declare ptr @dirname.123(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 @assert.124(ptr, i1) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_link_flag.125(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_framework.126(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_output_path.127(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_wasm_shell.128(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.add_asset_dir.129(i64, ptr, ptr) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.asset_dir_count.130(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_src_at.131(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.asset_dir_dest_at.132(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_callback.133(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_post_link_module.134(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.binary_path.135(i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_path.136(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_bundle_id.137(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_codesign_identity.138(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_provisioning_profile.139(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_path.140(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.bundle_id.141(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.codesign_identity.142(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.provisioning_profile.143(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.target_triple.144(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_macos.145(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios.146(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_device.147(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_ios_simulator.148(i64) #0 + +; Function Attrs: nounwind +declare i1 @BuildOptions.is_android.149(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_count.150(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_at.151(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.framework_path_count.152(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.framework_path_at.153(i64, i64) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_manifest_path.154(i64, ptr) #0 + +; Function Attrs: nounwind +declare void @BuildOptions.set_keystore_path.155(i64, ptr) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.manifest_path.156(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.keystore_path.157(i64) #0 + +; Function Attrs: nounwind +declare i64 @BuildOptions.jni_main_count.158(i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_foreign_path_at.159(i64, i64) #0 + +; Function Attrs: nounwind +declare ptr @BuildOptions.jni_main_java_source_at.160(i64, i64) #0 + +; Function Attrs: nounwind +declare i64 @build_options.161() #0 + ; Function Attrs: nounwind define i32 @main() #0 { entry: @@ -356,7 +1091,7 @@ entry: %jni.parent.cls = call ptr %jni.FindClass(ptr %load, ptr @jni.parent.path) %4 = getelementptr inbounds ptr, ptr %jni.ifs, i32 33 %jni.GetMethodID = load ptr, ptr %4, align 8 - %jni.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.parent.cls, ptr @str, ptr @str.21) + %jni.mid = call ptr %jni.GetMethodID(ptr %load, ptr %jni.parent.cls, ptr @str, ptr @str.162) %jni.parent.cls.slot = alloca ptr, align 8 store ptr %jni.parent.cls, ptr %jni.parent.cls.slot, align 8 %5 = getelementptr inbounds ptr, ptr %jni.ifs, i32 91 @@ -372,7 +1107,7 @@ entry: %jni.ctor.cls = call ptr %jni.FindClass9(ptr %load, ptr @jni.ctor.path) %7 = getelementptr inbounds ptr, ptr %jni.ifs8, i32 33 %jni.GetMethodID10 = load ptr, ptr %7, align 8 - %jni.ctor.mid = call ptr %jni.GetMethodID10(ptr %load, ptr %jni.ctor.cls, ptr @str.22, ptr @str.23) + %jni.ctor.mid = call ptr %jni.GetMethodID10(ptr %load, ptr %jni.ctor.cls, ptr @str.163, ptr @str.164) %8 = getelementptr inbounds ptr, ptr %jni.ifs8, i32 28 %jni.NewObject = load ptr, ptr %8, align 8 %jni.new.obj = call ptr %jni.NewObject(ptr %load, ptr %jni.ctor.cls, ptr %jni.ctor.mid, ptr %loadN) diff --git a/library/modules/std.sx b/library/modules/std.sx index c6c0707..4e1defb 100644 --- a/library/modules/std.sx +++ b/library/modules/std.sx @@ -495,7 +495,10 @@ List :: struct ($T: Type) { mem :: #import "modules/std/mem.sx"; xml :: #import "modules/std/xml.sx"; log :: #import "modules/std/log.sx"; -// fs/process/socket/json/cli/hash/test join the tail once the global -// last-wins maps are fully own-wins (their decls collide across programs -// when pulled into every closure) — import them directly meanwhile: -// #import "modules/std/fs.sx"; etc. +fs :: #import "modules/std/fs.sx"; +process :: #import "modules/std/process.sx"; +socket :: #import "modules/std/socket.sx"; +json :: #import "modules/std/json.sx"; +cli :: #import "modules/std/cli.sx"; +hash :: #import "modules/std/hash.sx"; +test :: #import "modules/std/test.sx"; diff --git a/readme.md b/readme.md index c37185c..cbae90c 100644 --- a/readme.md +++ b/readme.md @@ -445,7 +445,8 @@ site.) declaration, and flat-importing the module that declares it makes the alias usable in the importer — there is no `pub` keyword. The stdlib prelude uses exactly this: `#import "modules/std.sx"` gives every bare prelude name -(`print`, `List`, `Context`, …) plus the carried namespaces of std's tail: +(`print`, `List`, `Context`, …) plus the carried namespaces of std's tail +(`mem`, `fs`, `process`, `socket`, `json`, `cli`, `hash`, `xml`, `log`, `test`): ```sx #import "modules/std.sx"; diff --git a/specs.md b/specs.md index 4f30931..4a6b8f1 100644 --- a/specs.md +++ b/specs.md @@ -2596,8 +2596,9 @@ main :: () -> s32 { ``` modules/std.sx the prelude — print/format, string ops (concat, substr, path_join, ...), List(T), Context + push, the Allocator - protocol; plus the namespace tail: - mem / xml / log :: #import "modules/std/.sx" + protocol; plus the namespace tail: mem / xml / log / + fs / process / socket / json / cli / hash / test :: + #import "modules/std/.sx" modules/std/ mem.sx (CAllocator, GPA, Arena, TrackingAllocator), fs.sx, process.sx, socket.sx, json.sx, cli.sx, hash.sx, xml.sx, log.sx, trace.sx, test.sx @@ -2612,9 +2613,9 @@ modules/gpu/, modules/ui/ GPU protocol + retained UI toolkit ``` `#import "modules/std.sx"` gives every prelude name bare, plus `mem.GPA`, -`xml.escape`, `log.warn`, ... through the carried namespace tail (see -Namespace Alias Carry). The remaining `std/` modules are imported directly -(`#import "modules/std/json.sx"`) until they join the tail. +`json.parse`, `fs.exists`, `hash.sha256_hex`, `log.warn`, ... through the +carried namespace tail (see Namespace Alias Carry). Direct file imports +(`#import "modules/std/json.sx"`) remain available for bare access. --- diff --git a/src/ir/emit_llvm.zig b/src/ir/emit_llvm.zig index ecfcb8b..9937725 100644 --- a/src/ir/emit_llvm.zig +++ b/src/ir/emit_llvm.zig @@ -860,7 +860,27 @@ pub const LLVMEmitter = struct { } fn emitGlobals(self: *LLVMEmitter) void { + // Dead-global elimination: a plain-data global no instruction + // references is not emitted — without this, every module pulled in + // via the std namespace tail lands its data (hash's K table, ...) + // in every binary. Comptime-backed globals are kept: their #run + // evaluation (and its failure diagnostics) is a semantic effect, + // not just data. + var used = std.AutoHashMap(u32, void).init(self.alloc); + defer used.deinit(); + for (self.ir_mod.functions.items) |*func| { + for (func.blocks.items) |*block| { + for (block.insts.items) |*instruction| { + switch (instruction.op) { + .global_get, .global_addr => |gid| used.put(gid.index(), {}) catch {}, + .global_set => |gs| used.put(gs.global.index(), {}) catch {}, + else => {}, + } + } + } + } for (self.ir_mod.globals.items, 0..) |global, i| { + if (global.comptime_func == null and !used.contains(@intCast(i))) continue; const name = self.ir_mod.types.getString(global.name); const llvm_ty = self.toLLVMType(global.ty); const name_z = self.alloc.dupeZ(u8, name) catch continue;